インナレプリカ機能 HiRDB Staticizer Option Version 8
インナレプリカ機能を使用する場合の定義系SQLを実行するための条件と,注意事項について説明します。
インナレプリカ機能を使用している場合,定義系SQLはオリジナルRDエリアとレプリカRDエリアの対象の表に関連するすべてのRDエリア(インデクス,LOB列,BLOB属性,およびプラグインインデクス)に対して処理を行います。
定義系SQLを実行するためには,次に示す幾つかの条件を満たしている必要があります。(b)および(c)の条件を満たしていない場合,定義系SQLはエラーになります。
表B-1 RDエリア状態ごとの定義系SQLの実行可否(オープン契機がINITIALの場合)
定義系SQL | オリジナル世代または カレントRDエリアの世代 |
左記以外のレプリカRDエリアの世代 | |
---|---|---|---|
閉塞なし | オープン | ○ | ○ |
クローズ | × | × | |
コマンド閉塞 | オープン | × | × |
クローズ | × | ○※1 | |
参照可能閉塞 | オープン | × | × |
クローズ | × | × | |
参照可能バックアップ閉塞 | オープン | × | × |
クローズ | × | × | |
更新可能バックアップ閉塞 | オープン | ○ | ○ |
クローズ | − | − | |
障害閉塞 | オープン | × | × |
クローズ | × | × | |
ログレス閉塞 | オープン | × | × |
クローズ | × | × | |
同期化閉塞 | オープン | ○※2 | ○※2 |
クローズ | × | × | |
オン中再編成閉塞 | オープン | × | × |
クローズ | × | × |
表B-2 RDエリア状態ごとの定義系SQLの実行可否(オープン契機がDEFERまたはSCHEDULEの場合)
定義系SQL | オリジナル世代または カレントRDエリアの世代 |
左記以外のレプリカRDエリアの世代 | |
---|---|---|---|
閉塞なし | オープン | ○ | ○ |
クローズ | ○ | ○ | |
コマンド閉塞 | オープン | × | × |
クローズ | × | ○※1 | |
参照可能閉塞 | オープン | × | × |
クローズ | × | × | |
参照可能バックアップ閉塞 | オープン | × | × |
クローズ | × | × | |
更新可能バックアップ閉塞 | オープン | ○ | ○ |
クローズ | ○ | ○ | |
障害閉塞 | オープン | × | × |
クローズ | × | × | |
ログレス閉塞 | オープン | × | × |
クローズ | × | × | |
同期化閉塞 | オープン | ○※2 | ○※2 |
クローズ | ○※2 | ○※2 | |
オン中再編成閉塞 | オープン | × | × |
クローズ | × | × |
一部の定義系SQLは,それぞれのRDエリアに対してこれらの条件のどれかをチェックしてから処理を行います。チェックが発生する定義系SQLの一覧とそのチェック内容を次の表に示します。
表B-3 チェックが発生する定義系SQLの一覧とそのチェック内容
SQL文 | 内容 | チェック内容 | ||
---|---|---|---|---|
(a) | (b) | (c) | ||
CREATE TABLE | 表定義 | ○ | ○ | ○ |
CREATE INDEX | インデクス定義 | ○ | ○ | ○ |
DROP INDEX | インデクス削除 | × | ○ | ○ |
DROP SCHEMA | スキーマ削除 | × | ○ | ○ |
ALTER TABLE ADD 列 | LOB列,BLOB属性を含む抽象データ型列の列追加 | ○ | ○ | ○ |
ALTER TABLE CHANGE SEGMENT REUSE | 空き領域再利用機能の適用を変更 | × | ○ | ○ |
DROP TABLE | 表削除 | × | ○ | ○ |
ALTER TABLE ADD RDAREA | ハッシュ関数によって横分割している表に対して,表格納用RDエリアを追加 | ○ | ○ | ○ |
ALTER TABLE ADD 列 | FIX表の列,NOT NULL列追加 DEFAULT句指定列追加 |
× | ○ | ○ |
ALTER TABLE CHANGE [NO SPLIT | SPLIT] | 可変長文字データの格納方式を変更 | × | ○ | ○ |
ALTER TABLE CHANGE CLUSTER KEY | 実表のクラスタキーの一意性制約を変更 | × | ○ | ○ |
ALTER TABLE CHANGE HASH | FIXハッシュ分割表のハッシュ関数を変更 | × | ○ | ○ |
ALTER TABLE DROP | 実表の列を削除 | × | ○ | ○ |
GRANT RDAREA | RDエリア利用権限の付与 | ○ | × | × |
ALTER TABLE CHANGE RDAREA | 分割表の境界値指定を変更 | ○ | ○ | ○ |
ALTER TABLE CHANGE COLUMN | LOB列,LOB属性のログ取得種別を変更 | ○ | ○ | ○ |
定義系SQLを発行するときは,次の点に注意してインナレプリカの運用方法を決定してください。
RDエリアがコマンド閉塞かつクローズ状態のため,定義処理をスキップするとKFPH22032-Wメッセージが出力されます。KFPH22032-Wメッセージは,一つの定義系SQL(DROP SCHEMA以外)で,該当する世代のサーバで1回出力されます。DROP SCHEMAのように複数の表を対象とする定義系SQLは,個々の表について該当する世代のサーバで1回出力します。
コマンド閉塞かつクローズ状態のため処理をスキップしたRDエリアは,RDエリア内の定義情報を変更していません。ペアを分離しているなど,オリジナルRDエリアの更新が自動でレプリカRDエリアに反映される状態でない場合,RDエリアの内容は,データディクショナリ用RDエリアにある表やインデクスの定義情報と不整合です。この状態でレプリカRDエリアの閉塞を解除して使用すると,SQLがエラーとなったり,RDエリアが障害閉塞したりします。
RDエリアの閉塞を解除する前に次のどちらかの方法で,RDエリアの内容と表やインデクスの定義情報を一致させてください。
All Rights Reserved. Copyright (C) 2006, 2016, Hitachi, Ltd.