DB2面向OLTP環(huán)境的物理數(shù)據(jù)庫設(shè)計:數(shù)據(jù)庫事務(wù)日志

數(shù)據(jù)庫事務(wù)日志對于數(shù)據(jù)庫恢復至關(guān)重要,也是設(shè)計高度可用的數(shù)據(jù)庫解決方案的一個重要組成部分。 數(shù)據(jù)庫日志使得從故障中恢復成為可能。它們還可以在 HADR 環(huán)境中同步主數(shù)據(jù)庫和備用數(shù)據(jù)庫。 DB2 對每個數(shù)據(jù)庫使用一組獨立的日志文件。 所有數(shù)據(jù)庫都有與自己

事務(wù)日志對于恢復至關(guān)重要,也是設(shè)計高度可用的數(shù)據(jù)庫解決方案的一個重要組成部分。 數(shù)據(jù)庫日志使得從故障中恢復成為可能。它們還可以在 hadr 環(huán)境中同步主數(shù)據(jù)庫和備用數(shù)據(jù)庫。 db2 對每個數(shù)據(jù)庫使用一組獨立的日志文件。 所有數(shù)據(jù)庫都有與自己有關(guān)聯(lián)的日志。這些日志保留數(shù)據(jù)庫變更的記錄。如果數(shù)據(jù)庫需要還原到最后一次完整離線備份之前的某個點,日志需要將數(shù)據(jù)前滾到故障點。db2 數(shù)據(jù)庫支持兩種類型的數(shù)據(jù)庫的日志:循環(huán)日志和歸檔日志。

循環(huán)日志

循環(huán)日志僅支持崩潰恢復,也就是說,如果 DB2 實例因某種原因(比如,電源故障或用戶操作錯誤)而發(fā)生崩潰,那么下一次數(shù)據(jù)庫重新啟動就會使用日志文件的信息,將數(shù)據(jù)庫帶回一致的狀態(tài)。 在崩潰恢復期間,尚未寫入磁盤的所有已結(jié)束的、已提交的或中止的事務(wù)都會寫入到磁盤中。所有打開的、尚未提交的事務(wù)都被回滾,以刪除部分的變更。 在開發(fā)和測試環(huán)境中,您可以使用循環(huán)日志。在這些環(huán)境中,為了簡化數(shù)據(jù)庫管理,事務(wù)日志不是必需的,可以使用循環(huán)日志。

歸檔日志

選擇歸檔日志的好處是,前滾恢復可以使用歸檔日志和活動日志,將數(shù)據(jù)庫還原到日志末尾或某個特定的時間點。 可以使用歸檔日志文件在數(shù)據(jù)庫備份后恢復變更。這種類型的日志與循環(huán)日志不同,使用循環(huán)日志,只能恢復到備份的時刻,之后所做的所有變更都將丟失。

在數(shù)據(jù)庫創(chuàng)建時,默認的日志類型是循環(huán)日志。可以通過更新 logarchmeth1 或 logarchmeth2 數(shù)據(jù)庫配置參數(shù)來啟用歸檔日志。在修改參數(shù)設(shè)置后,需要執(zhí)行一次離線數(shù)據(jù)庫備份,以便能夠訪問數(shù)據(jù)庫。

配置事務(wù)日志

DB2 支持若干種媒體類型,以便實現(xiàn)日志歸檔,如 DISK、TSM (即 Tivoli? Storage Manager 支持)、VENDOR (即第三方庫支持),或使用 USEREXIT 設(shè)置的客戶程序。您可以將 logarchmeth1 數(shù)據(jù)庫配置參數(shù)設(shè)置為任意可能的有效值。不過,logarchmeth2 數(shù)據(jù)庫配置參數(shù)只支持 OFF、DISK、TSM 和 VENDOR 值。 OLTP 工作負載的性質(zhì)對事務(wù)日志設(shè)備的響應(yīng)時間和吞吐量提出了很高的要求。為了獲得最佳性能和可用性,應(yīng)將事務(wù)日志放在專用的、更快的設(shè)備上,并且使用單獨的文件系統(tǒng)。為了提高性能,不要與任何其他數(shù)據(jù)庫存儲對象(如,表空間)共享事務(wù)日志文件系統(tǒng)或 I/O 帶寬。 默認情況下,事務(wù)日志的目錄被設(shè)置為數(shù)據(jù)庫目錄。通過設(shè)置 newlogpath 數(shù)據(jù)庫配置參數(shù),可以修改該目錄。 為了防止流氓應(yīng)用程序占用所有事務(wù)日志空間并影響數(shù)據(jù)庫,可以考慮對事務(wù)日志使用以下數(shù)據(jù)庫配置參數(shù):

? num_log_span 參數(shù)指定了是否限制一個事務(wù)可以跨越多少個日志文件,該限制是多少。
? max_log 參數(shù)指定是否有限制一個事務(wù)可以消耗的日志空間的百分比,該限制是多少。
? blk_log_dsk_ful 參數(shù)防止當 DB2 數(shù)據(jù)庫管理器在活動日志路徑不能創(chuàng)建新的日志文件時,生成日志空間已滿的錯誤。DB2 數(shù)據(jù)庫管理器不會生成磁盤已滿的錯誤,而是每 5 分鐘試圖創(chuàng)建一次日志文件,直到成功為止。

您可以使用 IBM InfoSphere Optim? Performance Manager 中的記錄儀表板和警報閾值來監(jiān)視日志空間利用率,并確定是否需要修改日志空間配置。

鏡像日志路徑

您可以使用 mirrorlogpath 數(shù)據(jù)庫配置參數(shù)為事務(wù)日志設(shè)置備用路徑。如果設(shè)置了此參數(shù),數(shù)據(jù)庫管理器將在日志路徑和鏡像日志路徑中都創(chuàng)建活動的日志文件。所有日志數(shù)據(jù)都被寫入這兩個路徑中,這增加對日志文件的意外丟失的保護。

為了從鏡像日志路徑獲得最大利益,并且不會降低性能,我們建議鏡像日志路徑使用快速專用設(shè)備。如果將鏡像日志路徑放在與日志路徑相同的設(shè)備或文件系統(tǒng)上,則有可能導致 I/O 帶寬成為瓶頸。此外,它只能在幾個場景中保護您,無法保護設(shè)備或文件系統(tǒng)全部損失的情況。

為了從鏡像日志路徑獲得最大利益,并且不會降低性能,我們建議鏡像日志路徑使用快速專用設(shè)備。如果將鏡像日志路徑放在與日志路徑相同的設(shè)備或文件系統(tǒng)上,則有可能導致 I/O帶寬成為瓶頸。此外,它只能在幾個場景中保護您,無法保護設(shè)備或文件系統(tǒng)全部損失的情況。 如果您想使用鏡像日志路徑,那么您的需求評估中的某些因素會受到影響。您需要雙倍的事務(wù)日志存儲空間,并增加 I/O 帶寬。

數(shù)據(jù)和索引壓縮

數(shù)據(jù)和索引壓縮可能有助于減少事務(wù)日志的大小。如果您使用 DB2 壓縮功能,作為 INSERT、UPDATE 和 DELETE 活動的結(jié)果被寫入日志記錄中的用戶數(shù)據(jù)就會較小。然而,某些 UPDATE 日志記錄在壓縮后可能比不使用壓縮時更大。 除了壓縮之外,您還可以通過其他操作盡量減少日志空間的消耗。將更新得較頻繁的列分組在一起,并將它們放在記錄定義的末尾或接近末尾的地方,這樣做可以最大限度地減少日志空間消耗。即使有一個良好的壓縮比,OLTP 工作負載仍無法從更好的事務(wù)響應(yīng)時間或吞吐量中獲益。因為數(shù)據(jù)和索引壓縮可以減少表空間 I/O 和日志 I/O,所以可以在壓縮后的數(shù)據(jù)上以相當短的時間完成數(shù)據(jù)庫備份和歸檔日志等管理任務(wù)。

最佳實踐

將以下設(shè)計最佳實踐用于數(shù)據(jù)庫日志:
? 在生產(chǎn)環(huán)境中使用歸檔日志,以便能夠執(zhí)行許多恢復操作,這些操作包括在線備份、增量備份、在線還原、時間點前滾,以及發(fā)出 RECOVER DATABASE 命令。
? 考慮對增量備份啟用 trackmod 數(shù)據(jù)庫配置參數(shù),以便跟蹤數(shù)據(jù)庫的修改,這樣 BACKUP DATABASE 命令就可以確定哪些數(shù)據(jù)庫頁面的子集應(yīng)包含在數(shù)據(jù)庫備份或表空間備份的備份映像中。
? 使用鏡像日志路徑增加高可用性。
? 配置輔助日志文件,臨時提供額外的日志空間。
? 使用數(shù)據(jù)和索引壓縮來提高數(shù)據(jù)庫和表空間備份等管理任務(wù)的性能,因為在壓縮數(shù)據(jù)上執(zhí)行備份所需的時間較短。
? 考慮事務(wù)日志的 I/O 適配器或總線帶寬要求。如果要求不夠充分,則可能導致 I/O 使用中出現(xiàn)瓶頸。如果擔心高可用性,請查看 I/O 多路徑的操作系統(tǒng)級支持。

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點贊9 分享