1. 程式人生 > >【DB2】資料庫的事務日誌已滿。SQLSTATE=57011

【DB2】資料庫的事務日誌已滿。SQLSTATE=57011

問題描述

image

在使用資料庫的時候報錯如上圖,我們先使用db2 get db cfg for sample檢視相關配置引數,其中sample為資料庫名稱

C:\Users\Thinkpad>db2 get db cfg for sample

       資料庫 sample 的資料庫配置

資料庫配置發行版級別                                    = 0x1400
資料庫發行版級別                                        = 0x1400

資料庫地域                                              = CN
資料庫內碼表                                            = 1208
資料庫程式碼集                                            = UTF-8
資料庫國家/地區程式碼                                     = 86
資料庫整理順序                                          = IDENTITY
備用整理順序                              (ALT_COLLATE) =
數字相容性                                              = OFF
Varchar2 相容性                                         = OFF
日期相容性                                              = OFF
資料庫頁大小                                            = 8192

語句集中器                                  (STMT_CONC) = OFF

對此資料庫的發現支援                      (DISCOVER_DB) = ENABLE

限制訪問                                                = NO
預設查詢優化類                           (DFT_QUERYOPT) = 5
並行度                                     (DFT_DEGREE) = 1
在算術異常時繼續                      (DFT_SQLMATHWARN) = NO
預設重新整理有效期                        (DFT_REFRESH_AGE) = 0
預設維護的選項(DFT_MTTB_TYPES)的表型別                = SYSTEM
保留的高頻值的數目                     (NUM_FREQVALUES) = 10
保留的分位點數目                        (NUM_QUANTILES) = 20

十進位制浮點舍入方式                    (DECFLT_ROUNDING) = ROUND_HALF_EVEN

十進位制運算方式                         (DEC_ARITHMETIC) =

備份暫掛                                                = NO

已將所有已落實的事務寫入磁碟                            = NO
前滾暫掛                                                = NO
復原暫掛                                                = NO

升級暫掛                                         = NO

啟用的多頁檔案分配                                      = YES

恢復狀態的日誌保留                                      = NO
日誌記錄狀態的使用者出口                                  = NO

自調整記憶體                            (SELF_TUNING_MEM) = OFF
資料庫共享記憶體大小 (4KB)              (DATABASE_MEMORY) = AUTOMATIC(76032)
資料庫記憶體閾值                          (DB_MEM_THRESH) = 100
鎖定列表的最大儲存量 (4KB)                    (LOCKLIST) = 4096
每個應用程式的鎖定百分比列表                 (MAXLOCKS) = 22
程式包快取記憶體大小 (4KB)                   (PCKCACHESZ) = (MAXAPPLS*8)
共享排序的排序堆域值 (4KB)             (SHEAPTHRES_SHR) = 5000
排序列表堆 (4KB)                             (SORTHEAP) = 256

資料庫堆 (4KB)                                 (DBHEAP) = AUTOMATIC(600)
目錄快取記憶體大小 (4KB)                (CATALOGCACHE_SZ) = (MAXAPPLS*5)
日誌緩衝區大小 (4KB)                          (LOGBUFSZ) = 256
實用程式堆大小 (4KB)                     (UTIL_HEAP_SZ) = AUTOMATIC(5000)
SQL 語句堆 (4KB)                             (STMTHEAP) = AUTOMATIC(8192)
預設應用程式堆 (4KB)                       (APPLHEAPSZ) = AUTOMATIC(256)
應用程式記憶體大小 (4KB)                 (APPL_MEMORY) = AUTOMATIC(40000)
統計資訊堆大小 (4KB)                     (STAT_HEAP_SZ) = AUTOMATIC(4384)

檢查死鎖的時間間隔(毫秒)                  (DLCHKTIME) = 10000
鎖定超時(秒)                             (LOCKTIMEOUT) = -1

更改的頁閾值                           (CHNGPGS_THRESH) = 60
非同步頁清除程式的數目                   (NUM_IOCLEANERS) = AUTOMATIC(2)
I/O 伺服器的數目                        (NUM_IOSERVERS) = AUTOMATIC(12)
順序檢測標誌                                (SEQDETECT) = YES
預設預取大小(頁)                    (DFT_PREFETCH_SZ) = AUTOMATIC

跟蹤修改的頁數                               (TRACKMOD) = NO

容器的預設數目                                          = 1
預設表空間擴充套件資料塊大小(頁)            (DFT_EXTENT_SZ) = 32

最大活動應用程式數                           (MAXAPPLS) = AUTOMATIC(40)
活動應用程式的平均數目                      (AVG_APPLS) = AUTOMATIC(1)
每個應用程式的最大開啟資料庫檔案數           (MAXFILOP) = 65535

日誌檔案大小 (4KB)                          (LOGFILSIZ) = 1000
主日誌檔案的數目                           (LOGPRIMARY) = 3
輔助日誌檔案的數目                          (LOGSECOND) = 10

已更改的至日誌檔案的路徑                   (NEWLOGPATH) =
日誌檔案路徑                                            = C:\DB2\NODE0000\SQL00001\LOGSTREAM0000\
溢位日誌路徑                          (OVERFLOWLOGPATH) =
映象日誌路徑                            (MIRRORLOGPATH) =
首個活動日誌檔案                                        =
磁碟上已滿的塊日誌                    (BLK_LOG_DSK_FUL) = NO
非記錄塊操作                          (BLOCKNONLOGGED) = NO
事務使用的最大主日誌空間的百分比        (MAX_LOG)= 0
1 個活動 UOW 的活動日誌檔案的數目        (NUM_LOG_SPAN) = 0

軟檢查點前回收的日誌檔案的百分比              (SOFTMAX) = 0
LBP 中最舊頁面的目標       (PAGE_AGE_TRGT_MCR) = 240

HADR 資料庫角色                                          = STANDARD
HADR 本地主機名                        (HADR_LOCAL_HOST) =
HADR 本地服務名稱                       (HADR_LOCAL_SVC) =
HADR 遠端主機名                       (HADR_REMOTE_HOST) =
HADR 遠端服務名稱                      (HADR_REMOTE_SVC) =
遠端伺服器的 HADR 例項名              (HADR_REMOTE_INST) =
HADR 超時值                               (HADR_TIMEOUT) = 120
HADR 目標列表                        (HADR_TARGET_LIST) =
HADR 日誌寫同步方式                      (HADR_SYNCMODE) = NEARSYNC
HADR 假離線日誌資料限制 (4KB)        (HADR_SPOOL_LIMIT) = AUTOMATIC(0)
HADR 日誌重放延遲(秒)     (HADR_REPLAY_DELAY) = 0
HADR 對等視窗持續時間(秒)           (HADR_PEER_WINDOW) = 0

第一個日誌歸檔方法                        (LOGARCHMETH1) = OFF
logarchmeth1 的歸檔壓縮   (LOGARCHCOMPR1) = OFF
logarchmeth1 的選項                        (LOGARCHOPT1) =
第二個日誌歸檔方法                        (LOGARCHMETH2) = OFF
logarchmeth2 的歸檔壓縮   (LOGARCHCOMPR2) = OFF
logarchmeth2 的選項                        (LOGARCHOPT2) =
故障轉移日誌歸檔路徑                     (FAILARCHPATH) =
錯誤時重試日誌歸檔次數                   (NUMARCHRETRY) = 5
日誌歸檔重試延遲(秒)                 (ARCHRETRYDELAY) = 20
供應商選項                                  (VENDOROPT) =

啟用的自動重新啟動                        (AUTORESTART) = ON
索引重新建立時間和重做索引構建               (INDEXREC) = SYSTEM (RESTART)
在索引構建期間記錄頁                    (LOGINDEXBUILD) = OFF
loadrec 會話的預設數目                (DFT_LOADREC_SES) = 1
要保留的資料庫備份的數目               (NUM_DB_BACKUPS) = 12
恢復歷史記錄保留時間(天數)          (REC_HIS_RETENTN) = 366
自動刪除恢復物件                     (AUTO_DEL_REC_OBJ) = OFF

TSM 管理類                              (TSM_MGMTCLASS) =
TSM 節點名                               (TSM_NODENAME) =
TSM 所有者                                  (TSM_OWNER) =
TSM 密碼                                 (TSM_PASSWORD) =

自動維護                                   (AUTO_MAINT) = ON
   自動資料庫備份                       (AUTO_DB_BACKUP) = OFF
   自動錶維護                           (AUTO_TBL_MAINT) = ON
     自動 runstats                       (AUTO_RUNSTATS) = ON
       實時統計資訊                    (AUTO_STMT_STATS) = ON
       統計檢視                   (AUTO_STATS_VIEWS) = OFF
       自動取樣                (AUTO_SAMPLING) = ON
     自動重組                               (AUTO_REORG) = OFF

自動重新驗證                               (AUTO_REVAL) = DEFERRED

當前已落實                                   (CUR_COMMIT) = ON
帶有 DECIMAL 輸入的 CHAR 輸出         (DEC_TO_CHAR_FMT) = NEW
啟用 XML 字元操作                      (ENABLE_XMLCHAR) = YES
監視器收集設定
請求度量值                            (MON_REQ_METRICS) = BASE
活動度量值                            (MON_ACT_METRICS) = BASE
物件度量值                            (MON_OBJ_METRICS) = EXTENDED
例程資料                                 (MON_RTN_DATA) = NONE
   例程可執行檔案列表                 (MON_RTN_EXECLIST) = OFF
工作單元事件數                           (MON_UOW_DATA) = NONE
   帶軟體包列表的 UOW 事件             (MON_UOW_PKGLIST) = OFF
   帶可執行檔案列表的 UOW 事件        (MON_UOW_EXECLIST) = OFF
鎖定超時事件數                        (MON_LOCKTIMEOUT) = NONE
死鎖事件數                               (MON_DEADLOCK) = WITHOUT_HIST
鎖定等待事件數                           (MON_LOCKWAIT) = NONE
鎖定等待事件閾值                        (MON_LW_THRESH) = 5000000
軟體包列表條目數目                     (MON_PKGLIST_SZ) = 32
鎖定事件通知級別                      (MON_LCK_MSG_LVL) = 1

SMTP 伺服器                               (SMTP_SERVER) =
SQL 條件編譯標誌                          (SQL_CCFLAGS) =
部分實際值設定                         SECTION_ACTUALS) = NONE
連線過程                                 (CONNECT_PROC) =
調整臨時 SYSTEM_TIME 時間段        (SYSTIME_PERIOD_ADJ) = NO
日誌 DDL 語句                           (LOG_DDL_STMTS) = NO
日誌應用程式資訊                        (LOG_APPL_INFO) = NO
新模式的預設資料捕獲                  (DFT_SCHEMAS_DCC) = NO
對 EXTBL_LOCATION 的嚴格 I/O             (EXTBL_STRICT_IO) = NO
外部表的允許路徑                       (EXTBL_LOCATION) = C:
預設表組織                              (DFT_TABLE_ORG) = ROW
預設字串單元                           (STRING_UNITS) = SYSTEM
本地字串對映                          (NCHAR_MAPPING) = CHAR_CU32
資料庫處於寫入暫掛狀態                                  = NO
擴充套件行大小支援                        (EXTENDED_ROW_SZ) = ENABLE
Backup 的加密庫                 (ENCRLIB) =
Backup 的加密選項                (ENCROPTS) =

WLM 收集時間間隔(分鐘)              (WLM_COLLECT_INT) = 0
每個 CPU 核心的目標代理程式負載    (WLM_AGENT_LOAD_TRGT) = AUTOMATIC(12)
已啟用 WLM 許可控制      (WLM_ADMISSION_CTRL) = NO
已分配的 CPU 資源份額       (WLM_CPU_SHARES) = 1000
CPU 共享行為(硬/軟)     (WLM_CPU_SHARE_MODE) = HARD
最大允許 CPU 使用率 (%)   (WLM_CPU_LIMIT) = 0
已加密資料庫                                      = NO
過程化語言堆疊跟蹤        (PL_STACK_TRACE) = NONE
HADR SSL 證書標籤             (HADR_SSL_LABEL) =

 

解決方法

C:\Users\Thinkpad>db2 update db cfg for sample using LOGFILSIZ 8096
DB20000I  UPDATE DATABASE CONFIGURATION 命令成功完成。

C:\Users\Thinkpad>db2 update db cfg for sample using LOGPRIMARY 20                                                                                      
DB20000I  UPDATE DATABASE CONFIGURATION 命令成功完成。

C:\Users\Thinkpad>db2 update db cfg for sample using LOGSECOND 15
DB20000I  UPDATE DATABASE CONFIGURATION 命令成功完成。

 

設定完畢後,重啟資料庫引數即可生效;

特別說明:

①調整的順序,為減少對應用的影響,建議先從logsecond引數著手,因為logsecond是按需分配,當不需要的時候DB2會考慮回收,不會造成空間浪費,而且
logsecond引數修改會立即生效,不需要斷開連線,不會對業務造成中斷影響logprimary+logsecond引數的值不超過255,如果增加了logsecond仍然不能
解決問題,可以考慮修改logpriimary和logfilsiz大小,但是這兩個引數設定後需要重啟資料庫才生效

②總事務日誌容量大小=(LOGPRIMARY+LOGSECOND)*LOGFILSIZ*4k