15.9.1 RDエリアを移動する前に
- 〈この項の構成〉
(1) 移動できるRDエリア
移動できるRDエリアを次に示します。
-
ユーザ用RDエリア
-
ユーザLOB用RDエリア
(2) 移動手順
RDエリアの移動手順を次に示します。なお,ここで説明する移動手順は基本的な操作手順です。システムの構成によっては若干手順が異なります。詳細については,「例題1(新規サーバマシンのバックエンドサーバに移動する場合)」以降の例題で説明しています。
(a) オンライン中のRDエリアの移動機能を使用しない場合(pdmodコマンドでnorestartオペランドを指定しない場合)
オンライン中のRDエリアの移動機能を使用しない場合(pdmodコマンドでnorestartオペランドを指定しない場合)の手順を次に示します。
- 〈手順〉
-
-
移動先のバックエンドサーバがあるサーバマシンのメモリ所要量を見積もり直します。
-
pdcopyコマンドでバックアップを取得します。移動対象RDエリア,マスタディレクトリ用RDエリア,及びデータディクショナリ用のRDエリアのバックアップを取得する必要があります。バックアップの取得については,「バックアップの取得方法」を参照してください。
-
pdholdコマンドで移動対象RDエリアを閉塞クローズ状態にします。
-
pdmodコマンドでRDエリアを移動します。
-
pdstopコマンドでHiRDBを正常終了します。RDエリアを移動した後にHiRDBを一度終了してください。この操作をしないと,RDエリアの移動後の処理を保証しません。
-
移動対象RDエリアのHiRDBファイルを移動します。※
-
pdstartコマンドでHiRDBを正常開始します。
-
pdcopyコマンドでバックアップを取得します。移動対象RDエリア,マスタディレクトリ用RDエリア,及びデータディクショナリ用のRDエリアのバックアップを取得する必要があります。バックアップの取得については,「バックアップの取得方法」を参照してください。
- 注
-
RDエリアの移動開始からHiRDBの開始までの間(手順4〜7までの間)に,UAP及びそのほかのユティリティを実行しないでください。
- 注※
-
別のサーバマシンにRDエリアを移動する場合に必要な操作です。移動対象RDエリアのHiRDBファイルを移動先のサーバマシンに移動する必要があります。このとき,HiRDBファイルのパス名は移動元と同じパス名にしてください。同じパス名にできない場合は,別のディレクトリに格納してこのパスへのシンボリックリンクをしてください。
また,移動した後に移動元のHiRDBファイルを削除する必要があります。方法については,「例題1(新規サーバマシンのバックエンドサーバに移動する場合)」以降の例題で説明しています。
-
(b) オンライン中のRDエリアの移動機能を使用する場合(pdmodコマンドでnorestartオペランドを指定する場合)
オンライン中のRDエリアの移動機能を使用する場合(pdmodコマンドでnorestartオペランドを指定する場合)の手順を次に示します。
- 〈手順〉
-
-
移動先のバックエンドサーバがあるサーバマシンのメモリ所要量を見積もり直します。
-
pdcopyコマンドでバックアップを取得します。移動対象RDエリア,マスタディレクトリ用RDエリア,及びデータディクショナリ用のRDエリアのバックアップを取得する必要があります。バックアップの取得については,「バックアップの取得方法」を参照してください。
-
pdholdコマンドで移動対象RDエリアを閉塞クローズ状態にします。
-
pdmodコマンドでRDエリアを移動します。
-
移動対象RDエリアのHiRDBファイルを移動します※。ただし,移動対象RDエリアのHiRDBファイルを共有ディスク上に作成してあり,移動先からも同一パス名で参照可能としてあれば,この手順は不要です。
-
pdrelsコマンドで移動対象RDエリアを閉塞なしオープン状態にします。
-
pdcopyコマンドでバックアップを取得します。移動対象RDエリア,マスタディレクトリ用RDエリア,及びデータディクショナリ用のRDエリアのバックアップを取得する必要があります。バックアップの取得については,「バックアップの取得方法」を参照してください。
-
- 注※
-
別のサーバマシンにRDエリアを移動する場合に必要な操作です。移動対象RDエリアのHiRDBファイルを移動先のサーバマシンに移動する必要があります。このとき,HiRDBファイルのパス名は移動元と同じパス名にしてください。同じパス名にできない場合は,別のディレクトリに格納してこのパスへのシンボリックリンクをしてください。
また,移動した後に移動元のHiRDBファイルを削除する必要があります。方法については,「例題1(新規サーバマシンのバックエンドサーバに移動する場合)」以降の例題で説明しています。
(3) 注意事項
(a) 関連するすべてのRDエリアを移動してください
RDエリアを移動する場合,関連するすべてのRDエリアを移動する必要があります。関連するすべてのRDエリアを移動しないと,データベース構成変更ユティリティ(pdmodコマンド)の実行時にエラーになります。
-
移動対象RDエリアに格納されている表にインデクスを定義している場合は,そのインデクスを格納しているRDエリアも移動する必要があります。
-
移動対象RDエリアに格納されている表にLOB列を定義している場合は,そのLOBデータを格納しているユーザLOB用RDエリアも移動する必要があります。
-
移動対象RDエリアに格納されている表を横分割している場合は,分割条件単位に表,インデクス,及びLOB列を格納しているRDエリアを移動する必要があります。
(b) 表に非分割キーインデクスが定義されている場合
移動対象RDエリアに格納されている表に非分割キーインデクスを定義している場合は,そのインデクスの分割数が表の分割数と一致しているときだけ,RDエリアを移動できます。詳細は,マニュアル「HiRDB コマンドリファレンス」の「RDエリアの移動」を参照してください。一致していない場合,次に示す手順でRDエリアを移動します。
- 〈手順〉
-
-
DROP INDEXで非分割キーインデクスを削除します。
-
RDエリアを移動します。
-
CREATE INDEXで非分割キーインデクスを再作成します。
ただし,UNIQUEを指定した非分割キーインデクスは再作成できない場合があります。再作成できない場合については,マニュアル「HiRDB SQLリファレンス」のCREATE INDEXを参照してください。
なお,移動対象RDエリアに定義しているインデクスが非分割キーインデクスであるかどうかは,ディクショナリ表SQL_INDEXESの設定値によって判別できます。ディクショナリ表を検索するSQL文を次に示します。
SELECT DIV_INDEX FROM MASTER.SQL_INDEXES WHERE TABLE_SCHEMA = 'インデクスを定義した表の所有者の認可識別子' AND INDEX_NAME = 'インデクス識別子'
検索結果がYの場合:分割キーインデクス
検索結果がNの場合:非分割キーインデクス
-
(c) 表の分割キー以外に主キーを定義している場合
移動対象RDエリアに格納されている表の分割キー以外に主キーを定義している場合は,RDエリアを移動できません。この場合,次に示す手順でRDエリアを移動します。
- 〈手順〉
-
-
pdrorgコマンドで表データをアンロードします。
-
DROP TABLEで表の定義を削除します。
-
RDエリアを移動します。
-
CREATE TABLEで表を定義します。
-
pdrorgコマンドで表データをリロードします。
-
(d) 表を基表とするルーチンがある場合
RDエリアを移動すると,移動対象RDエリアに格納されている表を基表とするルーチンが無効になるため,ALTER ROUTINEでルーチンを再作成してください。
(e) オンライン中のRDエリアの移動で,表を基表とするリストがある場合
移動対象RDエリアに格納されている表を基表とするリストがある場合は,オンライン中にRDエリアを移動できません。この場合,次に示す手順でRDエリアを移動します。
- 〈手順〉
-
-
DROP LIST文でリストを削除します。
-
RDエリアを移動します。
-
ASSIGN LIST文でリストを再作成します。
-
(f) 系切り替えを適用した環境でRDエリアの移動を行う場合
系切り替えを適用した環境でRDエリアを移動する場合,移動したRDエリアの共有ディスクの設定を変更する必要があります。この場合,次に示す手順でRDエリアを移動します。
なお,系切り替え環境でRDエリアを移動する場合の前提条件については,マニュアル「HiRDB コマンドリファレンス」の「RDエリアの移動」を参照してください。
- 〈手順〉
-
-
RDエリアを移動します。
-
移動したRDエリアの共有ディスクが移動先サーバの共有リソースとなるように,クラスタソフトウェアの設定を変更します。
-
OSのコマンドで移動元での共有ディスクの非活性化,及び移動先での共有ディスクの活性化をします。
-