DM使用异常退出源库的归档文件进行恢复(完全恢复)

考虑如下场景:

1) 创建数据库 D1;

2) 操作数据库并执行备份,产生备份集 B1;

3) 继续操作数据库,操作过程中数据库故障,产生归档 A1。

如果故障发生在 REDO 日志已写入联机日志,但未写入归档文件时,由于归档文件缺少

部分 REDO 日志,此时使用备份集 B1 及归档 A1 无法将目标数据库恢复到最新状态。

对于这样的情况,需要使用联机日志修复归档后(详见 3.3.8 归档修复),才可使用归

档文件将目标数据库恢复到最新状态。完全恢复在规档应用完后,再应用在线的redolog)!

1)、连接数据库执行备份,产生一致性备份集 B1;

SQL> BACKUP DATABASE FULL TO B1 BACKUPSET '/dm/backuppath/B1' DEVICE TYPE DISK BACKUPINFO 'DAMENG FULL BACKUP ONLINE';

2)、做事务

初始表:select count(*) from t;-- 69005351条

做事务:SQL> tr_i(1000000000);

核对表:select count(*) from t;--大约69054345

然后kill -9 掉DB进程。

3)创建待还原的库。

dminit path=/dm/data44/repdb db_name=DAMENG_FOR_RES

4)、为了让后边的recover应用到异常关库时的在线redolog,用REPAIR通过物理层的考页方式将在线的redolog考到规档中去。

RMAN> REPAIR ARCHIVELOG DATABASE '/dm/data/db1/dm.ini'

5)、使用备份集 B1 及归档 A1 将目标库 D2 恢复到最新状态。

RMAN> RESTORE DATABASE '/dm/data44/repdb/DAMENG_FOR_RES/dm.ini' FROM BACKUPSET  '/dm/backuppath/B1';

--使用源库的/dm/arch/规档目录来恢复上档库DAMENG_FOR_RES

RMAN> RECOVER DATABASE '/dm/data44/repdb/DAMENG_FOR_RES/dm.ini' WITH ARCHIVEDIR  '/dm/arch/';

6)、更新库:

RMAN> RECOVER DATABASE '/dm/data44/repdb/DAMENG_FOR_RES/dm.ini' UPDATE DB_MAGIC;

7)、核对:

改一下:/dm/data44/repdb/DAMENG_FOR_RES/dm.ini 中的PORT_NUM                        = 5237,启动库:

[dmdba@dm11 ~]$ dmserver  /dm/data44/repdb/DAMENG_FOR_RES/dm.ini

启动源库:

[dmdba@dm11 ~]$ dmserver /dm/data/db1/dm.ini

8)、经实验:如果不REPAIR ARCHIVELOG DATABASE '/dm/data/db1/dm.ini'则恢复出来的数据要少一些(不能应用到联机redo),不完全恢复!

 更多学习内容参考:达梦数据库 - 新一代大型通用关系型数据库 | 达梦云适配中心

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值