• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      DB2事務(wù)日志行為分析及對策

      2018-03-21 15:41:47
      數(shù)字通信世界 2018年10期
      關(guān)鍵詞:磁盤事務(wù)日志

      柴 新

      (江蘇電力信息技術(shù)有限公司,南京 210024)

      1 引言

      DB2數(shù)據(jù)庫是廣泛使用的大型關(guān)系型數(shù)據(jù)庫,事務(wù)日志在數(shù)據(jù)庫運(yùn)行中扮演著非常重要的角色,沒有事務(wù)日志的參與,DB2數(shù)據(jù)庫就無法保證數(shù)據(jù)的一致性和可恢復(fù)性。數(shù)據(jù)庫中運(yùn)行的事務(wù)會耗用日志存儲空間,如果有長久未提交事務(wù)或數(shù)據(jù)修改量巨大的大事務(wù),容易出現(xiàn)事務(wù)日志空間被耗盡的現(xiàn)象,本文提出了針對性的防范措施。

      2 什么是事務(wù)日志

      所謂數(shù)據(jù)庫的一致性,就是當(dāng)數(shù)據(jù)庫崩潰恢復(fù)或前滾到某一個時間點(diǎn)時,數(shù)據(jù)庫能夠保證已經(jīng)提交事務(wù)的數(shù)據(jù)都被寫入磁盤,而所有未提交和回滾事務(wù)都被撤銷。為了保障數(shù)據(jù)的一致性,數(shù)據(jù)庫需要有一種機(jī)制提供以下功能:

      (1)若某事務(wù)回滾,數(shù)據(jù)庫需要知道被修改前的舊數(shù)據(jù)。

      (2)數(shù)據(jù)庫發(fā)生崩潰時,保存在緩沖池中的已提交事務(wù)的數(shù)據(jù)可能還沒有寫入物理磁盤,磁盤上的數(shù)據(jù)還是舊數(shù)據(jù),如何保證已提交事務(wù)的數(shù)據(jù)不丟失?

      在DB2中,正是事務(wù)日志提供了以上問題的解決方案。所謂事務(wù)日志,就是在一個事務(wù)被提交之后,保證該事務(wù)里修改后的數(shù)據(jù)能夠被寫入永久存儲介質(zhì)的一種機(jī)制,目的在于保證提交事務(wù)包含的數(shù)據(jù)不會丟失。為了提高系統(tǒng)的性能,DB2采用日志優(yōu)先算法,也就是先把記錄寫入日志文件,后將數(shù)據(jù)從緩沖池使用異步方式寫入磁盤。

      3 循環(huán)日志和歸檔日志

      DB2使用主日志和輔助日志文件來控制、分配日志存儲空間,當(dāng)數(shù)據(jù)庫啟動后,就預(yù)先分配了規(guī)定數(shù)目的主日志文件,而輔助日志文件是當(dāng)主日志文件的空間被耗盡后進(jìn)行按需分配,當(dāng)數(shù)據(jù)庫不再需要時會向操作系統(tǒng)釋放空間。

      DB2有兩種方式來使用日志文件:循環(huán)日志模式、歸檔日志模式。循環(huán)日志模式就是對多個事務(wù)日志文件進(jìn)行循環(huán)使用,每個事務(wù)日志文件的內(nèi)容會不斷被新日志條目數(shù)據(jù)所覆蓋,而歸檔日志模式與循環(huán)日志模式的最大區(qū)別就是事務(wù)日志文件的內(nèi)容在被新日志條目覆蓋之前首先被進(jìn)行保存,這一保存的過程就被稱之為歸檔,歸檔日志模式保留了數(shù)據(jù)庫所有數(shù)據(jù)更改活動的完整軌跡,因而能夠支持時間點(diǎn)前滾恢復(fù),也就是使用一個數(shù)據(jù)庫的完全備份映像加上其后的所有歸檔日志文件能將數(shù)據(jù)庫恢復(fù)到故障前時刻,并且歸檔日志模式能夠支持?jǐn)?shù)據(jù)庫的在線備份。循環(huán)日志模式只能支持崩潰恢復(fù)和版本恢復(fù),不能支持前滾恢復(fù),并且只能支持?jǐn)?shù)據(jù)庫離線備份,不能進(jìn)行在線備份。所以,從以上對比可以看出,歸檔日志模式更能有效地保護(hù)數(shù)據(jù)庫安全,在生產(chǎn)環(huán)境中,基本上都是配置為歸檔日志模式,用在線備份加歸檔日志的方式來保護(hù)數(shù)據(jù)庫安全。

      歸檔模式下,DB2在以下情況對事務(wù)日志文件進(jìn)行歸檔:(1)事務(wù)日志文件被寫滿,即使事務(wù)日志文件仍然含有未提交事務(wù);(2)事務(wù)日志文件未被寫滿,但發(fā)生以下任意一種情況:數(shù)據(jù)庫被取消激活、發(fā)出archive log命令、在線備份結(jié)束等。

      4 限制事務(wù)消耗事務(wù)日志空間的對策

      使用DB2數(shù)據(jù)庫的信息系統(tǒng),若事務(wù)使用不當(dāng),會對數(shù)據(jù)庫運(yùn)行造成嚴(yán)重影響,妨礙數(shù)據(jù)庫的并發(fā)性和可用性。包括下面兩種場景:

      (1)未提交事務(wù)。一個事務(wù)中的sql語句執(zhí)行結(jié)束后,應(yīng)馬上對事務(wù)進(jìn)行提交或回滾,以釋放日志空間,但是如果在sql語句執(zhí)行結(jié)束后沒有提交或回滾事務(wù),那么這種事務(wù)就可被稱為未提交事務(wù),隨著時間推移系統(tǒng)中其他事務(wù)的進(jìn)行,事務(wù)日志在不斷進(jìn)行切換,其可用空閑空間會不斷減少,未提交事務(wù)持續(xù)的時間越久,其對數(shù)據(jù)庫造成的危害就可能會越高,即使該事務(wù)是一個修改數(shù)據(jù)量很小的小事務(wù),其原因是包含著未提交事務(wù)的事務(wù)日志文件因不能被覆蓋重寫,造成數(shù)據(jù)庫無可用存儲空間記錄新的事務(wù)數(shù)據(jù)而停止數(shù)據(jù)處理,這時即使運(yùn)行一個修改數(shù)據(jù)量很小的sql語句,DB2也會報出SQL0964C事務(wù)日志滿的錯誤。

      (2)大事務(wù)。大事務(wù)是指修改數(shù)據(jù)量很大的事務(wù),由于數(shù)據(jù)修改前的舊映像要保存在事務(wù)日志中,可能會因事務(wù)日志文件沒有足夠空間存儲被修改數(shù)據(jù)的舊映像而發(fā)生SQL0964C事務(wù)日志滿的錯誤。當(dāng)這種情況發(fā)生時,大事務(wù)會回滾,并且新事務(wù)不能運(yùn)行,直至大事務(wù)回滾完成釋放了日志空間。

      以上兩種情況都會嚴(yán)重影響數(shù)據(jù)庫的可操作行或并發(fā)性,DB2的配置參數(shù)num_log_span可用來防范以上情況發(fā)生。它的作用是限制一個事務(wù)所跨越的日志文件的數(shù)量,當(dāng)超過設(shè)置值時,事務(wù)被DB2系統(tǒng)自動中斷,事務(wù)回滾,日志釋放,從而保證數(shù)據(jù)庫繼續(xù)有空閑的日志空間來記錄新的事務(wù)數(shù)據(jù)。一般來說,事務(wù)設(shè)計(jì)要遵循數(shù)據(jù)修改量小、及時提交等原則,以能保證數(shù)據(jù)庫不會因?yàn)槭聞?wù)日志而出現(xiàn)故障。

      5 結(jié)束語

      事務(wù)日志對DB2數(shù)據(jù)庫有非常重要的作用,本文以DB2數(shù)據(jù)庫事務(wù)日志為研究對象,說明了不同場景下事務(wù)日志的不同配置模式,及應(yīng)對事務(wù)日志空間耗盡的防范方法,對基于DB2開發(fā)的信息系統(tǒng)穩(wěn)定運(yùn)行,希望對DBA能起到幫助作用。

      猜你喜歡
      磁盤事務(wù)日志
      “事物”與“事務(wù)”
      基于分布式事務(wù)的門架數(shù)據(jù)處理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
      一名老黨員的工作日志
      華人時刊(2021年13期)2021-11-27 09:19:02
      扶貧日志
      心聲歌刊(2020年4期)2020-09-07 06:37:14
      河湖事務(wù)
      解決Windows磁盤簽名沖突
      電腦愛好者(2019年2期)2019-10-30 03:45:31
      修改磁盤屬性
      游學(xué)日志
      磁盤組群組及iSCSI Target設(shè)置
      創(chuàng)建VSAN群集
      马关县| 黎城县| 峡江县| 阜新| 轮台县| 绍兴县| 聂拉木县| 沽源县| 亳州市| 德江县| 威宁| 齐齐哈尔市| 康定县| 陇西县| 深水埗区| 唐海县| 长乐市| 桂林市| 西和县| 昌都县| 阿图什市| 清苑县| 鄂伦春自治旗| 湖南省| 祁门县| 双鸭山市| 壶关县| 筠连县| 无棣县| 阜宁县| 新竹市| 丰顺县| 灵宝市| 霍邱县| 绵阳市| 利辛县| 隆安县| 宁阳县| 赤峰市| 永仁县| 徐州市|