资讯专栏INFORMATION COLUMN

Polardb-o集群备份恢复

IT那活儿 / 3218人阅读
Polardb-o集群备份恢复
点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!

使用前配置

1.1 配置备份日志输出目录

1)打开 /usr/local/polardb_o_backup_tool_current/bin 目录下的 loader.conf 配置文件,修改字段Logdir
例如,设置日志输出目录为 /disk2/log(根据需要设置,并创建对应目录)。
2)打开 /usr/local/polardb_o_backup_tool_current/bin 目录下的 pgpipeline.conf ,修改字段BackupMetaDir
例如,设置该字段的备份元信息输出目录为 /disk2/bkmetas ,创建该目录并设置以下字段。
该文件恢复的时候需要,拷贝备份的时候需要一同拷贝,注意存放目录。

1.2 配置CM

CM配置文件,配置如下所示:
/usr/local/polardb_cluster_manager/bin/plugin/manager/manager_extern.conf
"BackupMachineList":["10.162.93.56:1888","10.162.4.208:1888","10.162.4.209:1888"],
"ManagerAddr": "10.162.93.56:5500",

说明:

  • ackupMachineList是备份机器服务端口列表,例如,10.162.93.56:1888、10.162.4.208:1888、10.162.4.209:1888。
  • ManagerAddr是CM的服务端口,例如,10.162.93.56:5500。
设置完成后,执行systemctl restart polardb-cm-clusterid.service重启CM服务使之生效。
所有节点均需要设置此配置,设置为同样的值即可。

1.3 备份相关配置

1)postgresql.conf参数如下配置
/var/polardb/cluster/clusterid/postgresql.conf
archive_mode=always
archive_command=
主备设置完成后重启PG数据库进程使之生效。
检查命令如下:
show archive_mode;
show archive_command;
2)/usr/local/polardb_o_backup_tool_current/bin/pgpipeline.conf配置如下参数
"ManagerAddr": ["10.162.93.56:5500"], #端口为CM端口。
3)/usr/local/polardb_o_backup_tool_current/bin/increpipeline.conf配置如下参数
"ManagerAddr": ["10.162.93.56:5500"], #端口为CM端口
tips:以上参数所有节点全部配置。配置完成后所有节点重启备份进程。

systemctl restart backupctl.service


备份集群

2.1 全量备份

1)本地fs文件存储

配置备份脚本  /usr/local/polardb_o_backup_tool_current/bin/regular-fullbackup-flex.sh ,配置信息如下所示:
cmgateway="10.162.93.56:5500"  #CM ip和端口
polardbdata="/mnt/disk2"   #数据存放目录
pgdata="/var/local/polardb/clusters/mycluster" #数据库工作目录
storagetype="fs"     #备份存储类型
dst="/backup/test"   #备份存放目录
instanceid="polardb-flex-test"  #实例ID
执行全量备份:
cd /usr/local/polardb_o_backup_tool_current/bin
./regular-fullbackup-flex.sh
执行 tailf backup.log  命令,通过查看backup.log可以看到备份进程在进行全量备份,每成功备份一个wal日志文件,会打印以下信息。
[INFO] backup wal file [xxxx] finished
备份完成会在日志最后打印以下信息:
[INFO] main [pgpipeline.backup] Run success
2)远程http文件存储
配置备份脚本/usr/local/polardb_o_backup_tool_current/bin/regular-fullbackup-flex.sh,配置信息如下所示:
cmgateway="10.162.93.56:5500"  #CM ip和端口
polardbdata="/mnt/disk2"   #数据存放目录
pgdata="/var/local/polardb/clusters/mycluster" #数据库工作目录
storagetype="http"     #备份存储类型
dst=" 10.162.93.56:8080"   #备份存放目录
instanceid="polardb-flex-test"  #实例ID
执行全量备份:
cd /usr/local/polardb_o_backup_tool_current/bin
./regular-fullbackup-flex.sh
执行 tailf backup.log  命令,通过查看backup.log可以看到备份进程在进行全量备份,每成功备份一个wal日志文件,会打印以下信息。
[INFO] backup wal file [xxxx] finished
备份完成会在日志最后打印以下信息:
[INFO] main [pgpipeline.backup] Run success

2.2 增量备份

1)本地fs文件存储

配置增量备份脚本/usr/local/polardb_o_backup_tool_current/bin/regular-increbackup-flex.sh,配置信息如下:
cmgateway="10.162.93.56:5500"  #CM ip和端口
polardbdata="/mnt/disk2"   #数据存放目录
pgdata="/var/local/polardb/clusters/mycluster" #数据库工作目录
storagetype="fs"     #备份存储类型
dst="/backup/test"   #备份存放目录
instanceid="polardb-flex-test"  #实例ID
执行增量备份脚本。
cd /usr/local/polardb_o_backup_tool_current/bin
./regular-increbackup-flex.sh
执行以下命令,通过查看backup.log,可以看到备份进程在进行增量日志备份。
tailf backup.log
2)远程http文件存储
配置增量备份脚本/usr/local/polardb_o_backup_tool_current/bin/regular-increbackup-flex.sh ,配置信息如下所示:
cmgateway="10.162.93.56:5500"  #CM ip和端口
polardbdata="/mnt/disk2"   #数据存放目录
pgdata="/var/local/polardb/clusters/mycluster" #数据库工作目录
storagetype="fs"     #备份存储类型
dst="10.162.93.56:8080"   #备份存放目录
instanceid="polardb-flex-test"  #实例ID
执行增量备份脚本。
cd /usr/local/polardb_o_backup_tool_current/bin
./regular-increbackup-flex.sh
执行以下命令,通过查看backup.log,可以看到备份进程在进行增量日志备份。
tailf backup.log

2.3 停止增量备份

增量备份脚本启动后会一直运行,需要停止增量备份,可以配置并执行停止增量脚本。
配置停止增量脚本/usr/local/polardb_o_backup_tool_current/bin/stop-increbackup-flex.sh ,配置信息如下所示:
cmgateway="10.162.93.56:5500"  #CM端口和IP
instanceid="polar-flex-test"   #实例ID
执行停止增量备份脚本。

cd /usr/local/polardb_o_backup_tool_current/bin
./stop-increbackup-flex.sh


恢复集群

3.1 恢复数据

1)本地fs文件存储

配置还原脚本/usr/local/polardb_o_backup_tool_current/bin/recovery2fs-pitr-byfs-cm.sh,配置信息如下:
# 恢复到指定全量备份集⽰例:
cmgateway="10.162.93.56:5500"
backupmachine="10.162.93.56:1888"
polardbdata="/mnt/disk3"
pgdata="/var/local/polardb/clusters/mycluster_recovery"
storagetype="fs"
dst="/root/testbk"
instanceid="polar-flex-test"
fullbackupid="testbkid-031101"
recoverytime=0

# 恢复到指定时间点示例:

cmgateway="10.162.93.56:5500"
backupmachine="10.162.93.56:1888"
polardbdata="/mnt/disk3"
pgdata="/var/local/polardb/clusters/mycluster_recovery"
storagetype="fs"
dst="/root/testbk"
instanceid="polar-flex-test"
fullbackupid=""
recoverytime=1616050150

2)远程http文件存储

配置还原脚本/usr/local/polardb_o_backup_tool_current/bin/recovery2fs-pitr-byhttp-cm.sh ,配置信息如下所示:
# 恢复到指定全量备份集⽰例:

cmgateway="10.162.93.56:5500"
backupmachine="10.162.93.56:1888"
polardbdata="/mnt/disk3"
pgdata="/var/local/polardb/clusters/mycluster_recovery"
storagetype="http"
dst="10.162.93.56:8080"
instanceid="polar-flex-test"
fullbackupid="testbkid-031101"
recoverytime=0

# 恢复到指定时间点⽰例:

cmgateway="10.162.93.56:5500"
backupmachine="10.162.93.56:1888"
polardbdata="/mnt/disk3"
pgdata="/var/local/polardb/clusters/mycluster_recovery"
storagetype="http"
dst="10.162.93.56:8080"
instanceid="polar-flex-test"
fullbackupid=""
recoverytime=1616050150
然后执行恢复脚本,进行恢复。还原完成会在日志最后打印以下信息:
main [increpipeline.restore] Run success
3)需要注意的参数
恢复之前:

pdbcli upgrade backup

配置 /usr/local/polardb_o_backup_tool_current/bin/pgpipeline.conf 文件的ManagerAddr字段,设置为备份的监听端口,例如,在10.162.93.56机器上进行还原,则配置为:10.162.93.56:1888。
配置 /usr/local/polardb_o_backup_tool_current/bin/increpipeline.conf 文件的ManagerAddr字段,设置为备份的监听端口,例如,在10.162.93.56机器上进行还原,则配置为:10.162.93.56:1888。

3.2 恢复集群

1)恢复单节点

首先我们利用备份恢复完成后,上传polardb-o的软件包,执行安装。
修改配置文件config.yaml
cat > /root/pdbcli-0.5.1/config.yaml <all:
  hosts:
    host01:
      ansible_host: 10.253.181.1
  vars:
    polardb_data_root_dir: /data01/polardb/data
    cluster_id: mycluster
    primary_db_host: host01
    external_storage_path: /data01/polardb_cluster_mycluster
    firewalld_enabled: false
    ansible_group_priority: 99
    ansible_python_interpreter: /usr/bin/python2.7
  children:
    db:
      hosts:
        host01:
          polardb_polar_hostid: 1
      vars:
        polardb_custom_params: []
        polardb_recovery_custom_params:
          - restore_command =
          - recovery_target_action = promote
    cm:
      hosts:
        host01:
      var:
    proxy:
      hosts:
        host01:
      var:
EOF
这里主机host01的IP为我们需要恢复的主机IP,recovery_target_action = promote该参数为恢复完成后作为主库启动。
#安装集群组件
执行pdbcli install cluster --config=config.yaml安装集群组件
#创建单节点集群
pdbcli create cluster --create-from-backup --config=config.yaml

2)恢复整个集群

再次修改配置文件,可以拷贝原来集群的config.yaml文件,修改对应的IP和安装路径,已经对应的端口号来恢复整个集群。先将被恢复的主机打通root免密。修改完配置文件后,执行以下命令恢复:
#备节点安装集群组件和数据库引擎
pdbcli install node --target host02
pdbcli install node --target host03
#重建备节点数据库
pdbcli rebuild db --targer host02
pdbcli rebuild db --targer host03
#重建完成后检查集群状态
pdbcli status --config=config.yaml

3.3 配置文件模板

上图为配置文件模板(内容较长,如有需要的读者请留言),在恢复整个集群的时候可以根据修改对的值来使用。
备份策略:每天定时全备,保留七天全备。暂定定期全量备份操作。
  • 切换至root用户,执行以下命令:

    crontab -e

  • 输入定期全量备份信息(例如,每周六凌晨04:00 开始全量备份),并输入 wq  保存。

    0 4 * * 6 /usr/local/polardb_o_backup_tool_current/bin/regular-fullbackup-flex.sh

  • 定期全量备份前应手动执行一次脚本,确保参数输入无误,全量备份正常。
    /usr/local/polardb_o_backup_tool_current/bin/regular-fullbackup-flex.sh

本文作者:李 赛(上海新炬王翦团队)

本文来源:“IT那活儿”公众号

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129269.html

相关文章

  • 使用BenchmarkSQL对Polardb数据库进行TPCC测试

    使用BenchmarkSQL对Polardb数据库进行TPCC测试 img{ display:block; margin:0 auto !important; width:100%; } body{ width:...

    IT那活儿 评论0 收藏547
  • 1TB每日仅需6元!USnap磁盘快照服务全新上线,精确到秒级恢复

    摘要:数据方舟已经在多个数据安全案例中得到应用,并得到了众多用户的认可。相对于数据方舟产品,的价格直降,低至元月,保护核心的数据资产,每日只需元典型应用场景容灾备份利用快照定期备份重要的业务数据,以应对误操作攻击或病毒等导致的数据丢失风险。在企业数字化转型的浪潮下,数据正成为企业核心资产甚至命门,数据安全的重要性不言而喻。可是即便企业对数据安全高度重视,几乎每年还是会发生震撼业界的数据丢失大事件:...

    Tecode 评论0 收藏0
  • 2021年10月6日 软考中级笔记---软件设计师(B站视频笔记)

    摘要:死锁问题可以预防,可以解决死锁年月日数据库的完整性约束实体完整性约束定义主键。主键不能为空,不能重复参照完整性约束外键。系统需要进行多次连接,才能进行查询操作,是的系统效率大大下降。 ...

    superPershing 评论0 收藏0
  • 磁盘快照服务USnap:公有云连续数据保护(CDP)系统升级改造实践

    摘要:在年推出了为云主机磁盘提供持续数据保护的数据方舟产品,支持最小精确到秒级的恢复,针对数据删除或者丢失事件,能够最大程度的挽回数据。为此我们推出了磁盘快照服务,基于数据方舟技术并进一步升级,以更低的成本为全系列云盘普通提供了数据备份功能。UCloud在2015年推出了为云主机磁盘提供持续数据保护(CDP)的数据方舟(UDataArk)产品,支持最小精确到秒级的恢复,针对数据删除或者丢失事件,能...

    Tecode 评论0 收藏0
  • 磁盘快照服务USnap:公有云连续数据保护(CDP)系统升级改造实践

    摘要:在年推出了为云主机磁盘提供持续数据保护的数据方舟产品,支持最小精确到秒级的恢复,针对数据删除或者丢失事件,能够最大程度的挽回数据。为此我们推出了磁盘快照服务,基于数据方舟技术并进一步升级,以更低的成本为全系列云盘普通提供了数据备份功能。UCloud在2015年推出了为云主机磁盘提供持续数据保护(CDP)的数据方舟(UDataArk)产品,支持最小精确到秒级的恢复,针对数据删除或者丢失事件,能...

    Tecode 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<