CREATE TABLE TAB_01(C1 INT);
INSERT INTO TAB_01 VALUES(1);
COMMIT;
CREATE TABLE TAB_02(C1 INT);
INSERT INTO TAB_02 VALUES(1);
COMMIT;
CREATE TABLE TAB_03(C1 INT);
INSERT INTO TAB_03 VALUES(1);
COMMIT;
备份数据库,执行以下命令
SQL> BACKUP DATABASE BACKUPSET ‘/opt/data/db_5237/bak/db_full_time_lsn’;
操作已执行
已用时间: 00:00:02.883. 执行号:707.
SQL>
操作数据库,产生一些归档,执行以下命令:
CREATE TABLE TAB_04(C1 INT);
INSERT INTO TAB_04 VALUES(1);
COMMIT;
CREATE TABLE TAB_05(C1 INT);
INSERT INTO TAB_05 VALUES(1);
COMMIT;
使用 SELECT SYSDATE 命令查询此时的时间2024-04-03 14:19:31
使用 SELECT FILE_LSN FROM V$RLOG 命令查询此时的 LSN:45578
误操作数据库。此步骤误删除了表 TAB_01 中数据。
DELETE FROM TAB_01;
COMMIT;
drop table TAB_01;
此时的时间和 LSN 分别为:2024-04-03 14:21:26、45582。
关闭数据库,打开 RMAN 还原数据库,执行以下语句
RESTORE DATABASE ‘/opt/data/db_5237/dm.ini’ FROM BACKUPSET ‘/opt/data/db_5237/bak/db_full_time_lsn’;
恢复数据库到指定时间点。
RECOVER DATABASE ‘/opt/data/db_5237/dm.ini’ WITH ARCHIVEDIR ‘/opt/data/db_5237/arch’ UNTIL TIME ‘2024-04-02 23:00:00.45578’;
恢复 db_magic
RECOVER DATABASE ‘/opt/data/db_5237/dm.ini’ UPDATE DB_MAGIC;
启动数据库登录查询验证
也可以使用 RECOVER DATABASE…UNTIL LSN 命令恢复到指定的时间
RESTORE DATABASE ‘/opt/data/db_5237/dm.ini’ FROM BACKUPSET ‘/opt/data/db_5237/bak/db_full_time_lsn’;
RECOVER DATABASE ‘/opt/data/db_5237/dm.ini’ WITH ARCHIVEDIR’/opt/data/db_5237/arch’ UNTIL LSN 45578;
恢复 db_magic
RECOVER DATABASE ‘/opt/data/db_5237/dm.ini’ UPDATE DB_MAGIC;
文章
阅读量
获赞