操作系统:麒麟3.2
cpu架构:X86
数据库版本:达梦8
1、创建一个测试实例
服务器中已经有数据库了,所以要把端口改一下。
2、实例开启归档,备份需要数据库处于归档状态。
直接前台启动,设置下归档
3、创建表A1后备份,然后创建表A2
4、关掉数据库服务,删除SYSTEM、MAIN表空间文件
1、启动测试
报错缺少SYSTEM.DBF数据文件。
2、直接还原测试
提示缺少SYSTEM.DBF数据文件。
3、重建数据库还原测试
这里参数改一下路径和端口就可以,因为创建的测试环境也没有设置参数,生产环境的初始化参数可以到数据文件路径下有个dminitxxxxxx.log文件查看初始化参数,然后进行再次还原测试
可以还原,但备份文件中只有表A1,没有表A2,接下来利用归档文件进行表A2的恢复。
更新魔数。
(UNTIL TIME '2024-02-18 18:20:09.772',这一串数字的来源。我没有特意的注意时间,我是通过log路径下的dmrman日志找到的,正常只需要输入2024-02-18 18:20:09就行。)
启动新创建的实例,查看表情况。
表A1,A2都有,恢复成功!!!
前情提要表A1中有三条数据,表A2中无数据
备份一下,然后删除表A1中的数据,A2表开始插入数据。
如果直接使用备份进行还原,会导致A2表中数据缺失,达梦数据库的联机备份是支持表备份,表还原的,但是一般情况生产环境不会针对某个表进行备份的。所以我们要还原的话需要创建一个新的数据库40,使用上一步的备份进行还原。
还原的40数据库A1表数据是全的,
把40数据库A1表中数据插回到数据库39:
用DTS把数据迁移过去。(这个环节方法很多,包括导出再导入等,不一一列举了)
在这个环节为了防止数据重复,点击转换,选择了删除后拷贝记录。(数据量较大的表酌情使用)
执行成功。
表A2:
表A1:
数据还原完成。
本场景模拟的是生产环境中,主机的归档误删且业务数据操作错误,需要还原的情景。
在主机上,删除TEST表中ID=2的数据
这里的三个点:
1、USE DB_MAGIC:表示使用备机的归档文件进行还原。可以利用select DB_MAGIC语句到数据库中查看也可以通过SHOW BACKUPSET '/home/dmdba/+备份文件;查看备份库的DB_MAGIC。
2、UNTIL TIME:表示恢复到的时间节点。
3、因为是集群,所以只在主机上执行,会导致LSN不一致或者备机的LSN超过主机。所以这个还原操作要在主备机上都执行。
TEST表中ID=2的数据恢复成功。
文章
阅读量
获赞