日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

分析DB2活動日志滿的原因及解決DB2日志滿方法與避免方案

瀏覽:407日期:2023-03-24 09:22:27

日志使用

下圖顯示了并發事務條件下,日志使用的示意

有3個并發的程序Process 1、Process 2、Process 3。每一個程序都有兩個事務。藍塊代表SQL語句,紅塊代表commit操作,綠塊代表rollback操作。每一個向下的箭頭都代表日志緩沖區的數據被刷新到日志磁盤上(默認是每一次提交操作都會導致日志緩沖被刷新到磁盤上)。

在T1時刻,事務A commit,日志緩沖區被刷新到磁盤上。
在T2時刻,事務B commit,日志緩沖區被刷新到磁盤上,此時日志X使用完,但由于X中的事務C還沒有提交,所以X此時還是活動日志。

在上圖中,如果事務C一直沒有提交操作,那么日志X將永遠是首個活動日志(oldest transaction log),后續的日志也是活動日志,其他應用最終會導致日志滿。

活動日志

如果一個日志中包含有未提交的事務,那么這個日志就是活動日志(也有其他情況,比如雖然所有事務已經提交,但對應的更改還沒有持久化到磁盤上)。

首個活動日志(First Active Log)

第一個活動日志,首個活動日志之后的日志(也就是編號比首個活動日志大的日志)都是活動日志,可以通過數據庫的snapshot查看first active log, current active log, 以及 last active log.

$ db2 get snapshot for db on sample | grep -i "File number"File number of first active log      = 0File number of last active log       = 2File number of current active log     = 0File number of log being archived     = Not applicable

日志滿原因

DB2總的可用活動日志的最大空間是有限制的,當達到限制之后,就會發生日志滿的問題,限制為(LOGPRIMARY + LOGSECOND) * LOGFILSIZ * 4KB

日志滿的原因無非兩種:

1.) 一個小事務hold住了首個活動日志,一直沒有提交,導致首個活動日志一直是活動狀態,不被釋放。這個跟堵車類似,一輛車因發動機故障(事務沒有提交)堵住路口(占用首個活動日志),即使后面的車都沒有問題(后續事務正常提交),也無法通過路口,且會越積越多,最終導致整個路都堵滿車(日志滿)。

2.) 有個事務非常大,迅速用盡了所有的日志。

日志滿的表現:

首先應用會報出SQL0964C錯誤:

$ db2 "insert into test select * from test"DB21034E The command was processed as an SQL statement because it was not avalid Command Line Processor command. During SQL processing it returned:SQL0964C The transaction log for the database is full. SQLSTATE=57011

其次,db2diag.log中會有以下報錯

2017-03-09-17.24.50.315000+480 E3234873F644     LEVEL: ErrorPID   : 8532 TID : 13028     PROC : db2syscs.exeINSTANCE: DB2INST1       NODE : 000      DB  : SAMPLEAPPHDL : 0-453APPID: *LOCAL.DB2INST1.170309092321AUTHID : MIAOQINGSONG     HOSTNAME: ADMINIB-PR7US3IEDUID  : 13028EDUNAME: db2agent (SAMPLE)FUNCTION: DB2 UDB, data protection services, sqlpgResSpace, probe:2860MESSAGE : ADM1823E The active log is full and is held by application handle     "0-441". Terminate this application by COMMIT, ROLLBACK or FORCE     APPLICATION.

日志滿的臨時處理:

1. 可以通過增加LOGSECOND來臨時增加可用的日志大?。ㄐ薷臅r需要加上immediate選項使之立即生效);增加LOGPRIMARY并沒有用,因為需要重啟數據庫才能生效。

2. force掉hold住首個活動日志的的應用,在force之前,可以抓取snapshot,看一下這個應用的狀態:

$ db2 get snapshot for database on sample | grep -i oldestAppl id holding the oldest transaction   = 441$ db2 get snapshot for application agentid 441      Application SnapshotApplication handle     = 441Application status     = UOW Waiting <<--應用狀態為UOW WaitingStatus change time     = 2017-03-09 17:23:15.068895Application code page   = 1386Application country/region code      = 86DUOW correlation token   = *LOCAL.DB2INST1.170309092244Application name      = db2bp.exeApplication ID       = *LOCAL.DB2INST1.170309092244..Connection request start timestamp     = 2017-03-09 17:22:44.963163 <<--應用連庫時間Connect request completion timestamp    = 2017-03-09 17:22:45.961157Application idle time   = 4 minutes 7 seconds..UOW log space used (Bytes) = 664Previous UOW completion timestamp     = 2017-03-09 17:22:45.961157Elapsed time of last completed uow (sec.ms)= 0.000000UOW start timestamp    = 2017-03-09 17:23:02.770477 <<--當前事務開始時間UOW stop timestamp     =      <<--當前事務結束時間為空,說明還沒有commitUOW completion status   =..Statement type       = Dynamic SQL StatementStatement = CloseSection number       = 201Application creator    = NULLIDPackage name= SQLC2K26Consistency Token     =Package Version ID     =Cursor name= SQLCUR201Statement member number  = 0Statement start timestamp = 2017-03-09 17:23:15.067789Statement stop timestamp  = 2017-03-09 17:23:15.068893 Elapsed time of last completed stmt(sec.ms)= 0.000024Total Statement user CPU time       = 0.000000Total Statement system CPU time      = 0.000000..Dynamic SQL statement text:   select * from t1

<<--一個事務中可能有多條SQL,這個只表示當前正在執行或者最后執行過的SQL,并不能表示就是這條SQL導致了日志滿,這里抓取到的是一條SELECT語句,SELECT語句不占用日志。

$ db2 "force application (441)"DB20000I The FORCE APPLICATION command completed successfully.DB21024I This command is asynchronous and may not be effective immediately.

日志滿的避免:

1.)根據抓取到的應用的snapshot,找應用開發人員查看為何不肯提交,這才是避免問題再次出現的根本辦法。
2.)從DB2管理層面,可以設置數據庫配置參數max_log和num_log_span
3.)可以寫腳本,以固定的間隔抓取database snapshot中的Appl id holding the oldest transaction, 如果長時間不發生變化(比如2天),就Force掉。

補充說明:

查看每個應用使用的日志大小:

$ db2 "select application_handle,UOW_LOG_SPACE_USED,UOW_START_TIME FROM TABLE(MON_GET_UNIT_OF_WORK(NULL,-1)) order by UOW_LOG_SPACE_USED" 

也可以通過db2pd -db <dbname> -transactions 查看每個正在使用的日志的情況

重點關注的參數有:

ApplHandl
The application handle of the transaction.
SpaceReserved
The amount of log space that is reserved for the transaction.
LogSpace
The total log space that is required for the transaction, including the used space and the reserved space for compensation log records.

通過對DB2活動日志滿原因的分析我們就可以找到解決此問題的方法同時避免此問題的再次出現

標簽: DB2
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲bt欧美bt精品777| 国产精品久久久久av蜜臀| 欧美一级二区| 久久激情五月激情| 精品视频在线你懂得| 欧美日韩在线观看首页| 欧美成人午夜| 亚洲一级淫片| 国产精品亚洲综合在线观看| 精品视频国产| 欧美sss在线视频| 亚洲欧美日韩在线观看a三区| 蜜臀久久久久久久| 久久精品 人人爱| 欧美国产偷国产精品三区| 久久国产精品免费精品3p| 免费看精品久久片| 日本成人中文字幕| 美腿丝袜在线亚洲一区| 日韩中文首页| 蜜臀久久99精品久久久画质超高清 | 亚洲区第一页| 国产视频一区二| 蜜桃视频在线网站| 中文字幕一区二区精品区| 日韩精品一区二区三区中文字幕| 精品国产亚洲一区二区在线观看| 亚洲免费高清| 国产欧美久久一区二区三区| 88xx成人免费观看视频库| 视频一区视频二区中文| 麻豆精品在线视频| 欧美久久精品一级c片| 欧美在线看片| 久久中文视频| 国产亚洲高清在线观看| 三级精品视频| 日韩激情啪啪| 91精品国产乱码久久久久久久| 中文字幕av一区二区三区四区| 国产欧美亚洲精品a| 99国产精品一区二区| 日韩精品1区2区3区| 亚洲二区免费| 国产精品成人3p一区二区三区| 欧美日韩国产传媒| 精品国产亚洲一区二区三区在线| 水蜜桃久久夜色精品一区的特点| 国产成人精品亚洲线观看| 日韩欧美中文字幕一区二区三区 | 粉嫩av一区二区三区四区五区 | 欧美精品高清| 老鸭窝亚洲一区二区三区| 韩日一区二区| 日韩久久电影| 一区二区国产在线| 亚洲www啪成人一区二区| 婷婷精品在线| 精品中文字幕一区二区三区av| 久久国产精品免费精品3p | 国产一区清纯| 国产精品草草| 欧美日韩精品一本二本三本| 精品国产一区二区三区性色av| 中文字幕一区日韩精品| 国产在线日韩| 97精品国产| 欧美国产不卡| 欧美午夜三级| 亚洲精品激情| 亚洲一区二区三区久久久| 欧美 日韩 国产一区二区在线视频| 国产一区二区色噜噜| 开心激情综合| 国产精品伦一区二区| 欧洲毛片在线视频免费观看| 精品亚洲成人| 蜜臀久久99精品久久久画质超高清 | 欧美一级网站| 玖玖精品视频| 不卡中文一二三区| 欧美成人久久| 在线日韩av| 中文字幕一区久| 精品国产美女a久久9999| 欧美成人一二区| 麻豆一区在线| 精品在线网站观看| 久久三级中文| 国产精品久久久久久妇女| 日韩精品久久久久久久软件91| 亚洲中字黄色| 日韩一区精品视频| 亚洲专区视频| 四虎精品一区二区免费| 亚洲精品精选| 日日夜夜免费精品| 日韩黄色免费网站| 国产日韩一区二区三区在线播放| 久久国产人妖系列| 老司机精品视频网| 国产一区二区三区亚洲综合| 国内精品美女在线观看| 黄色aa久久| 欧美亚洲精品在线| 激情欧美丁香| 蜜臀va亚洲va欧美va天堂 | 亚洲播播91| 美女福利一区二区三区| 亚洲自拍另类| 99久久久久国产精品| 日韩在线黄色| 国产香蕉精品| 欧美激情国产在线| 久久亚洲国产| 最新日韩欧美| 中文字幕一区二区精品区| 蜜臀国产一区二区三区在线播放| 中文字幕视频精品一区二区三区| 日韩高清成人在线| 国产精品18| 麻豆精品蜜桃| 鲁大师成人一区二区三区| 日韩国产在线观看| 国产精品多人| 欧美日一区二区| 免费久久99精品国产| 欧美一级久久| 国产精品久久观看| 国产视频久久| 国产欧美一区二区色老头| 国产一区二区三区四区五区 | 亚洲欧洲日本mm| 日本一区福利在线| 成人精品国产亚洲| 麻豆久久久久久久| 亚洲综合二区| 久久青草久久| 午夜久久av| 久久久亚洲欧洲日产| 久久亚洲在线| 日韩avvvv在线播放| а√天堂中文在线资源8| 免费日韩视频| 福利欧美精品在线| 国产亚洲精品自拍| 欧美国产精品| 好吊日精品视频| 国产精品久久久久av蜜臀| 蜜臀av免费一区二区三区| 日本国产一区| 91精品推荐| 国产精品欧美大片| 一区在线免费观看| 精品视频高潮| 免费成人性网站| 日韩国产专区| 国产精品久久久久久久久久久久久久久 | 丝袜a∨在线一区二区三区不卡| 久久亚洲精精品中文字幕| 亚洲一区黄色| 国产色播av在线| 日本不卡视频在线| 色老板在线视频一区二区| 欧美日韩中出| 欧美日韩国产高清| 久久影院午夜精品| 国产精品porn| 日韩在线黄色| 午夜国产精品视频免费体验区| 精品国产一区二区三区av片| 六月婷婷一区| 久久一区二区三区电影| 国产+成+人+亚洲欧洲在线| 日本欧美在线| 日韩专区在线视频| 精品在线播放| 欧洲精品一区二区三区| 国产福利亚洲| 青青国产91久久久久久| 中文在线日韩| 午夜国产欧美理论在线播放| 狠狠操综合网| 伊人久久在线| 精品精品久久| 蜜桃久久久久| 久久精品 人人爱| 亚洲区第一页| 蜜桃久久久久久久| 乱人伦精品视频在线观看| 欧美日韩亚洲在线观看| 一区二区三区四区日本视频| 久久精品国产99国产| 88久久精品| 日本免费新一区视频| 日日夜夜免费精品视频| 蜜臀精品久久久久久蜜臀| 亚洲欧美日韩精品一区二区| 韩日一区二区三区| 黄色免费成人|