在新增節點至分割資料庫時,若此資料庫有一個或多個頁大小非預設值(4 KB)的系統暫時表格空間, 您可能會得到錯誤訊息: "SQL6073N 新增節點作業失敗"和一個 SQLCODE。會發生這種情形是因為在建立節點時,只有 IBMDEFAULTBP 緩衝池是以 4 KB 的頁大小存在。
例如,您可以使用 db2start 指令,新增節點至目前的分割資料庫中。
DB2START NODENUM 2 ADDNODE HOSTNAME newhost PORT 2
如果分割資料庫的暫時表格空間之頁大小為預設值,結果會傳回下列的訊息:
SQL6075W 開始資料庫管理程式作業已順利完成新增節點。 此節點要等到所有的節點都停止,然後又再啟動時才有作用。
但是,如果分割資料庫的系統暫時表格空間之頁大小非預設值,則傳回的訊息是:
SQL6073N 新增節點作業失敗。SQLCODE = "<-902>"
另一個相似的範例,用新節點說明手動更新 db2nodes.cfg 檔案之後, 您可以使用 ADD NODE 指令。 在編輯該檔並對分割資料庫 (系統暫時表格空間為預設頁面大小) 執行 ADD NODE 指令之後, 會傳回下列訊息:
DB20000I ADD NODE 指令順利完成。
但是,如果分割資料庫的系統暫時表格空間之頁大小非預設值,則傳回的訊息是:
SQL6073N 新增節點作業失敗。SQLCODE = "<-902>"
為了避免發生上述的問題,請執行:
DB2SET DB2_HIDDENBP=16
在發出 db2start 或 ADD NODE 指令之前。 此登錄變數會使 DB2 配置 16 頁的隱藏緩衝池,而每一頁所使用的頁大小並非預設值。 這可使 ADD NODE 作業順利完成。
另一個可避免這類問題發生的方法, 是對 ADD NODE 或 db2start 指令指定 WITHOUT TABLESPACES 子句。 在此之後,您必須利用 CREATE BUFFERPOOL 陳述式來建立緩衝池, 並且利用 ALTER TABLESPACE 陳述式將系統暫時表格空間和緩衝池相關聯。
在新增節點至現存節點群組時,若此節點群組有一個或多個頁大小非預設值 (4 KB) 的表格空間, 您可能會得到錯誤訊息:"SQL0647N 緩衝池 "" 目前不在作用中。"。 會發生這種情形是因為建立在新節點且頁大小非預設值的緩衝池並未為表格空間啟動。
例如,您可以使用 ALTER NODEGROUP 陳述式新增節點至節點群組:
DB2START CONNECT TO mpp1 ALTER NODEGROUP ng1 ADD NODE (2)
如果節點群組有頁大小為預設值的表格空間,結果會傳回下列的訊息:
SQL1759W 重新分配節點群組必須變更節點群組 "<ng1>" 內物件的資料定位, 以併入新增節點, 或排除捨棄節點。
但是,如果節點群組的表格空間之頁大小非預設值,則傳回的訊息是:
SQL0647N 緩衝池 "" 目前不在作用中。
一個可避免此問題的方法是為每一個頁大小建立緩衝池, 並在發出 ALTER NODEGROUP 陳述式之前,重新連接至資料庫:
DB2START CONNECT TO mpp1 CREATE BUFFERPOOL bp1 SIZE 1000 PAGESIZE 8192 CONNECT RESET CONNECT TO mpp1 ALTER NODEGROUP ng1 ADD NODE (2)
第二個避免問題的方法,請執行:
DB2SET DB2_HIDDENBP=16
發出 db2start 指令以及 CONNECT 和 ALTER NODEGROUP 陳述式之前。
使用 ALTER TABLESPACE 陳述式新增表格空間至節點,另一個問題會發生。 例如:
DB2START CONNECT TO mpp1 ALTER NODEGROUP ng1 ADD NODE (2) WITHOUT TABLESPACES ALTER TABLESPACE ts1 ADD ('ts1') ON NODE (2)
這一系列指令和陳述式會產生錯誤訊息 SQL0647N(而非預期訊息 SQL1759W)。
欲正確地完成此變更,必須在 ALTER NODEGROUP... WITHOUT TABLESPACES 陳述式之後,重新連接至資料庫。
DB2START CONNECT TO mpp1 ALTER NODEGROUP ng1 ADD NODE (2) WITHOUT TABLESPACES CONNECT RESET CONNECT TO mpp1 ALTER TABLESPACE ts1 ADD ('ts1') ON NODE (2)
另一個避免問題的方法,請執行:
DB2SET DB2_HIDDENBP=16
發出 db2start 指令以及 CONNECT、 ALTER NODEGROUP 和 ALTER TABLESPACE 陳述式之前。