环境:
OS:Centos 7
DB:DM8
1.模拟数据写入
[dmdba@host01 ~]$ disql hxl/dameng123 Server[LOCALHOST:5236]:mode is normal, state is open login used time : 3.718(ms) disql V8 insert into tb_test values(3,'name3'); insert into tb_test values(4,'name4'); insert into tb_test values(5,'name5'); insert into tb_test values(6,'name6'); insert into tb_test values(7,'name7'); insert into tb_test values(8,'name8'); insert into tb_test values(9,'name9'); insert into tb_test values(10,'name10'); SQL> select * from tb_test; LINEID id name ---------- -- ------ 1 1 name1 2 2 name2 3 3 name3 4 4 name4 5 5 name5 6 6 name6 7 7 name7 8 8 name8 9 9 name9 10 10 name10 10 rows got used time: 0.474(ms). Execute id is 610. 记录下当前的时间,等会我们就恢复到这个时间点 SQL> select now(); LINEID now() ---------- -------------------------- 1 2024-03-21 09:48:35.553247 used time: 0.491(ms). Execute id is 611. 或是记录当前的LSN,还可以通过LSN进行不完全恢复 SELECT FILE_LSN FROM V$RLOG
2.备份数据库和归档日志
backup database full backupset '/dmdbms/bak/fullbak_20240321';
backup archivelog all delete input to "archbak_20240321" backupset '/dmdbms/bak/archbak_20240321';
3.删除表
SQL> drop table tb_test; executed successfully used time: 54.792(ms). Execute id is 615. SQL> select now(); LINEID now() ---------- -------------------------- 1 2024-03-21 10:01:29.078014 used time: 0.632(ms). Execute id is 616.
##############################时间点恢复############################
1.停掉当前实例
systemctl stop DmServiceDMSERVER.service
2.删除之前实例的目录
[dmdba@host01 data]$ cd /dmdbms/data
[dmdba@host01 data]$ rm -rf DAMENG/
3.初始化一个实例,实例名与之前一致
/dmdbms/product/bin/dminit path=/dmdbms/data charset=1 case_sensitive=0 length_in_char=0 db_name=DAMENG instance_name=DAMENG SYSDBA_PWD="dameng100" SYSAUDITOR_PWD="dameng100"
4.使用归档日志和全备进行还原
[dmdba@localhost ~]$ dmrman
RMAN>restore archive log from backupset '/dmdbms/bak/archbak_20240321' TO ARCHIVEDIR'/dmdbms/arch' overwrite 2;
RMAN>restore database '/dmdbms/data/DAMENG/dm.ini' from backupset '/dmdbms/bak/fullbak_20240321'; ##还原备份集
RMAN>recover database '/dmdbms/data/DAMENG/dm.ini' with archivedir '/dmdbms/arch' until time '2024-03-21 09:48:35'; ##通过归档日志完全恢复
RMAN>recover database '/dmdbms/data/DAMENG/dm.ini' update db_magic;
说明:
1.若不带until time 就是完全恢复.
2.不完全恢复包括until time和until lsn,使用 SELECT FILE_LSN FROM V$RLOG查LSN
5.启动数据库
systemctl start DmServiceDMSERVER.service
6.验证
[dmdba@host01 ~]$ disql hxl/dameng123 Server[LOCALHOST:5236]:mode is normal, state is open login used time : 4.821(ms) disql V8 SQL> select * from tb_test; LINEID id name ---------- -- ------ 1 1 name1 2 2 name2 3 3 name3 4 4 name4 5 5 name5 6 6 name6 7 7 name7 8 8 name8 9 9 name9 10 10 name10 10 rows got used time: 1.175(ms). Execute id is 501.
可以看到数据已经恢复了.
标签:insert,into,dmdbms,时间,time,test,完全恢复,tb,达梦 From: https://www.cnblogs.com/hxlasky/p/18086836