DPC支持单库、整个集群和归档的备份与还原,常用的为单库备份还原和整个集群备份还原
备份:
①直连SP或用BS方式连接BP,会自动备份全部数据存储节点(MP和BP)
②连接SP节点设置跟单机一样的备份定时作业就能正常备份(操作方式跟单机相同)
还原:
①通常为DPC集群的某个BP或MP的全部副本数据都损坏,不能进行正常的RAFT组内切换,导致集群不能正常提供服务,只能进行整库还原;
②使用一个DPC集群的备份集到新环境的相同架构下,还原数据做测试环境使用;
这里的单库备份还原指的是副本的重做
备份:
正常运行情况下,不用进行单库备份,当副本损坏时再备份主库数据去其他副本还原
还原:
比如某个RAFT组内的其中一个副本数据损坏,不能正常加入RAFT组,只能通过当前损坏节点的主库备份后还原数据(还原后自动追日志加入raft组);
本文介绍
①DPC集群不能提供服务的情况下,怎么进行原库数据恢复(使用全量备份文件进行还原)
②副本损坏的情况下怎么重做副本(使用dem重做副本)
以1mp(MP_A),1sp和2bp(BP1_A,BP2_A)架构为例
注意
本节是以单副本架构为例进行原库还原(不用传备份文件到新机器)
Ⅰ.如果是多副本集群,除了主库外的其他全部副本也必须按下面步骤进行还原;
Ⅱ.如果需要还原到新DPC集群,把备份文件传到新集群节点还原后,还需要连接MP主节点更改注册信息,比如更改IP,端口,实例名等;(本文不做介绍)
Ⅲ.如果备份集是增量备份集,执行还原时直接指定增量备份集,会自动去扫描全量备份集;(前提是增量备份文件和全量备份文件都在相同目录下)
直连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:并行度
成功后备份情况(多副本也只会备份主节点):
整库还原需要还原所有的MP,BP节点,下面通过指定上面的备份集方式恢复集群(还原哪个实例,相应的备份文件就要在哪台服务器上)
①首先确保集群处理停止状态
ps -ef|grep dm.ini --查看数据库服务是否存在
复制
②查看备份集的bak_magic值,还原时要指定
show backupset '/dmdata/ssd_dmdata/dmbak/dpc_bak_MP_A'
复制
③开始执行恢复命令
共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
复制
执行结果
4步执行完后MP恢复完成
如果是多副本,则继续还原其他全部副本,语法相同
还原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
复制
执行结果
如果是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;
复制
执行结果
如果是BP1是多副本,则继续还原其他全部副本,语法相同
按上面步骤还原所有MP和BP节点后,就能正常启动数据库集群
这里以1sp,1mp,2bp(其中BP1_A新增两个副本)多副本架构为例,使用dem进行重做副本操作,就是单库的备份还原
如果使用命令行,语法跟上面类似,单独还原副本后直接启动BP副本,能自动追日志
按图中顺序进行点击
①选中监控模块->点击数据库监控->②选择需要维护的集群->③点击维护(新增副本步骤类似)->④选中需要重做的副本->⑤点击重建实例(然后填写正确参数,点击确定后,点击下一步)
后面基本可以全部默认,一直下一步到详情总览,确定信息正确就可以点击保存并执行了
可以看到图上也是在BP主库上执行了全备操作,然后进行还原后启动
文章
阅读量
获赞