重做日志包含可能尚未寫(xiě)入數(shù)據(jù)文件的事務(wù)的詳細(xì)信息。 重做日志的主要目的在于系統(tǒng)或數(shù)據(jù)庫(kù)發(fā)生故障時(shí)恢復(fù)數(shù)據(jù)庫(kù)。 重做日志配置 提交事務(wù)時(shí),必須出現(xiàn)重做日志文件的物理寫(xiě)入。 必須完成寫(xiě)入,提交調(diào)用才能將控制返回給用戶。 因此,重做日志寫(xiě)入可以提供更新密集型應(yīng)用程序吞吐量的限制。 如果日志位于專用設(shè)備上且設(shè)備不存在爭(zhēng)用,則優(yōu)化重做日志 I/O。 如果達(dá)到上述目標(biāo),則發(fā)布提交時(shí)磁頭已處于正確的位置,并且等待時(shí)間減少到最低(磁盤無(wú)需查找)。 由于日志寫(xiě)入是按順序進(jìn)行的并且僅由歸檔進(jìn)程執(zhí)行,分段優(yōu)勢(shì)就不明顯了。 由于 LGWR 只寫(xiě)入這些設(shè)備,RAID 5 導(dǎo)致的性能降級(jí)很可能是非常明顯的,即使該卷專用于重做日志(由于歸檔進(jìn)程進(jìn)程存在爭(zhēng)用)。 為了預(yù)防在介質(zhì)故障時(shí)發(fā)生數(shù)據(jù)丟失,必須鏡像重做日志。 Oracle 提供軟件鏡像功能(重做日志多路復(fù)用),盡管硬件鏡像 (RAID 1) 很可能更有效。 由于重做日志的切換生成數(shù)據(jù)庫(kù)檢查點(diǎn),并且由于未完成檢查點(diǎn)前無(wú)法重用日志,因此大量的大日志可產(chǎn)生更好的吞吐量。 通過(guò)增加日志的數(shù)量,可以降低完成檢查點(diǎn)前需要重用日志的概率。 通過(guò)增加日志的大小,可以減少必須出現(xiàn)的檢查點(diǎn)數(shù)量。 重做日志的優(yōu)化尺寸取決于您的事務(wù)比率。 您應(yīng)設(shè)置日志大小,以免切換發(fā)生速度過(guò)快。 由于通常情況下您會(huì)分配重做日志的專用設(shè)備,因此有較大的磁盤容量可供日志使用。 通常最簡(jiǎn)單的辦法是,剛開(kāi)始就過(guò)度配置日志的大小和數(shù)量。 常見(jiàn)的日志大小為 64 至 256 MB。 配置 10 到 20 個(gè)重做日志也是比較常見(jiàn)的情況。 優(yōu)化存檔 存檔日志是在線重做日志的副本。 它們可用于將數(shù)據(jù)庫(kù)恢復(fù)到故障點(diǎn),或還原備份后的另一個(gè)時(shí)間點(diǎn)。 如果需要進(jìn)行在線備份,還需要記錄存檔。 填寫(xiě)重做日志文件后,Oracle 移動(dòng)到下一個(gè)日志文件。 歸檔進(jìn)程 (ARCH) 將最近填寫(xiě)的日志復(fù)制到備用位置。 如果歸檔進(jìn)程從和當(dāng)前寫(xiě)入日志相同的物理設(shè)備上讀取日志,則日志編寫(xiě)器的隨后寫(xiě)入都會(huì)中斷。 如果日志編寫(xiě)器落后太多,數(shù)據(jù)庫(kù)可能停止運(yùn)行(因?yàn)榇鏅n前無(wú)法重用日志文件)。 因此,需要優(yōu)化歸檔進(jìn)程的性能。 可以通過(guò)在超過(guò)兩臺(tái)設(shè)備上交替使用重做日志,最大程度減少歸檔進(jìn)程和日志編寫(xiě)器之間的爭(zhēng)用。 然后,重做日志寫(xiě)進(jìn)程可以寫(xiě)入一臺(tái)設(shè)備,而歸檔進(jìn)程從另一臺(tái)設(shè)備讀取。 由于歸檔進(jìn)程寫(xiě)入的速度必須至少和日志編寫(xiě)器一樣快,因此存檔目標(biāo)應(yīng)為一臺(tái)專用設(shè)備,或 RAID 0+1(鏡像和條帶化)配置中的一組專用磁盤。 日志文件等待事件 正如 Oracle 會(huì)話必須等待數(shù)據(jù)庫(kù)文件 I/O 一樣,它們還必須等待日志文件 I/O。 COMMIT 語(yǔ)句導(dǎo)致寫(xiě)入重做日志時(shí),出現(xiàn)上述等待。 發(fā)布 COMMIT 的會(huì)話等待日志文件同步事件。 日志編寫(xiě)器發(fā)布 I/O 請(qǐng)求時(shí),等待日志文件并行寫(xiě)入事件。 在狀況良好的數(shù)據(jù)庫(kù)中,等待事件是不可避免的,通常占非空閑等待總時(shí)間的 10-20%。 日志文件并行寫(xiě)入的平均等待時(shí)間是重要的衡量指標(biāo), 它指明了歸檔進(jìn)程刷新恢復(fù)緩沖區(qū)的速度。 它是衡量重做日志設(shè)備效率的有效指標(biāo)。 如果數(shù)值低于百分之一秒,則表示良好;如果數(shù)值高達(dá)百分之五秒,則不正常。 如果數(shù)值超過(guò)此范圍,則表示重做日志設(shè)備存在爭(zhēng)用。 |
|
來(lái)自: 浸心閣 > 《redo online log》