Oracle中REDO日誌
Oracle的資料庫日誌稱為redo log,所有資料改變都記錄redo log,可以用於修複受損的資料庫。Redo日誌是分組的,,預設是三組。Redo日誌是輪流使用的,一個redo log滿了,LGWR會切換到下一組redo log,這種操作稱為log switch,做log switch的同時也會做checkpoint,相應的資訊還會寫入控制檔案。
Oracle中有2種日誌,一種稱為 Redo Log(重做日誌),另一種叫做Archive Log(歸檔日誌),但是這兩種日誌在Oracle9i資料庫中所起到的作用相信很難有人說清楚,下面我就結合自己對Oracle9i的認識來進行一下說 明重做日誌redo log file是LGWR進程從Oracle執行個體中的redo log buffer寫入的,是迴圈利用的。就是說一個redo log file(group) 寫滿後,才寫下一個。歸檔日誌archive log是當資料庫運行在歸檔模式下時,一個redo log file(group)寫滿後,由ARCn進程將重做日誌的內容備份到歸檔記錄檔下,然後這個redo log file(group)才能被下一次使用。
不管資料庫是否是歸檔模式,重做日誌是肯定要寫的。而只有資料庫在歸檔模式下,重做日誌才會備份,形成歸檔日誌。
歸檔日誌結合全備份,用於資料庫出現問題後的恢複使用。
redolog也稱為聯機日誌
archivelog 為歸檔日誌,是把redolog歸檔而來。先有redolog再有archivelog
oracle恢複時需要redolog和archivelog
1.查看系統的redo log資訊:
SQL> select group#,sequence#,bytes,members,status from v$log;
SQL> select member from v$logfile;
2.添加日誌組
alter database add logfile group 4 ('D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\redo04.log') size 50m;
3.添加日誌組(指定日誌已經存在)
alter database add logfile group 4 ('D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\redo04.log') size 50m reuse;
4.添加日誌成員
alter database add logfile member 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\redo0401.log' to group 4;
5.添加日誌成員(指定日誌已經存在)
alter database add logfile member 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\redo0401.log' reuse to group 4;
6.刪除日誌組
alter database drop logfile group 4;
7.刪除日誌成員
alter database drop logfile member 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\redo0401.log';
8.給日誌組檔案換一個位置
(1)shutdown database
(2) copy the online redo log files to the new location;
(3) start database to mount;
(4)execute the command
alter database rename file 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\redo0401.log' to 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\redo0401.log';
(5)open database
9.歸檔Redo log檔案 啟動 日誌歸檔有兩個好處:
1,帶有歸檔 日誌的Database Backup可以恢複到任意時間點。
2,可以線上備份資料庫。 預設情況下,資料庫是非歸檔 日誌模式。如果你的資料很重要,應該啟用歸檔 日誌模式,否則資料庫損壞時很可能只能恢複到上一次備份時的狀態了。可以用以下兩條命令檢查資料庫的歸檔 日誌模式: SQL> select archiver from v$instance; SQL> archive log list;