• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Prayer

            在一般中尋求卓越
            posts - 1256, comments - 190, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

            DB2數據庫事務日志已滿問題解決方案

            Posted on 2010-02-11 13:21 Prayer 閱讀(1054) 評論(0)  編輯 收藏 引用 所屬分類: DB2
            本系列文章主要介紹數據庫管理員(DBA)在日常維護中遇上一些比較緊急的情況如何處理,本篇主要介紹DB2交易日志存儲空間滿問題如何處理。

            1、數據庫事務日志的最大大小

            數據庫事務日志的最大大小由數據庫的三個配置參數決定,分別是“主日志文件的數目”(LOGPRIMARY)、“輔助日志文件的數目”(LOGSECOND)和“日志文件大小(4KB)”(LOGFILSIZ)。數據庫事務日志的最大大小的計算公式如清單 01-32 所示:


            清單 1. 數據庫事務日志的最大大小的計算公式
            數據庫事務日志的最大大小 = ( LOGPRIMARY + LOGSECOND )* LOGFILSIZ * 4KB

            LOGSECOND 在這個公式中不能設為 “ -1 ” ,“ -1 ”代表你在請求一個無限的活動日志空間,數據庫也不會報數據庫事務日志已滿錯誤,如果空間不足則會報日志磁盤已滿錯誤,具體如本章第五節所述。下面我們具體看一下這三個參數:

            1. 主日志文件的數目 LOGPRIMARY
              此數據庫配置參數用來指定要預分配的主日志文件個數。主日志文件建立分配給恢復日志文件的固定存儲器數量。在循環日志管理模式下,數據庫事務將按順序重復使用主日志,也就是當一個主日志已滿時,順序使用下一個主日志,如果主日志已滿,則按需一次分配一個輔助日志,輔助日志在使用完后,將被釋放。如果你發現數據庫會經常分配輔助日志文件,則可能需要通過增大日志文件大小或增大主日志文件的數目來提高系統性能。
            2. 輔助日志文件的數目 LOGSECOND
              此數據庫配置參數用來指定按需分配的輔助日志文件個數。盡量不要把此參數的值設置成“ -1 ” ,“ -1 ”代表你在請求一個無限的活動日志空間,數據庫也不會報數據庫事務日志已滿錯誤,如果空間不足則會報日志磁盤已滿錯誤。
            3. 日志文件大小 LOGFILSIZ
              此數據庫配置參數用來指定日志文件的大小。

            2、數據庫事務日志已滿錯誤

            數據庫事務日志已滿錯誤是指當前事務無法寫入到活動日志中(此時主日志文件和輔助日志文件已經全部用完或者沒有足夠當前事務寫入的空間),需要注意的是,這個錯誤和日志磁盤空間已滿是兩個概念,如果想查看日志磁盤已滿錯誤,請參照本章第五節。數據庫事務日志已滿不是由于磁盤空間滿引起的,而是由于沒有落實的事務總體過大,超過了數據庫事務日志所能容納的最大大小所造成的。

            一般系統上線之初(如果是分階段上線,則是每次上線之初),由于經常要導大量的數據,容易出現這個問題,當出現這個問題時,直接的辦法是找到引起這個錯誤的當前事務,終止掉這個事務即可,后續在操作時找到當前執行的事務中比較大的事務,盡量落實或回滾該事務。

            一般情況下,建議大家在系統上線之初進行導數時,盡量使用 LOAD 實用程序(如果是歸檔日志模式,建議使用帶 NONRECOVERABLE 選項的 LOAD 實用程序,否則裝入完成后數據庫或裝入的表所在的表空間會被置于備份暫掛狀態,需要做一次全備才能解除備份暫掛狀態),LOAD 實用程序在裝入數據時不記日志。

            如果使用 IMPORT 實用程序,建議使用 COMMITCOUNT 選項。無論是循環日志模式還是歸檔日志模式,使用 IMPORT 實用程序導入大量數據時,都有可能報數據庫事務日志已滿(也就是當前導入操作產生的事務過大,使得當前活動日志滿了,包括所有的主日志和輔助日志都用完了),所以為了避免數據庫日志已滿錯誤,提高并發性,可以使用 COMMITCOUNT 選項,對要導入的數據分階段提交。比如可以將 COMMITCOUNT 參數設置為“自動”,指示 import 實用程序 內部決定何時進行落實。此外,也可以將 COMMITCOUNT 選項設置為特定數字,指示 import 實用程序 在導入指定記錄數后即進行落實。

            盡量避免在上線之初直接使用“ INSERT INTO … SELECT .. FROM .. ”語句,導入一個很大的事務的方式進行導數,這樣會使事務非常大。另外,還可以在系統上線之初把主日志文件的數目(LOGPRIMARY)、輔助日志文件的數目(LOGSECOND)和日志文件大小(4KB)(LOGFILSIZ)三個參數調大,等系統正式上線穩定后,再調回合適的值。

            如果是在正式上線后的系統,經常出現這個問題,就需要查找原因,具體的原因可能有:

            1. 數據庫并發連接比較多
              這種情況下,就要考慮適當增加主日志文件的數目(LOGPRIMARY)和日志文件大小(4KB)(LOGFILSIZ)。
            2. 有人通過第三方軟件或其他工具直接連接到了生產庫
              在這樣的情況下,就要監控數據庫,看其是否經常寫一些大的語句對數據庫進行增刪改的操作,如果是的話,建議增加數據庫的控制,盡量不要讓不相關的人員連接生產庫(如果其他人有需要,盡量開放備份庫給他們使用,而不要開放生產庫,生產庫盡量只給業務系統正常使用),如果你使用的是 DB2 V9.5 版本,則可以使用工作負載管理 WLM 對數據庫的資源進行調配。如果使用的是 DB2 V9.5 之前的版本,則可以在數據庫服務器上通過配置操作系統的方式,限制一些 IP 的訪問。

            當出現這樣的錯誤時,不要嘗試使用 DB2STOP FORCE 命令來強制停掉數據庫,建議大家使用 FORCE APPLICATION 命令停掉引起這個錯誤的應用程序或者停掉所有的應用程序。也不建議大家使用 KILL 命令來殺掉任何 DB2 相關的進程。

            久久无码AV中文出轨人妻| 热久久国产欧美一区二区精品| 色诱久久久久综合网ywww| 91精品国产91久久久久福利| 国产精品久久久久久久久久免费| 亚洲性久久久影院| 国内精品伊人久久久久AV影院| 久久AAAA片一区二区| 色偷偷久久一区二区三区| 国产成人精品久久亚洲| 一本色道久久88精品综合| 99久久精品费精品国产 | 2022年国产精品久久久久| 久久国产福利免费| av午夜福利一片免费看久久| 亚洲国产精品无码久久九九| 91精品国产高清久久久久久91| 一本久久a久久精品vr综合| 久久久青草青青国产亚洲免观| 97久久久精品综合88久久| 国产精品99久久久精品无码| 94久久国产乱子伦精品免费| 国产情侣久久久久aⅴ免费| 亚洲伊人久久精品影院| 婷婷久久综合九色综合绿巨人| 99久久精品九九亚洲精品| 国产三级久久久精品麻豆三级| 无码久久精品国产亚洲Av影片 | 国内精品久久国产大陆| 亚洲精品乱码久久久久久| 国产精品久久久香蕉| 无码任你躁久久久久久久| 伊人久久五月天| 久久久久国产精品麻豆AR影院| 久久精品国产精品青草app| 日本精品久久久中文字幕| 久久精品一区二区国产| 久久精品中文字幕久久| 国内精品久久久久久久亚洲| 国内精品久久久久久中文字幕| 欧美国产成人久久精品|