聯機日誌檔案又叫重做日誌檔案,記錄了對資料庫修改的資訊,包括使用者對資料修改和資料庫管理員對資料庫結構的修改。它主要用於在發生故障的時候和資料庫備份檔案配合恢復資料庫,一般發生故障有
2個情況:乙個是介質損壞另外乙個是使用者誤操作。每個資料庫至少有兩個日誌檔案組,每組至少包含
1個或者多個日誌成員,這裡要多個日誌成員的原因是防止日誌檔案組內某個日誌檔案損壞後及時提供備份,所以同一組的日誌成員一般內容資訊相同,但是存放位置不同。
如果資料庫處於非歸檔模式,聯機日誌在切換時就會丟棄
. 而在歸檔模式下,當發生日誌切換的時候,被切換的日誌會進行歸檔。
selecta.value/((sysdate-b.startup_time)*48)/1024/1024 "mb" from v$sysstata,v$instance b where a.name='redo size';
計算每半小時的
redo
量——如果希望半小時切換一次
redo
的話。只是上次例項起來後有過非正常業務的大批量資料的匯入,這個量就不太合適了。
select
n.recid
asrecid,
n.first_time
asfirst_time,
m.first_time
asend_time,
round
((m.first_time
-n.first_time)
*24
*60,2)
asminutes
from
v$log_history m, v$log_history n
where
m.recid
=n.recid
+1
order
bym.recid;
select group#,sequence#,bytes/1024/1024,members,archived,statusfrom v$log;
下面是重做日誌相關的資料字典
select
*from
v$log
;select
*from
v$logfile;
select
*from
v$archived_log;
select
*from
v$recover_file;
select
*from
v$log_history;
select
*from
v$loghist;
如果歸檔過程會消耗大量的時間,那麼可以啟動多個歸檔程序,這是個動態引數,可以用alter system動態修改.
sql>
alter system set log_archive_max_processes=10;
oracle9i
中最多可以指定10個歸檔程序
與歸檔程序有關的動態效能檢視
v$bgprocess,v$archive_processes
select * fromv$logfile;
檢視重做日誌大小:
selectgroup#,sequence#,bytes/1024/1024,members,archived,status from v$log;
archive loglist;
檢視歸檔狀態
聯機重做日誌
兩點 1.利用重做日誌檔案,在資料庫發生故障時,可以重新處理事務。維護一致性 2.記錄資料所做的所有更改,提供恢復機制,可以劃分成組,至少需要兩個組,每個組至少乙個成員。規劃原則 分散放開到不同的磁碟,日誌所在盤io要足夠,io讀寫要快。分散到不同的磁碟的好處,解決io的衝突,解決因故障,日誌不可用...
MySQL重做日誌
用來實現事物的永續性,即事務acid中的d。重做日誌有兩部分組成 當事務commit時,必須將事務的全部日誌寫入重做日誌檔案進行持久化,待完成後事務commit的操作才算完成,即日誌前寫規則。為確保每次日誌都寫入到重做日誌檔案,在每次寫入後都進行一次fsync操作。因為重做日誌檔案沒有使用o dir...
mysql重做日誌
mysql預設情況下會有兩個檔案 ib logfile0和ib logfile1,這兩個檔案就是重做日誌檔案,或者事務日誌。重做日誌的目的 萬一例項或者介質失敗,重做日誌檔案就能派上用場。每個innodb儲存引擎至少有乙個重做日誌檔案組,每個檔案組下至少有2個重做日誌檔案,如預設的ib logfil...