簡述REDO操作

Diy_os發表於2015-04-07
檢視重做日誌:
select  *from v$log;
select  *from v$logfile;
判斷是否歸檔:
SQL>sqlplus sys as  sysdba
SQL>archive log list;
在10g,11g中設定成歸檔模式:
把資料庫重啟到mount狀態,
alter  database archivelog;(同理設定成非歸檔模式就是alter database noarchivelog)
但是在9i中上一樣,但任然要設定一個引數:
show  parameter db_recovery_dest;
把其中的引數設定成:log_archive_start=true;
重做日誌的管理:
新增重做日誌組的語法:alter database [database_name] ADD LOGFILE [GROP number] filename size n [ADD LOGFILE [GROP number]filename size n ]
alter database add logfile grop 4 
('\etc\temp\redo4a.log',
 'etc\temp\redo4b.log',
'etc\temp\redo4c.log',)
size 10m;
但是:
alter database add logfile 
('etc\temp\redoa.log',
 'etc\temp\redob.log',
'etc\temp\redoc.log',)
size 10m;
此時預設為重做日誌組5

刪除聯機重做日誌組:
alter database [database_name] 
drop logfile {group n|('filename'[,'filename']...)}
{group n|('filename'[,'filename']...)}....
|表示或,[]表示可選
alter  database  drop logfile group 4,group 5;
注意:若聯機日誌組處於active,則不可以刪除。
要切換重做日誌組:alter system switch logfile;
強制啟動檢查點:
alter database checkpoint;
此時會觸發日誌切換,oracle會尋找下一個可用的重做日誌組,如果資料庫處於歸檔模式,則在將當前寫滿的日誌組歸檔完成前,不會使用新的重做日誌組。檢查點事件是oracle為了減少資料庫例項恢復時間而設定的一個事件,該事件發生時,LGWR將重做日誌緩衝區中的資料寫入重做日誌檔案,而同時通知DBWR將資料庫高速緩衝區中的已經提交的資料寫入資料檔案,所以檢查點事件越頻繁,則資料庫恢復的重做資料就越少。此時,檢查點事件也會修改資料檔案頭資訊和控制檔案資訊,以記錄檢查點的SCN。
雖然刪除了重做日誌組的成員,但是殘留了作業系統的垃圾檔案,要徹底刪除還要手動刪除。
刪除聯機重做日誌組的一個日誌成員:
alter  database drop logfile member 'etc\temp\redob.log';
新增重做日誌成員:
alter  database add logfile member
'etc\temp\redoa.log' to group 1,
'etc\temp\redob.log' to group 2,
'etc\temp\redoc.log' to group 3;
清除聯機重做日誌:
資料庫伺服器處於歸檔模式時,正在使用的重做日誌組中的檔案損壞,則該重做日誌不能完成歸檔,使得資料庫無法完成歸檔而掛起,要透過清除聯機重做日誌來重新初始化聯機重做日誌:
alter  database  clear  logfile  group  n;
這個一定要注意:
ORACLE只把重做日誌中的資料遷移到磁碟上,而不能移動到磁帶等儲存介質上。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29876893/viewspace-1536382/,如需轉載,請註明出處,否則將追究法律責任。