ORACLE數據庫ARCHIVELOG,NOARCHIVELOG模式轉換簡單總結,Redo Log(重做日誌)Archive Log(歸檔日誌)

Oracle9i中有2種日誌,一種稱爲 Redo Log(重做日誌),另一種叫做Archive Log(歸檔日誌)

重做日誌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

日誌文件分爲重做日誌文件(redo log file)和歸檔日誌文件(archive log file)。

SQL> select group#, status, member from v$logfile;

GROUP# STATUS MEMBER
---------- ------- --------------------------------------------------------------------------------
3 C:\ORACLE\ORADATA\ORCL\REDO03.LOG
2 C:\ORACLE\ORADATA\ORCL\REDO02.LOG
1 C:\ORACLE\ORADATA\ORCL\REDO01.LOG

redo log fiel有多個組group構成。一個group中能包括不止一個log file,日誌信息是寫到group的每個logfile中,所以一個group中的log file存儲着一樣的信息。當一個group寫滿之後就轉到下一個group中,稱之爲日誌切換。

當所有group都寫滿了後,就重頭開始從第一個group開始,原來的內容將被覆蓋丟失。如果不想被丟失,可以採用歸檔模式,即將數據保存到archive log file中。歸檔模式會給系統帶來一定的性能問題。

查看database採用哪種模式:
SQL> select dbid,name,log_mode from v$database;

DBID NAME LOG_MODE
---------- --------- ------------
1232416663 ORCL NOARCHIVELOG

歸檔日誌路徑由SPFILE的log_archive_dest參數確定。

SQL> show parameter log_archive_dest;

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest string 
log_archive_dest_1 string 
log_archive_dest_10 string 
log_archive_dest_2 string 
log_archive_dest_3 string 
log_archive_dest_4 string 
log_archive_dest_5 string 
log_archive_dest_6 string 
log_archive_dest_7 string 
log_archive_dest_8 string 
log_archive_dest_9 string 
log_archive_dest_state_1 string enable
log_archive_dest_state_10 string enable
log_archive_dest_state_2 string enable
log_archive_dest_state_3 string enable
log_archive_dest_state_4 string enable
log_archive_dest_state_5 string enable
log_archive_dest_state_6 string enable
log_archive_dest_state_7 string enable
log_archive_dest_state_8 string enable
log_archive_dest_state_9 string enable

警告日誌文件alert_sid.log保存着例行的信息和錯誤信息,它的路經是:

SQL> select value from v$parameter where name='background_dump_dest';

VALUE
--------------------------------------------------------------------------------
c:\oracle\diag\rdbms\orcl\orcl\trace

SQL> show parameter background_dump_dest;

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
background_dump_dest string c:\oracle\diag\rdbms\orcl\orcl\trace


用戶跟蹤文件是oracle出現異常時自動創建的文本文件,它與警告文件一起構成了完整的故障信息描述體系。

SQL> select value from v$parameter where name='user_dump_dest';

VALUE
--------------------------------------------------------------------------------
c:\oracle\diag\rdbms\orcl\orcl\trace

SQL> show parameter user_dump_dest;

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
user_dump_dest string c:\oracle\diag\rdbms\orcl\orcl\trace

出處:http://zhidao.baidu.com/question/359244586.html

==============================================================================================

ORACLE數據庫ARCHIVELOG,NOARCHIVELOG模式轉換簡單總結

首先,什麼是archivelog,noarchivelog模式。簡單點說就是redolog是否歸檔。noarchivelog是指的不歸 
檔redolog並不是沒有redolog。 
archivelog,noarchivelog模式之間切換有幾點要注意的地方。 
1:是不是歸檔redolog有一個重要的開關 
alter database archivelog; 
alter database noarchivelog; 
這個打開archivelog狀態的語句必須在mount狀態運行。 
shutdown immediate 
startup mount 
alter database archivelog 
alter database open 
2:打開開關之後並不是就可以讓系統自動歸檔,還有一個控制點,自動還是手動歸檔。 
archive log start  自動 
archive log stop   手動 
這個操作會改變 
log_archive_start = true 
這個參數控制數據庫實例啓動時是否啓動歸檔過程通常爲ora_arc0_sid,這個參數可以通過archive log  
start,或archive log stop 打開或關閉。 
3:如果手動歸檔那麼 
alter system switch logfile後系統並不自動把switch之前的log歸檔而是要手工歸檔。 
alter system archive log all 
  
4:手工歸檔下要注意的問題 
如果系統在幾次日誌組切換後,日誌還沒有歸檔,所有的online redo log group都在未歸檔狀態,那麼 
切換日誌組的過程會掛住。這時要打開一個另一個窗口手工歸檔。看系統的log的常用語句 
select * from v$log 
select * from v$logfile
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章