db2資料庫表空間
① db2中怎麼查看錶空間的使用情況
db2 connect to 資料庫名 db2 list tablespaces show detail 如果要查對應容器, db2 list tablespace containers for 表空間id
② 如何刪除DB2中的表空間
可用語句來刪除:
droptablespace表空間名;
表空間:
表空間是資料庫的邏輯劃分,一個表空間只能屬於一個資料庫。所有的資料庫對象都存放在指定的表空間中。但主要存放的是表, 所以稱作表空間。
③ 如何在DB2建表空間
兩種方式
1.利用信息中心,開始 輸入 db2cc 啟動圖形界面,按照界面去一步步操作
2.利用sql語句,在命令窗口或提示符或第三方工具,里執行語句
首先創建緩沖池 create bufferpool bufp1 immediate size 1000k
然後創建表空間 create tablespace tbspname .....
詳細語法自己就不列出來了。
cibcms:/cibcms/ypp/sql>db2 -v "import from /dev/null of del replace into rqb"
import from /dev/null of del replace into rqb
SQL3015N An SQL error "-1585" occurred ring processing.
SQL1585N A system temporary table space with sufficient page size does not
exist. SQLSTATE=54048
SQL3015N An SQL error "-1585" occurred ring processing.
SQL1585N A system temporary table space with sufficient page size does not
exist. SQLSTATE=54048
沒有表空間
表空間不夠
最近在項目中用到了DB2資料庫,在執行一些復雜查詢時,系統報出"不存在具有足夠頁大小的系統臨時表空間 SQLSTATE=54048"的數庫問題。原因是資料庫系統的臨時表空間所用的緩沖池頁大小隻有4,緩沖池大小不夠。但DB2系統默認的臨時表空間已經 指定的緩沖池不能改變,DB2系統默認的臨時表空間也不能刪除,所以只能新加另一個類型是「系統臨時」的表空間。
步驟:
1、打開DB2管理工具「控制中心」,以資料庫管理員身份登錄。
2、創建頁大小大於4的緩沖池(如16)。
3、創建別一個類型是「系統臨時」的表空間,並把該表空間的緩沖池指定為剛建立的緩沖池。
db2數據導入導出時用到的一些命令 清空表命令
1。快速清空表
db2 alter table tabname activate not logged initially with empty table ;
db2 import from /dev/null of del replace into tabname
2。在用IMPORT命令向資料庫插入大量數據時,如何避免日誌空間滿錯誤
在執行IMPORT命令時, 如果使用循環日誌, 有時會出現日誌滿錯誤, 這時可用COMMITCOUNT參數來解決. 因為日誌空間滿往往是因為所有的日誌均處於活動狀態導致的.而COMMIT執行後, 會釋放所佔據的資源, 其中包括日誌 .這樣, 被當前事務使用的日誌在COMMIT命令執行後, 即變成非活動狀態了.
3。export
db2 export to staff.ixf of ixf select * from userid.staff
4。import
db2 import from stafftab.ixf of ixf insert into userid.staff
④ db2怎麼查看錶空間使用率
db2 查看錶空間使用率
1. 統計所有節點表空間使用率
select substr(TABLESPACE_NAME,1,20) as TBSPC_NAME,bigint(TOTAL_PAGES * PAGE_SIZE)/1024/1024 as "TOTAL(MB)",
used_pages*PAGE_SIZE/1024/1024 as "USED(MB)", free_pages*PAGE_SIZE/1024/1024 as "FREE(MB)"
from table(snapshot_tbs_cfg('DB_NAME', -2)) as snapshot_tbs_cfg
2、查看錶空間使用率
select substr(tbsp_name,1,20) as TABLESPACE_NAME,substr(tbsp_content_type,1,10) as TABLESPACE_TYPE,sum(tbsp_total_size_kb)/1024 as TOTAL_MB,
sum(tbsp_used_size_kb)/1024 as USED_MB,sum(tbsp_free_size_kb)/1024 as FREE_MB,tbsp_page_size AS PAGE_SIZE
from SYSIBMADM.TBSP_UTILIZATION group by tbsp_name,tbsp_content_type,tbsp_page_size
order by 1
3、通過存儲過程查看資料庫大小和容量
db2 call GET_DBSIZE_INFO (?,?,?,0)
輸出參數的值
--------------------------
參數名: SNAPSHOTTIMESTAMP
參數值: 2008-05-26-10.53.06.421000
參數名: DATABASESIZE
參數值: 1203863552
參數名: DATABASECAPACITY
參數值: 4281493504
unit=byte, byte/1024/1024=m
db2 call GET_DBSIZE_INFO (?,?,?,0)
注意:
a、從V8以上版本支持,此存儲過程看資料庫大小和容量;如果要看各表空間使用情況上面的sql方便,
b、還有DPF環境下,db2 call GET_DBSIZE_INFO (?,?,?,0)只能看dbsize大小,無法看db的容量
SYSIBM.SYSTABLESPACES
SYSIBM.SYSTBSPACEAUTH
2.db2查看錶空間和增加表空間容量
Db2 connect to xxx
Db2 「LIST TABLESPACES SHOW DETAIL」
Tablespace ID = 7
Name = TSASNAA
Type = Database managed space
Contents = All permanent data. Large table space.
State = 0x0000
Detailed explanation:
Normal
Total pages = 14800
Useable pages = 14752
Used pages = 12864
Free pages = 1888
High water mark (pages) = 12864
Page size (bytes) = 8192
Extent size (pages) = 32
Prefetch size (pages) = 32
Number of containers = 1
增加表空間大小
DB2資料庫使用時,如果表空間滿了,該如何擴容呢?下文將教給您DB2資料庫表空間擴容的方法,供您參考,希望對您有所幫助。
1)直接添加一個容器的例子:
db2 " ALTER TABLESPACE PAYROLL ADD (DEVICE '/dev/rhdisk9' 10000) "
加容器之後DB2會有一個自動balance的過程,可能會持續幾個小時!!! 一定要注意該選項,修改前確認該選項是否能滿足業務需求!
2)改變現有容器的大小(該方法不會觸發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頁。
3.db2數據字典
select name from sysibm.systables where type='T' and creator='USERID' and tbspace='TS4R_DNJC' order by name;
select name from sysibm.systables where type='V' and creator='USERID' order by name;
type:資料庫表用T表示;資料庫視圖用V表示
creator:資料庫對象的創建者
select * from sysibm.syscolumns
select tabname from syscat.tables where tabschema=current schema ;
獲取當前模式下面的所有用戶表
describe table XXXX
SELECT NAME
,COLNO
,COLTYPE || '('
|| CAST(LENGTH AS CHAR(5)) || ','
|| CAST(SCALE AS CHAR(5)) || ')'
,CASE WHEN NULLS = 'N'
THEN 'NOT NULL' ELSE ' ' END
,TBNAME
WHERE TBCREATOR = 'TEST' -- < OR 'TEST'
-- AND (NAME = 'YOUR_COL_NAME' -- < COLUMN NAME \ ONLY USE ONE
AND (TBNAME = 'T_QUICK_MENU' -- < TABLE NAME /
)
ORDER BY TBNAME, COLNO
SELECT NAME FROM SYSIBM.SYSCOLUMNS
⑤ DB2資料庫表空間的創建!
http://www-01.ibm.com/support/knowledgecenter/SSEPGG_9.5.0/com.ibm.db2.luw.messages.sql.doc/doc/msql01585n.html?lang=zh
看著來解自決下吧
⑥ db2 查看錶空間下有哪些表
這個還真的沒做過,但你可以用db2look將整個資料庫結構導出來,然後查看下一個表空間下有哪些表。
⑦ Db2資料庫 怎麼確認默認建表的表空間
用list tablespaces命令可以查看錶空間信息
⑧ db2資料庫怎麼創建表空間
db2上新建表空間和數內據庫容
http://blog.csdn.net/yixiayizi/article/details/8272437
⑨ 查看db2資料庫有哪些表空間i
selectsubstr(tbsp_name,1,20)asTABLESPACE_NAME,substr(tbsp_content_type,1,10)
asTABLESPACE_TYPE,sum(tbsp_total_size_kb)/1024as
TOTAL_MB,sum(tbsp_used_size_kb)/1024asUSED_MB,sum(tbsp_free_size_kb)/1024as
FREE_MB,tbsp_page_sizeASPAGE_SIZEfromSYSIBMADM.TBSP_UTILIZATIONgroupby
tbsp_name,tbsp_content_type,tbsp_page_size
orderby1
拷下來跑一下吧,全出來了,這個語句可以查出來各個表空專間的使用率屬。別忘了點贊啊
我跑了一下
⑩ db2資料庫如何擴大表空間
有SMS 和DMS 。
SMS 是系統管理的,自動擴展。可以加目錄
DMS 是資料庫管理的,可以添加新的容器進擴展。
還有一種DMS是自動存儲,可以自動進行擴展。