专栏/培训园地/ 文章详情 /

DPC分布式集群备份还原实战

Yar 2024/11/27 368 0 0
摘要

DPC分布式集群备份还原实战

1 DPC备份还原使用介绍

DPC支持单库、整个集群和归档的备份与还原,常用的为单库备份还原和整个集群备份还原

1.1 整个集群

备份:
①直连SP或用BS方式连接BP,会自动备份全部数据存储节点(MP和BP)
②连接SP节点设置跟单机一样的备份定时作业就能正常备份(操作方式跟单机相同)

还原:
①通常为DPC集群的某个BP或MP的全部副本数据都损坏,不能进行正常的RAFT组内切换,导致集群不能正常提供服务,只能进行整库还原;
②使用一个DPC集群的备份集到新环境的相同架构下,还原数据做测试环境使用;

1.2 单库

这里的单库备份还原指的是副本的重做

备份:
正常运行情况下,不用进行单库备份,当副本损坏时再备份主库数据去其他副本还原

还原:
比如某个RAFT组内的其中一个副本数据损坏,不能正常加入RAFT组,只能通过当前损坏节点的主库备份后还原数据(还原后自动追日志加入raft组);

2 DPC备份还原实操

本文介绍
①DPC集群不能提供服务的情况下,怎么进行原库数据恢复(使用全量备份文件进行还原)
②副本损坏的情况下怎么重做副本(使用dem重做副本)

2.1 整库备份还原

以1mp(MP_A),1sp和2bp(BP1_A,BP2_A)架构为例

注意
本节是以单副本架构为例进行原库还原(不用传备份文件到新机器)
Ⅰ.如果是多副本集群,除了主库外的其他全部副本也必须按下面步骤进行还原;
Ⅱ.如果需要还原到新DPC集群,把备份文件传到新集群节点还原后,还需要连接MP主节点更改注册信息,比如更改IP,端口,实例名等;(本文不做介绍)
Ⅲ.如果备份集是增量备份集,执行还原时直接指定增量备份集,会自动去扫描全量备份集;(前提是增量备份文件和全量备份文件都在相同目录下)

2.1.1 备份

直连SP或用BS方式连接BP,执行跟单机相同的备份语句
例如:

backup database full to "dpc_bak" backupset '/dmdata/ssd_dmdata/dmbak/dpc_bak' compressed level 6 parallel 8;

复制

backupset:备份集
compressed level:压缩级别
parallel:并行度

成功后备份情况(多副本也只会备份主节点):
image.png

2.1.2 还原

整库还原需要还原所有的MP,BP节点,下面通过指定上面的备份集方式恢复集群(还原哪个实例,相应的备份文件就要在哪台服务器上)

2.1.2.1 还原MP

①首先确保集群处理停止状态

ps -ef|grep dm.ini --查看数据库服务是否存在

复制

②查看备份集的bak_magic值,还原时要指定

show backupset '/dmdata/ssd_dmdata/dmbak/dpc_bak_MP_A'

复制

image.png
③开始执行恢复命令
共4个命令(按顺序执行),修改下面语句对应的 dm.ini目录,备份集绝对路径,BAK_MAGIC号

进入dmrman执行:

RESTORE DATABASE '/dmdata/ssd_dmdata/DPC_TEST/dmdpc/MP_A/DAMENG/dm.ini' FROM BACKUPSET '/dmdata/ssd_dmdata/dmbak/dpc_bak_MP_A' USE BAK_MAGIC 1966606340 RECOVER DATABASE '/dmdata/ssd_dmdata/DPC_TEST/dmdpc/MP_A/DAMENG/dm.ini' FROM BACKUPSET '/dmdata/ssd_dmdata/dmbak/dpc_bak_MP_A' USE BAK_MAGIC 1966606340 RECOVER DATABASE '/dmdata/ssd_dmdata/DPC_TEST/dmdpc/MP_A/DAMENG/dm.ini' UPDATE DPC_MAGIC 123456 RECOVER DATABASE '/dmdata/ssd_dmdata/DPC_TEST/dmdpc/MP_A/DAMENG/dm.ini' UPDATE DB_MAGIC

复制

执行结果
image.png
4步执行完后MP恢复完成
如果是多副本,则继续还原其他全部副本,语法相同

2.1.2.2 还原BP

还原BP需要还原所有BP节点,当前环境为2BP,没有副本,所有只用还原两个主BP节点(如果是多副本集群,除了主库执行下面命令,其他副本也全部按步骤执行)

连接各自的BP服务器,进入dmrman执行(确保BP备份集在对应的服务器上):
对BP1_A进行还原:

RESTORE DATABASE '/dmdata/ssd_dmdata/DPC_TEST/dmdpc/BP1_A/DAMENG/dm.ini' FROM BACKUPSET '/dmdata/ssd_dmdata/dmbak/dpc_bak_BP1_A' USE BAK_MAGIC 1966606340 RECOVER DATABASE '/dmdata/ssd_dmdata/DPC_TEST/dmdpc/BP1_A/DAMENG/dm.ini' FROM BACKUPSET '/dmdata/ssd_dmdata/dmbak/dpc_bak_BP1_A' USE BAK_MAGIC 1966606340 RECOVER DATABASE '/dmdata/ssd_dmdata/DPC_TEST/dmdpc/BP1_A/DAMENG/dm.ini' UPDATE DPC_MAGIC 123456 RECOVER DATABASE '/dmdata/ssd_dmdata/DPC_TEST/dmdpc/BP1_A/DAMENG/dm.ini' UPDATE DB_MAGIC

复制

执行结果
image.png在这里插入图片描述
如果是BP1是多副本,则继续还原其他全部副本,语法相同

对BP2_A进行还原:

RESTORE DATABASE '/dmdata/ssd_dmdata/DPC_TEST/dmdpc/BP2_A/DAMENG/dm.ini' FROM BACKUPSET '/dmdata/ssd_dmdata/dmbak/dpc_bak_BP2_A' USE BAK_MAGIC 1966606340 RECOVER DATABASE '/dmdata/ssd_dmdata/DPC_TEST/dmdpc/BP2_A/DAMENG/dm.ini' FROM BACKUPSET '/dmdata/ssd_dmdata/dmbak/dpc_bak_BP2_A' USE BAK_MAGIC 1966606340 RECOVER DATABASE '/dmdata/ssd_dmdata/DPC_TEST/dmdpc/BP2_A/DAMENG/dm.ini' UPDATE DPC_MAGIC 123456 RECOVER DATABASE '/dmdata/ssd_dmdata/DPC_TEST/dmdpc/BP2_A/DAMENG/dm.ini' UPDATE DB_MAGIC;

复制

执行结果
image.png
如果是BP1是多副本,则继续还原其他全部副本,语法相同

2.1.3 还原成功,正常启动数据库

按上面步骤还原所有MP和BP节点后,就能正常启动数据库集群
image.png

2.2 单库备份还原

这里以1sp,1mp,2bp(其中BP1_A新增两个副本)多副本架构为例,使用dem进行重做副本操作,就是单库的备份还原
如果使用命令行,语法跟上面类似,单独还原副本后直接启动BP副本,能自动追日志

2.2.1 新增副本

image.png

2.2.2 停掉一个BP副本(BP1_C),并删除实例文件

image.png

2.2.3 进行副本重做

image.png
按图中顺序进行点击
①选中监控模块->点击数据库监控->②选择需要维护的集群->③点击维护(新增副本步骤类似)->④选中需要重做的副本->⑤点击重建实例(然后填写正确参数,点击确定后,点击下一步)

后面基本可以全部默认,一直下一步到详情总览,确定信息正确就可以点击保存并执行了
image.png

2.2.4 重做成功

image.png
可以看到图上也是在BP主库上执行了全备操作,然后进行还原后启动

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服