歸檔原理和作用
歸檔就是對redo日志的歸檔,數據庫開啟歸檔后,redo日志會保存到指定的日志文件中。作用是恢復數據,因為數據庫備份是定時的,如果中間間隔期間數據庫掛了或者某段時間做了誤操作,可用歸檔日志結合備份文件進行數據還原,保障數據安全。
打開數據庫歸檔
查看歸檔狀態
select arch_mode from v$database;
切換配置模式
alter database mount;
打開歸檔
alter database archivelog;
增加本地歸檔
alter database add archivelog 'DEST =/dmdata/arch,TYPE=local,FILE_SIZE=1024,SPACE_LIMIT=10240';
打開數據庫
alter database open;
查看歸檔
select arch_type, arch_dest,arch_file_size,arch_space_limit,arch_is_valid from V$DM_ARCH_INI;
創建測試數據
聯機備份數據庫
BACKUP DATABASE BACKUPSET '/dmdata/dmbak';
正確操作數據庫,產生一些歸檔
、
使用 SELECT SYSDATE 命令查詢當前時間:2021-07-21 14:21:22
使用 SELECT FILE_LSN FROM V$RLOG 查看lsn:46718
本次測試誤刪除了表t,使用歸檔日志基於時間和lsn進行還原
delete from t;
commit;
如下所示:數據已刪除,查看時間和lsn
關閉數據庫,打開 RMAN 還原數據庫
RESTORE DATABASE '/dmdata/DAMENG/dm.ini' FROM BACKUPSET '/dmdata/dmbak';
基於時間點的不完全恢復: RECOVER DATABASE...UNTIL TIME
RECOVER DATABASE '/dmdata/DAMENG/dm.ini' WITH ARCHIVEDIR'/dmdata/arch' UNTIL TIME'2021-07-21 14:21:22';
或者使用基於 LSN 的不完全恢復 :RECOVER DATABASE...UNTIL LSN
RECOVER DATABASE '/dmdata/DAMENG/dm.ini' WITH ARCHIVEDIR'/dmdata/arch' UNTIL LSN 46718;
更新db_magic
RECOVER DATABASE '/dmdata/DAMENG/dm.ini' UPDATE DB_MAGIC;
啟動數據庫檢查,可以看到數據已恢復
