DM8恢复数据库到指定的时间点/LSN

利用备份加归档将数据库还原到指定节点

数据库至少有一份全库备份,并且拥有连续的归档日志,那么就可以将数据库还原恢复到之前的任意节点。以下是我个人的操作步骤,仅供参考。

环境说明

系统:centos7
数据库版本:DM8
准备要求:数据库安装完成,开启归档。

场景准备

(库:DAMENG)登录disql,执行以下命令。

./disql SYSDBA/SYSDBA

创建一张测试表table01,并插入数据

SQL> create table table01(t1 int,t2 VARCHAR(100));
SQL> insert into table01 values(1,'第一条数据');
SQL> insert into table01 values(2,'第二条数据');
SQL> insert into table01 values(3,'第三条数据');
SQL> commit;

查询表数据

SQL> select * from table01;

行号     T1          T2             
---------- ----------- ---------------
1          1           第一条数据
2          2           第二条数据
3          3           第三条数据

已用时间: 75.133(毫秒). 执行号:8.

对数据库进行全库备份

SQL> backup database full to BACKUP_FILE1 backupset '/home/dmdba/dmbak/DAMENG_bak/backupfull_20210817';    
操作已执行
已用时间: 00:00:09.566. 执行号:9.

获取当前时间/LSN

执行select sysdate;命令查询时间

SQL> select sysdate;

行号     SYSDATE                    
---------- ---------------------------
1          2021-08-17 01:22:50

已用时间: 69.413(毫秒). 执行号:10.

执行select file_lsn from v$rlog命令查询LSN

SQL> select file_lsn from v$rlog;

行号     FILE_LSN            
---------- --------------------
1          897234

已用时间: 103.186(毫秒). 执行号:11.

模拟误操作删除测试表第三条数据

执行以下命令

SQL> delete from table01 where t1=3;
SQL> commit;
#查询删除后表数据
SQL> select * from table01;

行号     T1          T2             
---------- ----------- ---------------
1          1           第一条数据
2          2           第二条数据

已用时间: 0.529(毫秒). 执行号:14.

获取删除后时间/LSN

执行select sysdate;命令查询时间

SQL> select sysdate;

行号     SYSDATE                    
---------- ---------------------------
1          2021-08-17 01:30:59

已用时间: 1.165(毫秒). 执行号:15.

执行select file_lsn from v$rlog命令查询LSN

SQL> select file_lsn from v$rlog;

行号     FILE_LSN            
---------- --------------------
1          897240

已用时间: 1.515(毫秒). 执行号:16.

对数据库进行还原恢复

以下演示在测试库TEST进行还原恢复操作,需要将备份归档文件传输到目标库
执行scp命令将备份和归档文件拷贝到指定路径下,(注意给dmdba权限)

scp -r /home/dmdba/dmbak/DAMENG_bak/backupfull_20210817 192.168.25.139:/home/dmdba/dmbak/DAMENG_bak
scp -r /home/dmdba/dmarch/DAMENG_arch 192.168.25.139:/home/dmdba/dmarch/

先登录TEST

[dmdba@localhost ~]$ cd /home/dmdba/dmdbms/bin
[dmdba@localhost bin]$ ./disql SYSDBA/SYSDBA@192.168.25.139:5239

服务器[192.168.25.139:5239]:处于普通打开状态
登录使用时间: 80.318(毫秒)
disql V7.6.1.74-Build(2020.10.22-128627)ENT 
SQL> select * from table01;
select * from table01;
第1 行附近出现错误[-2106]:无效的表或视图名[TABLE01].
已用时间: 10.923(毫秒). 执行号:0.

停止数据库服务,使用dmrman工具进行还原恢复。

还原到删除数据之前的时间节点

[dmdba@localhost bin]$ ./DmServiceTEST stop
Stopping DmServiceTEST:                                    [ OK ]
[dmdba@localhost ~]$ cd /home/dmdba/dmdbms/bin
[dmdba@localhost bin]$ ./dmrman
dmrman V7.6.1.74-Build(2020.10.22-128627)ENT 
RMAN> 
RMAN> RESTORE DATABASE '/home/dmdba/dmdata/TEST/dm.ini' FROM BACKUPSET '/home/dmdba/dmbak/DAMENG_bak/backupfull_20210817';
RMAN> RECOVER DATABASE '/home/dmdba/dmdata/TEST/dm.ini' WITH ARCHIVEDIR'/home/dmdba/dmarch/DAMENG_arch' UNTIL TIME'2021-08-17 01:22:50.624931';
RMAN> RECOVER DATABASE '/home/dmdba/dmdata/TEST/dm.ini' UPDATE DB_MAGIC;

还原后启动数据库,重新查询table01;

[dmdba@localhost bin]$ ./DmServiceTEST start
Starting DmServiceTEST:                                    [ OK ]

[dmdba@localhost bin]$ ./disql SYSDBA/SYSDBA@192.168.25.139:5239

服务器[192.168.25.139:5239]:处于普通打开状态
登录使用时间: 11.522(毫秒)
disql V7.6.1.74-Build(2020.10.22-128627)ENT
SQL> select * from table01;

行号     T1          T2             
---------- ----------- ---------------
1          1           第一条数据
2          2           第二条数据
3          3           第三条数据

已用时间: 69.975(毫秒). 执行号:3.

还原到删除数据之后的LSN

[dmdba@localhost bin]$ ./DmServiceTEST stop
Stopping DmServiceTEST:                                    [ OK ]
[dmdba@localhost bin]$ ./dmrman
dmrman V7.6.1.74-Build(2020.10.22-128627)ENT 
RMAN> RESTORE DATABASE '/home/dmdba/dmdata/TEST/dm.ini' FROM BACKUPSET '/home/dmdba/dmbak/DAMENG_bak/backupfull_20210817';
RMAN> RECOVER DATABASE '/home/dmdba/dmdata/TEST/dm.ini' WITH ARCHIVEDIR'/home/dmdba/dmarch/DAMENG_arch' UNTIL  LSN 897240;
RMAN> RECOVER DATABASE '/home/dmdba/dmdata/TEST/dm.ini' UPDATE DB_MAGIC;

还原后启动数据库,重新查询table01;

[dmdba@localhost bin]$ ./DmServiceTEST start
Starting DmServiceTEST:                                    [ OK ]

[dmdba@localhost bin]$ ./disql SYSDBA/SYSDBA@192.168.25.139:5239

服务器[192.168.25.139:5239]:处于普通打开状态
登录使用时间: 27.927(毫秒)
disql V7.6.1.74-Build(2020.10.22-128627)ENT 
SQL> select * from table01;

行号     T1          T2             
---------- ----------- ---------------
1          1           第一条数据
2          2           第二条数据

已用时间: 96.587(毫秒). 执行号:3.

总结

备份集生成的时间到还原的节点间,归档日志需连续。否则恢复时会提示报错归档日志不连续。
达梦技术社区:https://eco.dameng.com

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值