10.5 リバランス中のSQL実行可否
リバランス中のSQL実行可否を次の表に示します。
SQL文 |
リバランス処理中 |
リバランス途中,及びリバランス停止中 |
|
---|---|---|---|
共用モード |
占有モード |
||
SELECT文 |
○ |
× |
○ |
UPDATE文 |
○※1 |
× |
○※1 |
INSERT文 |
○※2 |
× |
○※2 |
DELETE文 |
○ |
× |
○ |
LOCK文 |
○ |
× |
○ |
PURGE TABLE文※3 |
×※4 |
× |
○ |
DROP TABLE |
×※4 |
× |
○ |
CREATE INDEX |
×※4 |
× |
○ |
DROP INDEX |
×※4 |
× |
○ |
ALTER TABLE |
×※4 |
× |
× |
- (凡例)
-
○:実行できます。
×:実行できません。
- 注※1
-
ユニークキーインデクスを構成する列の更新はできません(エラーとなります)。
- 注※2
-
リバランス対象表にユニークキーインデクスが定義されている場合は実行できません(エラーとなります)。
- 注※3
-
RDエリア追加後,pdrbal実行前にPURGE TABLE文又はRDエリアの再初期化をした場合,リバランス初期化処理がされていないため,追加したRDエリアに対する格納処理は実行されません。
また,pdrbalがリターンコード0で終了する前に,PURGE TABLE文又はRDエリアの再初期化をした場合,リバランス完了処理がされていないため,FIXハッシュ分割表のSQL検索性能が劣化したままとなります。このような場合には,PURGE TABLE文又はRDエリアの再初期化をした後の状態で,pdrbalを実行してください。これによって,リバランス初期化処理,又はリバランス完了処理が実行されます。
- 注※4
-
回復不要FESを適用している場合,pdrbal実行中に定義系SQLやPURGE TABLE文が実行できてしまうことがあります(回復不要FESを適用していない場合は,不当に定義系SQLやPURGE TABLE文が実行されないように,フロントエンドサーバが排他資源を確保して防いでいます)。このため,pdrbal実行中は定義系SQLやPURGE TABLE文を実行しないでください。なお,占有モードでpdrbalを実行する場合は,バックエンドサーバで表に排他制御が掛かっているため,定義系SQLは排他待ちとなります。