1.SQLState '57011' and errorCode '-964'
? 原因:數(shù)據(jù)庫(kù)的日志文件已滿
? 解決方法:修改日志文件大小(加大),增加日志文件個(gè)數(shù),增加輔助日志文件個(gè)數(shù)(三個(gè)修改參數(shù)可以任意選擇)
? 查看數(shù)據(jù)庫(kù)的配置參數(shù):get db cfg for <dbname>??
???????? 日志文件大小(4KB)? (LOGFILSIZ) = 1024 (每個(gè)日志文件大小為1024*4KB=4MB)
???????? 主日志文件的數(shù)目???? (LOGPRIMARY) = 3
???????? 輔助日志文件的數(shù)目?? (LOGSECOND) = 1
? 修改數(shù)據(jù)庫(kù)的配置參數(shù):update db cfg for <dbname> using <p> <v>
? 修改日志文件大小:update db cfg for <dbname> using LOGFILSIZ? 4096
? 修改主日志文件個(gè)數(shù):update db cfg for <dbname> using LOGPRIMARY? 6
? 修改輔助日志文件個(gè)數(shù):update db cfg for <dbname> using LOGSECOND 10
x
db2pd -db DNJC transactions
db2pd -db DNJC -dynamic
db2pd -db DNJC -logs
表空間滿了,肯定使用的是DMS的表空間,對(duì)于DMS表空間,可以有以下幾種方式擴(kuò)容:
1. 向表空間中添加新的容器:
ALTER TABLESPACE 表空間名 ADD (FILE '容器文件路徑和名稱' 容器文件大小)
2. 把現(xiàn)有的容器擴(kuò)大:也有兩種方法
(1)ALTER TABLESPACE 表空間名 RESIZE(FILE '已滿的容器名' 更改后容器的大小)
(2)ALTER TABLESPACE 表空間名 EXTEND(FILE '已滿的容器名' 準(zhǔn)備增加的大小)
若表空間直接用的是祼設(shè)備的話,就需要把file 改成device.
在做的時(shí)候一定要考慮到rebalance時(shí)間,增加了容器以后DB2會(huì)自動(dòng)重新balance數(shù)據(jù),根據(jù)tablespace的數(shù)據(jù)大小需要一定的時(shí)間來(lái)完成。這期間訪問(wèn)速度會(huì)下降很多。
要注意是幾K頁(yè)的表空間,4K最大表空間限制在64G,8K是128G,16K是256G,32K是512G,如果有上述限制是不可以直接加CONTAINER的,那只有再建一個(gè)新的表空間!
問(wèn)一下容器文件太大對(duì)讀寫(xiě)性能有多大影響?
一直有這樣的疑問(wèn),在表空間不夠的時(shí)候,到底是增大文件的大小好還是添加一個(gè)容器文件好
如果你有分離的磁盤(pán),當(dāng)然是在物理上分離的磁盤(pán)上建立文件容器好了,i/o比較快。
windows環(huán)境中還是擴(kuò)大container的size比較實(shí)用,可以避免rebalance
增加表空間大小
DB2數(shù)據(jù)庫(kù)使用時(shí),如果表空間滿了,該如何擴(kuò)容呢?下文將教給您DB2數(shù)據(jù)庫(kù)表空間擴(kuò)容的方法,供您參考,希望對(duì)您有所幫助。
1)直接添加一個(gè)容器的例子:
db2 " ALTER TABLESPACE PAYROLL ADD (DEVICE '/dev/rhdisk9' 10000) "
加容器之后DB2會(huì)有一個(gè)自動(dòng)balance的過(guò)程,可能會(huì)持續(xù)幾個(gè)小時(shí)!!! 一定要注意該選項(xiàng),修改前確認(rèn)該選項(xiàng)是否能滿足業(yè)務(wù)需求!
2)改變現(xiàn)有容器的大小(該方法不會(huì)觸發(fā)balance,但如果表空間建立在裸設(shè)備上,則要擴(kuò)沖裸設(shè)備空間):
db2 " ALTER TABLESPACE TS1 RESIZE (FILE '/conts/cont0' 2000, DEVICE '/dev/rcont1' 2000, FILE 'cont2' 2000) "
注意這種方式就是將原有的相應(yīng)容器都改成大小是2000頁(yè)
db2 "ALTER TABLESPACE TS1 RESIZE (ALL 2000)"
這種方式就是把表空間中所有的容器大小都改成2000頁(yè)
db2 " ALTER TABLESPACE TS1 EXTEND (FILE '/conts/cont0' 1000, DEVICE '/dev/rcont1' 1000, FILE 'cont2' 1000) "
這種方式就是將相應(yīng)的容器都擴(kuò)大1000頁(yè),也就是增加1000頁(yè)。
db2 " ALTER TABLESPACE DATA_TS EXTEND (ALL 1000)"
這種方式就是將所有的容器都增加1000頁(yè)。
創(chuàng)建表空間:
create tablespace TS4R_INDEX
pagesize 4K
managed by database using(file 'E:\DNJC\TS4R_INDEX' 10G)
extentsize 32
bufferpool BP_4K
dropped table recovery off;
改變?nèi)萜鞔笮。?
db2 alter tablespace idx_data resize(file 'd:\db2\datafile_netdb\idx_data' 32000);
增加容器:
db2 alter tablespace idx_data add(file 'd:\db2\datafile_netdb\idx_data_exl' 640);
表空間設(shè)為自增長(zhǎng):
db2 alter tablespace idx_data autoresize yes increasesize 10240K maxsize none;
查看表空間是否為自增長(zhǎng)及增長(zhǎng)大小:
db2 get snapshot for tablespaces on netdb |more;
db2 get snapshot for locks on 數(shù)據(jù)庫(kù)名稱,只能查看一個(gè)數(shù)據(jù)庫(kù)的死鎖,是否有辦法查詢所有數(shù)據(jù)庫(kù)的死鎖 用list db directory得到所有數(shù)據(jù)庫(kù)名,再循環(huán)執(zhí)行快照命令
db2 get snapshot for dynamic sql on db 得到的結(jié)果文本各個(gè)項(xiàng)的具體含義
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
