恢复DM8数据库基于时间点的恢复
在生产环境中 , 当我们误操作删除了重要数据时 , 可以使用闪回查询来找回原来的数据 , 但当表被删除或者数据库没有开启闪回功能时 , 则无法使用闪回来获取原有的表数据;此时我们可以使用基于归档日志的时间点的恢复(不完全恢复)来达到恢复数据或恢复表的目的 。
本章介绍DM8数据库如何使用归档日志文件将数据库恢复到指定时间点的状态 。
本章内容已在如下环境上测试:
操作系统:中标麒麟7;
数据库版本:达梦8;
相关关键字:DM还原恢复 , WITH ARCHIVEDIR ,UNTIL TIME , 基于时间点的恢复
基于时间点的恢复
01
备份数据库
数据库故障还原的前提是要有备份文件 , 这里创建一个原始的数据库备份文件 , 可以使用DMRMAN脱机备份文件 , 也可以是联机备份文件 。 这里以联机备份为例(在联机备份之前 , 需要保证数据库已开启并配置归档) 。 使用SYSDBA用户登录数据库 , 执行如下语句备份数据库:
SQL> backup database full backupset "DMTESTFULL_ONLINE0723"
本文插图
02
制造数据 , 生成归档日志
创建test用户 , 并在test用户下创建表t_table并插入数据 , 此过程生成归档日志 。
SQL> create user test IDENTIFIED by dameng123 DEFAULT TABLESPACE mainSQL> create table test.t_table as select * from SYSOBJECTS
本文插图
03
模拟故障 , 删除表
模拟故障 , 删除test用户下表t_table 。 并记录下删除表时的系统时间 。
本文插图
04
使用备份和归档日志将
数据库恢复到指定时间点
t_table表被删除 , 要想找回此表的数据 , 只能将数据库恢复到表删除的前一刻 。 恢复步骤参考如下:
使用备份文件还原数据库
执行如下命令停止数据库:
[dmdba@localhost bin]$ DmServiceDMTESTSERVER stop
使用步骤1的备份文件将数据库还原到备份时状态:
RMAN> restore database "/dm8/data/DMTEST/dm.ini" from backupset "DMTESTFULL_ONLINE0723"
本文插图
使用归档日志将数据库恢复到指定时间点
执行如下命令 , 指定with archivedir参数使用归档恢复 , 并指定until time参数将数据库还原到删除表之前的时间 , 由步骤3得知 , 我们大概在2020-07-23 10:48:53之前的时间删除了表数据 , 这里将数据库恢复到2020-07-23 10:48:40的时间(时间越精确越好 , 无法精确的情况下预估) 。
RMAN> recover database "/dm8/data/DMTEST/dm.ini" with archivedir "/dm8/data/DMTEST/arch" until time "2020-07-23 10:48:40"
从下面的截图可以看出 , 归档的恢复并不是100%(因为是不完全恢复 , 并没有完全重做所有归档日志) , 只是恢复到93% 。
【恢复DM8数据库基于时间点的恢复】
本文插图
更新数据库魔数
执行如下命令更新数据库魔数db_magic信息 。
RMAN> recover database "/dm8/data/DMTEST/dm.ini" update db_magic
此时 , 数据库恢复完成 。
执行DmServiceDMTESTSERVER start启动数据库 , 连接数据库查询test用户下t_table表数据 , 可以看到t_test表已恢复 。
推荐阅读
- 女孩复健怕疼医生先发飙后鼓励|【仁心仁术】女孩复健怕疼医生先发飙后鼓励:怕错过最佳恢复期
- 经济日报:优化营商环境力推经济恢复
- 北青网综合|这2条跨京冀线路今日恢复全线运营
- 经济|采购经理指数连续五个月在荣枯线上 制造业全面恢复回升
- 全省|湖南建筑业实现恢复性增长 上半年总产值同比增长5.7%
- 指数|PMI连续五个月在荣枯线上 制造业全面恢复回升
- PMI|PMI连续五个月在荣枯线上 制造业全面恢复回升
- 人民日报|制造业全面恢复 PMI连续5个月在50%以上
- 红星新闻|九寨黄龙机场恢复北京-九寨往返航线
- 河南日报|安徽安置点里,河南救援队帮助群众恢复生产生活
