注册
达梦数据库备份恢复实战(物理+逻辑)
技术分享/ 文章详情 /

达梦数据库备份恢复实战(物理+逻辑)

### 2024/03/15 2022 5 0

背景介绍:

客户现场误操作导致某张表数据内容有误,希望将该表数据内容恢复至前一天,有定时备份作业每天晚上全量备份。

恢复思路:

初始化一个新实例,需与生产所用实例端口号不同,将前一日物理备份文件在新实例进行恢复,连接新实例将需要恢复的表进行逻辑导出,将导出的dmp文件在生产实例进行恢复。

实操步骤:

1、查看备份情况及实例运行情况;
image.png
2、进入数据库bin目录下初始化新实例

cd /opt/dmdbms/bin/bin
./dminit PATH=/data/dm20240223 PORT_NUM=5238

image.png
3、正确启停一遍新实例,验证是否可以正确启动。

./dmserver /data/dm20240223/DAMENG/dm.ini

image.png
4、出现SYSTEM IS READY后输入exit正常退出
image.png
5、使用物理备份文件在新实例进行恢复

./dmrman CTLSTMT="RESTORE DATABASE '/data/dm20240223/DAMENG/dm.ini' FROM BACKUPSET '/data/dm8/DAMENG/baK/DB_DAMENG_FULL_2024_02_22_01_00_31'"
./dmrman CTLSTMT="RECOVER DATABASE '/data/dm20240223/DAMENG/dm.ini' FROM BACKUPSET '/data/dm8/DAMENG/baK/DB_DAMENG_FULL_2024_02_22_01_00_31'"
./dmrman CTLSTMT="RECOVER DATABASE '/data/dm20240223/DAMENG/dm.ini'  UPDATE DB_MAGIC"

image.png
image.png
6、重新启动新实例

./dmserver /data/dm20240223/DAMENG/dm.ini

image.png
7、应用验证需要恢复的表数据内容是否和想恢复的内容一致,应用验证通过后,可以查询一下这张表的数据行数,等在生产恢复完以后验证行数是否一致,重新打开一个命令行窗口,启动新实例的窗口不能关闭。

./disql 用户名/密码@127.0.0.1:5238
SELECT COUNT(*)FROM BAS_PERSON;
exit;

image.png
8、使用dexp将该表数据导出。

./dexp USERID=CHECK_SZZB_V3/密码@127.0.0.1:5238 FILE=BAS_PERSON.dmp LOG=BAS_PERSON.log TABLES=BAS_PERSON DIRECTORY=/data

image.png
9、登录生产实例,先将需要恢复的表改名。

./disql 用户名/密码@127.0.0.1:5236
alter table BAS_PERSON rename to BAS_PERSON_bak;
exit;

10、使用dimp在生产实例进行导入。

./dimp USERID=CHECK_SZZB_V3/密码  FILE=/data/BAS_PERSON.dmp  LOG=BAS_PERSON_IMP.log  TABLES=BAS_PERSON DIRECTORY=/data

11、再次登录生产实例,查询该表数据行数与前面查询的结果是否一致。

./disql 用户名/密码@127.0.0.1:5236
SELECT COUNT(*)FROM BAS_PERSON;
exit;

12、表数据内容验证无误后将新初始化的实例输入exit关闭,然后将新实例目录删除,释放磁盘空间。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服