詳細(xì)講解IBM DB2數(shù)據(jù)庫(kù)無(wú)限活動(dòng)日志策略
循環(huán)日志要求存儲(chǔ)在日志緩沖區(qū)的記錄以循環(huán)的順序被寫(xiě)入主要日志文件。一旦主要日志文件被寫(xiě)滿,并且仍被標(biāo)記為“不可用”,DB2數(shù)據(jù)庫(kù)管理器就會(huì)分配次要日志文件,并且將記錄寫(xiě)入其中。被允許的次要日志文件的總數(shù)由數(shù)據(jù)庫(kù)配置文件的logsecond參數(shù)控制。
在檔案歸建日志中,與循環(huán)日志類(lèi)似,存放在日志緩沖區(qū)的日志記錄被寫(xiě)入預(yù)先分配的主要日志文件中。然而,與循環(huán)日志不同的是,這些日志文件永遠(yuǎn)不會(huì)被重用。每次當(dāng)主要日志文件被寫(xiě)滿的時(shí)候,另一個(gè)主要日志文件就會(huì)被分配,這樣所要使用的主要日志文件的數(shù)量(由數(shù)據(jù)庫(kù)配置參數(shù)logprimary指定)就總是可得的。只要磁盤(pán)還有空間,這個(gè)過(guò)程就會(huì)持續(xù)下去。
無(wú)限活動(dòng)日志。你也許考慮通過(guò)簡(jiǎn)單地配置數(shù)據(jù)庫(kù),讓其使用大量所需的主要和/或次要日志文件來(lái)避免日志空間被全部用光。然而,被允許的日志文件(主要的和次要的組合在一起)的最大數(shù)量是256個(gè),并且如果你的日志文件的尺寸相對(duì)較小,那么當(dāng)事務(wù)的工作量變大或者是事務(wù)運(yùn)行了過(guò)長(zhǎng)的時(shí)間,你仍然有可能很快地用光全部日志空間。而且,由于每次被迫分配日志文件的時(shí)候都會(huì)影響性能,你就會(huì)想要盡可能地避免分配大量的次要日志文件。理想情況是,你希望分配足夠的主要日志文件來(lái)應(yīng)付大多數(shù)情況,并且使用剛好可以應(yīng)付事務(wù)的工作量最高峰時(shí)的數(shù)量的次要日志文件。如果你非常關(guān)注日志空間的消耗殆盡,并且你想要避免分配大量的次要日志文件,那么你可以配置數(shù)據(jù)庫(kù),使其執(zhí)行一種被稱(chēng)為無(wú)限活動(dòng)日志或者無(wú)限日志的策略。無(wú)限活動(dòng)日志允許一個(gè)跨越所有主要日志和一個(gè)或多個(gè)檔案歸建日志的活動(dòng)事務(wù),并且有效地允許事務(wù)使用無(wú)限數(shù)量的日志文件。為了能夠使用無(wú)限活動(dòng)日志,你只需簡(jiǎn)單地設(shè)置數(shù)據(jù)庫(kù)配置參數(shù)userexit 和logsecond 分別為yes 和 –1。注意到下面這一點(diǎn)是很重要的,即當(dāng)數(shù)據(jù)庫(kù)配置參數(shù)userexit設(shè)置為yes時(shí),每當(dāng)日志文件被關(guān)閉的時(shí)候,一個(gè)用戶提供的userexit 程序就會(huì)被調(diào)用,并且這個(gè)程序會(huì)將不需要的日志文件移動(dòng)至另一個(gè)可以永久存儲(chǔ)的位置(因此,服務(wù)器上日志存儲(chǔ)空間被消耗殆盡的危險(xiǎn)就會(huì)被消除)。
當(dāng)服務(wù)器配置參數(shù)logsecond被設(shè)置為-1時(shí),配置參數(shù)logprimary和logfilsiz仍然用于指定DB2在活動(dòng)日志路徑上保留多少個(gè)主要日志文件,以及每個(gè)文件應(yīng)該有多大。如果DB2需要從一個(gè)日志文件中讀取日志,但是這個(gè)文件不在活動(dòng)日志路徑上,DB2就會(huì)調(diào)用userexit 程序從存檔文件中檢索日志文件,并且將其拷貝至活動(dòng)日志區(qū)域,這樣其他針對(duì)相同文件的讀取就會(huì)加快速度。DB2管理著這些所需日志文件的檢索、拷貝和移除。
注意:雖然無(wú)限活動(dòng)日志可被用于支持那些大的作業(yè)環(huán)境,它們需要的日志空間超出了正常情況下分配的主要日志空間,但是它仍然有它的權(quán)衡點(diǎn)。特別是,回滾操作(無(wú)論是在savepoint級(jí),還是在事務(wù)級(jí))的執(zhí)行,會(huì)由于需要在檔案存儲(chǔ)地點(diǎn)檢索日志文件而變得非常緩慢。同樣地,崩潰恢復(fù)也會(huì)由于同樣的原因而變得很慢。
