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

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