达梦数据库误操作,如何通过归档文件恢复数据库

场景一、本次测试内容为单机数据库误删除数据文件,如何恢复数据库的流程

一、创建测试环境

1、创建一个测试实例
在这里插入图片描述
我这边原先已经有数据库了,所以要把端口改一下。
2、把实例开启归档,不然没法备份
在这里插入图片描述
直接前台启动、简单设置下归档
在这里插入图片描述

3、创建表A1后备份,然后创建表A2
在这里插入图片描述
4、关掉数据库,删除SYSTEM、MAIN表空间文件
在这里插入图片描述

二、测试

1、启动测试
在这里插入图片描述
报错缺少SYSTEM.DBF数据文件。
2、直接还原测试
在这里插入图片描述
提示缺少SYSTEM.DBF数据文件。
3、重建数据库还原测试
在这里插入图片描述
这里参数简单改一下路径和端口就可以,因为创建的测试环境也没有设置参数,生产环境的初始化参数可以到数据文件路径下有个dminitxxxxxx.log文件查看初始化参数,然后进行再次还原测试
在这里插入图片描述
可以还原,但备份文件中只有表A1,没有表A2,接下来利用归档文件进行表A的恢复。
在这里插入图片描述
更新魔数。
(有人会问这个 UNTIL TIME ‘2024-02-18 18:20:09.772’,这一串数字是哪里来的。我没有特意的注意时间,我是通过log路径下的dmrman日志找到的,正常只输入2024-02-18 18:20:09就可以。)
在这里插入图片描述

三、检查恢复情况。

启动新创建的实例,查看表情况。
在这里插入图片描述

表A1,A2都有,恢复成功!!!

场景二、数据表A1误操作,只恢复数据表A1,不影响其他数据表。

(本来场景二的测试内容想写场景一的升级,主备集群利用备机的归档恢复主机数据,但是,我经验尚浅,实在想不出生产环境在什么操作下能出现主备集群删除了主机的归档同时利用数据库还原操作造成数据缺失,所以我这边只提供一个还原的方法吧,不做具体实操。
RECOVER DATABASE ‘/dm/data/DAMENG/dm.ini’ WITH ARCHIVEDIR ‘/dm/data/dmarch’ USE DB_MAGIC xxxxxxxx;
主要区别在于RECOVER的操作,DB_MAGIC 这个值可以直接在数据库中直接查询。)
在这里插入图片描述

一、回到主题、创建测试环境

前情提要表A1中有三条数据,表A2中无数据
在这里插入图片描述
先备份一下,然后误操作删除表A1中的数据,A2表开始插入数据。大概这样四个步骤
在这里插入图片描述

二、进行数据还原

如果直接使用备份进行还原,会导致A2表中数据缺失,达梦数据库的联机备份是支持表备份,表还原的,但是一般情况生产环境不会针对某个表进行备份的。所以我们要还原的话需要创建一个新的数据库40,使用备份进行还原。
在这里插入图片描述
还原的40数据库A1表数据是全的,如何把这个数据放入39之中呢?在39数据库中创建一个外部链接。
在这里插入图片描述
在这里插入图片描述
测试连接的时候发现,我这个测试的数据库版本不是企业版,不支持这个功能,那么我打算用DTS把数据迁移过去。(这个环节方法很多,包括表导出再导入等,不一一列举了)
在这里插入图片描述
在这个环节为了防止数据重复,点击转换,我选择了删除后拷贝记录。(数据量较大的表酌情使用)
在这里插入图片描述
执行成功。

三、数据检查

表A2:
在这里插入图片描述
表A1:
在这里插入图片描述
数据还原完成。

欢迎大家学习达梦数据库知识:eco.dameng.com

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值