當(dāng)前位置: 首頁(yè)最新資訊 互聯(lián)網(wǎng) → 在線(xiàn)改變DB2數(shù)據(jù)庫(kù)頁(yè)大小的實(shí)現(xiàn)

在線(xiàn)改變DB2數(shù)據(jù)庫(kù)頁(yè)大小的實(shí)現(xiàn)

更多

為實(shí)現(xiàn)在對(duì)DB2頁(yè)大小進(jìn)行改變的過(guò)程中,表中的數(shù)據(jù)仍然能被訪問(wèn)的這種“ 在線(xiàn)” 頁(yè)大小的轉(zhuǎn)換,可按如下步驟實(shí)現(xiàn)進(jìn)行在線(xiàn)改變DB2頁(yè)大小操作:

 

1)如果沒(méi)有需要使用的頁(yè)大小的表空間或緩沖池存在,應(yīng)首先創(chuàng)建所需頁(yè)大小的緩沖池和表空間。

 

2)可使用DB2LOOK工具獲取創(chuàng)建表的DDL語(yǔ)句,如:

 

db2look -d <數(shù)據(jù)庫(kù)名> -e -tw <表名> -o <輸出文件名>

 

修改輸出文件,以便將一個(gè)表名不同于原表的新表創(chuàng)建在具有所需頁(yè)大小的表空間中。

 

3)利用修改后的 DDL 腳本創(chuàng)建一個(gè)與原表相同的新表。

 

4)使用如下語(yǔ)句將原表中的數(shù)據(jù)插入到新表中:

 

db2 "insert into <新表表名> (select * from <原表表名>)"

 

5)刪除原表:

 

db2 "drop table <原表表名>"

 

此操作后,應(yīng)用對(duì)表中數(shù)據(jù)暫時(shí)無(wú)法訪問(wèn)。

 

6)將新表表名更名為原表表名:

 

db2 "rename table <新表表名> to <原表表名>"

 

7)恢復(fù)應(yīng)用對(duì)表中數(shù)據(jù)的訪問(wèn)。

 

此時(shí)更名為原表名的新表的頁(yè)大小已從原來(lái)的頁(yè)大小轉(zhuǎn)換為所需頁(yè)大小,從而滿(mǎn)足了用戶(hù)對(duì)該表大小上的新需求。表數(shù)據(jù)僅在整個(gè)過(guò)程的步驟4)到5)的瞬間不可訪問(wèn),其它時(shí)間表中的數(shù)據(jù)均處于可訪問(wèn)的“ 在線(xiàn)” 狀態(tài)。

 

應(yīng)注意的是,上述步驟僅適用于數(shù)據(jù)庫(kù)中不存在依賴(lài)于該表的對(duì)象的情況,如果數(shù)據(jù)庫(kù)中存在有依賴(lài)于該表的對(duì)象,應(yīng)在保存有這些對(duì)象的DDL語(yǔ)句后,首先除去這些依賴(lài)關(guān)系,再進(jìn)行原表的刪除和新表更名操作,然后重建這些依賴(lài)關(guān)系。

熱門(mén)評(píng)論
最新評(píng)論
發(fā)表評(píng)論 查看所有評(píng)論(0)
昵稱(chēng):
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過(guò)審核才能顯示)