点击上方蓝色字体关注我们

目前较多系统使用数据守护集群,偶尔会有备库故障导致未及时同步主库日志,并且主库经历了归档清除,这时备库恢复之后也无法正常加入集群;旧版本此情况需要重做备库,目前140以后新版本已支持使用增量备份修复备库缺失的数据。本期主要介绍如何使用主库增量备份修复备库缺失数据,并使备库可正常加入集群。


环境说明

数据库:达梦数据库管理系统DM8。
[dmdba@localhost ~]$ disql SYSDBA/SYSDBA:5236服务器[LOCALHOST:5236]:处于主库打开状态登录使用时间 : 7.061(ms)SQL> select * from v$version;行号 BANNER---------- ---------------------------------1 DM Database Server 64 V82 DB Version: 0x7000c3 03134284172-20240321-222308-200934 Msg Version: 05 Gsu level(3-4) cnt: 36 Gsu level(5) cnt: 0


步骤说明

环境准备
已经部署一套正常的DM数据库守护集群:
模拟备机异常
1)停止备机守护进程和数据库服务
2)监视器上执行show global info显示所有组的全局信息
主库进行数据写入
SQL> select * from v$arch_status;行号 ARCH_TYPE ARCH_DEST ARCH_STATUS ARCH_SRC---------- --------- --------- ----------- --------1 REALTIME GRP1_DW_02 INVALID GRP1_DW_012 LOCAL /dmarch/DAMENG VALID GRP1_DW_01SQL> create table t_test(id int, name varchar(50));SQL> insert into t_test(id, name) select rownum, dbms_random.string('a',30) from dual connect by rownum <=1000;SQL> insert into t_test(id, name) select rownum, dbms_random.string('a',30) from dual connect by rownum <=1000;SQL> commit;
主库清除归档日志
手动进行日志切换,并清除日志
SQL> alter system switch logfile;SQL> select SF_ARCHIVELOG_DELETE_BEFORE_TIME(SYSDATE);
恢复故障备库
1)启动故障备库数据库和数据守护服务

2)主库进行了recover,但是备库并未成功加入集群,主库至备库归档仍然无效。

主库上查询归档状态,实时归档仍然是INVALID。

3)查看主库数据库日志有归档不连续的异常报错

查看备库当前应用的LSN号
[dmdba@localhost ~]$ disql SYSDBA/SYSDBA:5236服务器[LOCALHOST:5236]:处于备库打开状态登录使用时间 : 43.870(ms)disql V8SQL> SELECT N_EP, APPLY_LSN_ARR FROM V$RAPPLY_LSN_INFO;行号 N_EP APPLY_LSN_ARR---------- ----------- -------------1 1 (51874)
主库增量备份并拷贝至备机
[dmdba@localhost ~]$ disql SYSDBA/SYSDBA:5236服务器[LOCALHOST:5236]:处于主库打开状态登录使用时间 : 19.283(ms)SQL> backup database increment from lsn 51874 backupset '/dmbak/inc_bak_for_standby';操作已执行已用时间: 00:00:04.823. 执行号:15.
备库应用恢复
[dmdba@localhost ~]$ dmrmandmrman V8RMAN> restore database '/dmdata/DAMENG/dm.ini' from backupset '/dmbak/inc_bak_for_standby';RMAN> recover database '/dmdata/DAMENG/dm.ini' from backupset '/dmbak/inc_bak_for_standby';RMAN> recover database '/dmdata/DAMENG/dm.ini' update db_magic;

启动备库服务,观察恢复过程
1)在监视器上执行startup database GRP1_DM_02启动备库

执行attach将备库重新加回守护进程组
在监视器执行attach database GRP1_DM_02,将备库重新加入集群,归档状态正常。



总结

本次测试可成功通过增量备份(increment from lsn)修复备库的归档缺失。
查询备库应用归档的截至lsn 主库基于备库应用的lsn进行增量备份(increment from lsn) 将备份集拷贝至备库 备库停机并应用增量备份集 启动备库,并使用监视器attach命令手动将分离出去的备库重新加回到守护进程组
以上为本期分享,希望能带给大家帮助。想要了解更多往期干货,可访问页面最下方#达梦技术干货攻略#合集或下方相关分享。在此邀请更多学员参与“达梦技术干货投稿活动”,稿件获选后将在达梦“干货分享”专栏进行发布,欢迎来稿!
作者:L.
审核:青城
排版:达梦培训中心


一周热文






达梦E学
微信号:DM-Elearning
扫码关注查看更多内容
点击下方在看,分享本文
文章转载自达梦E学,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。













