#在新环境恢复分布式备份集

在分布式部署中,YashanDB支持使用已有的数据库集群A的备份集构建新数据库集群B。

# 版本要求

A、B两个集群版本必须一致,且为v23.2.4.100及以上。

# 前提条件

需先参考安装前准备为数据库集群B准备服务器及相关环境。

# 操作步骤

  1. 在数据库集群A中,使用yasbak生成备份,tag为full_01,具体操作见yasbak操作示例

  2. 将备份集文件压缩为一个压缩包,压缩包格式要求如下:

    yashandb.tar.gz     # 文件名称无约束,但文件后缀名必须为.tar.gz
        mn-1-1.tar.gz   # 压缩包命名格式为"节点类型-节点id.tar.gz"
            full_01/... # 若为增量备份,则将多个备份集全压缩在同一个压缩包中
        cn-2-1.tar.gz
            full_01/...
        dn-3-1.tar.gz
            full_01/...
    
  3. 执行以下命令,在当前目录下获得集群A的节点部署信息文件nodeinfo.txt。

    $ yasbak run -c yashandb -s "list backup tag 'full_01' node info to 'nodeinfo.txt'"
    
  4. 以安装用户登录为数据库集群B准备的服务器1,执行以下命令生成数据库集群B的配置文件。

    Note:

    • 指定--node-info为步骤3生成文件的路径。

    • 如果不指定--data-path,则节点的datapath和nodeinfo.txt中节点的datapath保持一致。

    • 不要求数据库集群A和数据库集群B同名。

    • 不需要指定--mn,--cn,--dn,节点数量通过--node-info自动生成。

    $ yasboot package de gen --cluster yashandb -u yashan -p password --ip 192.168.1.2,192.168.1.3,192.168.1.4 --port 22 --install-path /data/yashan/yasdb_home --node-info nodeinfo.txt
    

    生成的yashandb.toml文件比分布式配置文件新增参数如下,请不要手动修改groupid和nodeid,否则可能会导致无法恢复数据库。

    cluster = "yashandb"
    empty_cluster = true # empty_cluster为true的时候,表示要创建空集群。
    
    [[group]]
      groupid = 1
      
      [[group.node]]
        nodeid = "1-1:1"
    
  5. 执行以下命令,安装数据库。

    $ yasboot package install -t hosts.toml
    
  6. 执行以下命令,部署数据库集群B。

    $ yasboot cluster deploy -t yashandb.toml
    
  7. 将集群A的catalog目录拷贝至集群B服务器1的相应目录。

  8. 初始化集群B的yasbak。

    Note:

    -D参数需指定为集群B的服务器1中catalog实际存放的目录。

    $ yasbak deploy -c yashandb -a 192.168.1.3:1675 -k 96ed7a2c90e81a9e -D ./catalog -u sys -p password --force
    
  9. 拷贝集群A的备份集压缩包到集群B服务器1的相应目录。

  10. 执行以下命令,分发备份集压缩包至集群B的所有服务器。

$ yasbak distribute -c yashandb -b yashandb.tar.gz
  1. 执行以下命令,重置集群B。

    $ yasbak reset -c yashandb -p password
    
  2. 执行以下命令,恢复备份集至集群B。

    $ yasbak run -c yashandb -s "restore cluster from tag 'full_01'"
    
pdf-btn 下载文档
copy-btn 复制链接