8.13.2 注意事項
(1) リターンコードについて
pdrorgのリターンコードを次に示します。
0:正常終了。
4:正常終了(処理を一部スキップしました)。
8:異常終了。
(2) シンクポイントダンプの取得について
再編成処理(pdrorg -k rorg)の実行中は,一つの処理が完了するまでトランザクションが決着しないため,シンクポイントを取得できません。一つの処理とは,アンロード処理,リロード処理,及びインデクス作成処理のことをいいます。
このため,pdrorgコマンドとともにほかのUAPなどを実行した場合に,システム障害が発生したとき,再開始に要する時間が長くなるため,できるだけpdrorgコマンドとほかのUAPなどは同時に実行しないようにしてください。
同期点指定の再編成,及び同期点指定のリロードの場合,任意の行数単位にシンクポイントを取得できます。このため,通常のシンクポイントを取得しない再編成及びリロードに比べると,異常終了時の再開始に要する時間は短くなります。
なお,アンロード処理だけ(pdrorg -k unld)の場合はデータベースを更新しないため,pdrorgコマンドの実行中でもシンクポイントが取得できます。
(3) ユティリティ実行中の処理の中断について
pdrorg実行中に処理を中断したい場合は,pdcancelコマンドを使用します。なお,pdrorgが無応答障害(定例ジョブなど,一定時間で再編成処理が終わるはずなのに終わらない)と判断して強制終了させる場合は,pdlsコマンド(-d rpc -a指定)の表示結果をリダイレクトでファイルに取得してください。
この場合,処理はロールバックされます。このときのデータベースの状態,及び回復方法については,「エラー時のデータベースの状態とその回復方法」を参照してください。
再編成時期予測機能を使用している場合,pdrorgをシグナル割り込みで強制終了すると,運用履歴表が更新できません。再編成時期予測機能を使用している場合にpdrorgを終了させるときは,必ずpdcancelコマンドを使用してください。
(4) ユティリティ実行中の定義情報の変更について
表をアンロードしてからリロードするまでの間に,次の定義系SQLは実行しないでください。
-
ALTER TABLE
-
DROP TABLE,CREATE TABLEによる表定義の再作成
ただし,分割キーの分割条件を変更する場合及びハッシュ関数を変更する場合は実行できます。
(5) ユティリティ実行後の結果について
pdrorgの結果は,データベース状態解析ユティリティで確認できます。
(6) リロード時の分割キーの分割条件の変更について
リロード時に分割キーの分割条件を変更する場合,次の指定をするとエラーとなります。
-
-kオプションでのrorgの指定
-
-rオプションの指定
(7) RDエリア再初期化時のインデクスの状態について
データベース構成変更ユティリティでRDエリアを再初期化した場合,再初期化対象のRDエリアに関連するインデクスが未完状態となることがあります。再初期化によって非分割キーインデクスが未完状態となった場合は,必ずインデクス一括作成モードで表単位に再編成してください。RDエリアの再初期化前に出力されたインデクスファイルでインデクスを一括作成すると,データベースが破壊されることがあります。
(8) 系切り替え機能を利用する場合について
系切り替え機能を利用する場合,-k rorgで再編成するのではなく,-k unldと-k reldに分けて再編成することをお勧めします。この場合,アンロード処理が完了したアンロードデータファイルを使用して,系切り替え先でリロードが続行できます。このとき,アンロードデータファイルはDATなどの磁気テープ装置,又はHiRDBファイルを使用してください。ブロック入出力をするファイルでアンロードデータファイルを作成すると,系切り替えでOSのバッファが破棄されるため,アンロード処理がリターンコード0で終了していても,アンロードデータファイルに出力されている内容は保証されません。
(9) アンロードデータファイル作成時,pdrorgが異常終了した場合について
アンロードデータファイル作成時,pdrorgが異常終了した場合,不正なファイルが残っていることがあります。このとき,pdrorgを再実行すれば,残っているファイルに上書きされます。そのため,再実行しない場合はそのファイルを削除してください。
表の再編成中,リロード処理でpdrorgが異常終了した場合,ロールバックされてデータベース中のデータが消失した状態になります。これを回復する場合は,アンロード処理で作成されたアンロードデータファイルを使用して,リロード処理だけを実行します。このとき,複数の表を一つのアンロードデータファイルに連続して出力するような実行方法にすると,異常終了したpdrorgの後に続く別の表のアンロード処理でアンロードデータファイルが上書きされ,アンロードデータファイル中にもデータベース中にもデータがない状態になります。そのため,バックアップからの回復ができない場合は,必ず表ごとに別々のアンロードデータファイルを指定してください。
(10) システム間のアンロード,リロードについて
システム間のアンロード,及びリロードをする場合の注意事項を次に示します。
-
異なるバイトオーダのシステム間でのアンロード及びリロードはできません。
-
異なる文字体系のシステム間でのアンロード及びリロードはできません。
-
アンロードデータファイル中には,行データ以外にHiRDBのバージョン固有の制御情報が入っています。このため,あるバージョンのHiRDBでアンロードしたアンロードデータファイルを,異なるバージョンのHiRDBへリロードする場合,上位互換は保証されますが,下位互換は保証されません。下位バージョンのHiRDBへデータをリロードする場合は,-Wオプションを指定してアンロードしたアンロードデータファイルを使用してください。
-
表に抽象データ型列が定義されている場合,アンロードするときにコンストラクタパラメタ逆生成関数を使用する必要があります。
-
アンロード元の表とリロード先の表の表定義が異なる場合,条件によってリロードができないことがあります。リロードができない条件については,「アンロード元の表とリロード先の表の表定義が異なる場合のリロード実行可否」を参照してください。
(11) 分割キーのレンジ,又はハッシュ関数を変更した場合について
分割キーのレンジを変更した場合,又はハッシュ関数を変更した場合は,次に示すときだけ変更した分割条件に対応して,RDエリアにデータを振り分けて格納します。ただし,分割キーの列を変更した場合,及びLOB列がある表で-jオプションを指定していない場合を除きます。
-
HiRDB/シングルサーバでリロードする場合
-
HiRDB/パラレルサーバで,-gオプション指定のアンロードデータファイルからリロードする場合
また,キーレンジ分割,フレキシブルハッシュ分割,又はFIXハッシュ分割をそれぞれ別の分割方法に変更する手順については,マニュアル「HiRDB Version 9 システム運用ガイド」を参照してください。
(12) 表定義が同じ場合のアンロード,リロードについて
表定義が同じ場合,HiRDB/シングルサーバの表をアンロードしてHiRDB/パラレルサーバの表へリロード,又はその逆にHiRDB/パラレルサーバの表をアンロードしてHiRDB/シングルサーバの表へリロードできます。ただし,LOB列がある表の場合は,-jオプションを指定してアンロード・リロードする必要があります。
HiRDB/パラレルサーバの表をアンロードしてHiRDB/シングルサーバにリロードする場合,複数サーバに分割格納された表をアンロードするときには-gオプションを指定して1個のアンロードデータファイルを作成する必要があります。
表定義が異なる場合や,サーバ単位に出力されるアンロードデータファイルを使用したい場合は,-Wオプション指定のアンロードをして,pdloadでデータロードしてください。また,横分割表にクラスタキーインデクスを定義している場合,アンロードデータファイル中のデータはRDエリア単位にはクラスタキー順に並んでいますが,表全体としてはクラスタキー順に並んでいない状態となります。この場合,クラスタリング順序エラーとして扱われます。したがって,pdloadで-xオプションを指定するか,又はRDエリア単位に処理をする必要があります。
(13) 抽象データ型の列を持つ表へのリロード処理について
-
LOB列構成基表格納RDエリア,LOB列格納RDエリア,又はLOB属性格納RDエリアのどれかを再初期化した場合,-j指定でアンロードしたアンロードデータファイルだけリロードできます。このとき,リロード時にも-jオプションを指定してください。
-
-gオプションを指定しないで表単位に処理をする場合,表があるバックエンドサーバ数分のディクショナリサーバプロセスが必要になります。
(14) プラグインインデクスに対するインデクスの一括作成及びインデクスの再作成の実行可否について
プラグインインデクスに対するインデクスの一括作成及びインデクスの再作成の実行可否を次に示します。
提供機能 |
インデクスの一括作成 |
インデクスの再作成 |
---|---|---|
プラグインインデクス遅延一括作成機能 |
実行できます |
実行できます |
プラグインインデクス一括作成部分回復機能 |
実行できます |
実行できます |
上記機能なし |
実行できません |
実行できます |
プラグインインデクスに対してインデクスの一括作成(-k ixmk指定)を実行する場合は,プラグインが「インデクス一括作成部分回復機能」を提供している必要があります。提供していない場合は実行できないため,インデクスの再作成(-k ixrc指定)でインデクスを作り直す運用となります。
「プラグインインデクス遅延一括作成機能」を使用して作成されたインデクス情報ファイルを指定してのインデクス一括作成を実行して正常終了した場合,指定したインデクス情報ファイルを削除します。また,この機能で使用するインデクス情報ファイル出力ディレクトリ(サーバ定義のpd_plugin_ixmk_dir指定ディレクトリ)は,インデクス一括作成(-k ixmk指定)処理以外ではpdrorgが使用するファイル入出力領域として使用しないでください。
(15) HiRDB Text Search Plug-inの差分インデクス機能を使用している場合のユティリティが更新するインデクスについて
HiRDB Text Search Plug-inの差分インデクス機能を使用している場合,pdrorgが更新するインデクスを次に示します。
インデクス作成方法 |
環境変数PDPLUGINNSUBの指定 |
||
---|---|---|---|
Y |
N |
設定なし |
|
インデクス再作成の場合(-k ixrc指定) |
M |
M |
M |
全インデクスを作成する場合(-k ixmk指定) |
M |
M |
M |
追加データのインデクスを作成する場合(-k ixmk指定) |
S |
M |
S |
- (凡例)
-
M:MASTERインデクスを更新
S:差分インデクスを更新
(16) 再編成,又はリロード対象の表を基にリストを作成している場合について
再編成,又はリロード対象の表を基にリストを作成している場合,再編成後,又はリロード後にリストを使用して検索したときには,次のような現象が発生します。
-
誤った行を取り出す。
-
検索した行が見付からない。
このような場合,リストを使用して検索する前に,リストを再作成する必要があります。
(17) DVD-RAM装置の使用について
pdrorgのアンロードデータファイルとして,DVD-RAM装置を利用できます。ただし,使用するOSで各装置が使用できる場合に限ります。
HiRDBファイルとして使用する場合,HiRDBファイルシステム領域作成時(pdfmkfsコマンド実行時)にセクタ長を指定する必要があります。
(18) ユティリティ実行中のOSリソース不足を回避する方法
システム全体で大容量のファイル(システム全体で同時に100ギガバイト以上)を扱う場合,ファイルキャッシュが増大し,Windowsのシステムリソース不足になることがあります。大容量のファイルを扱う場合,pdfmkfsコマンド(-k UTL)で作成したHiRDBファイルシステム領域にアンロードデータファイルを作成すると,ファイルキャッシュを使用しないでアクセスするため,システムリソース不足を回避できます。ただし,ファイルキャッシュを使用しないでアクセスするため,性能は劣化します。
(19) ユティリティ実行時に使用できるファイルの媒体について
pdrorg実行時に使用できるファイルの媒体を次に示します。
ファイル |
ファイル |
HiRDBファイル |
固定長ブロックテープ |
可変長ブロックテープ |
---|---|---|---|---|
アンロードデータファイル |
○ |
○ |
○ |
○ |
LOBデータのアンロードファイル |
○ |
○ |
○ |
○ |
インデクス情報ファイル |
○ |
△ |
× |
× |
ソート用ワークファイル |
○ |
× |
× |
× |
処理結果ファイル |
○ |
× |
× |
× |
- (凡例)
-
○:使用できます。
△:インデクス遅延一括作成機能を利用するときだけ使用できます。
×:使用できません。
(20) コマンド実行画面に出力されるメッセージ
pdrorgは,標準出力に経過メッセージを出力しながら処理をします。また,エラー発生時は,標準エラー出力にエラーメッセージを出力します。標準出力や標準エラー出力への出力が抑止されている環境でpdrorgを実行した場合,メッセージ出力待ちでpdrorgが無応答状態となったり,メッセージログファイルにKFPL20003-Eメッセージを出力してpdrorgが異常終了したりすることがあります。そのため,標準出力や標準エラー出力への出力ができない環境ではpdrorgを実行しないでください。なお,標準出力,及び標準エラー出力に出力するメッセージの順序や数は,メッセージログファイルやイベントログと一致しないことがあります。正確にメッセージを把握したい場合は,メッセージログファイル又はイベントログを参照してください。
(21) 共用表の再編成
共用表を再編成する場合,共用表,及び処理対象の表に定義した共用インデクスを格納しているRDエリアに対して,EXモードで排他を掛けます。そのため,該当するRDエリアに定義したほかの表やインデクスも参照,及び更新ができません。共用表を再編成する場合の排他制御モードについては,「ユティリティの排他制御モード」を参照してください。
(22) 参照制約又は検査制約を定義した表の再編成
参照制約又は検査制約を定義した表に対して,再編成又はリロードを実行する場合の検査保留状態の設定可否については,「constraint文(検査保留状態に関する記述)」を参照してください。また,検査保留状態については,マニュアル「HiRDB Version 9 システム導入・設計ガイド」を参照してください。
なお,次の条件をすべて満たす場合は,検査保留状態となった表の再編成(-k rorg)は実行できません。
-
表単位に再編成を実行する(-rオプションを指定しない)。
-
フレキシブルハッシュ分割,又はフレキシブルハッシュ分割を含むマトリクス分割で分割された表である。
-
HiRDB/シングルサーバである,又はHiRDB/パラレルサーバで-gオプションを指定している。
表が検査保留状態かどうかは,ディクショナリ表(SQL_TABLES表)のCHECK_PEND列,又はCHECK_PEND2列の値から判断します(列値が'C'の場合は検査保留状態)。
(23) 再編成時期予測機能との関係
表やインデクスを再編成した運用履歴は,再編成時期予測結果に反映されます。
また,pdrorgが異常終了した状態のまま,pddbstの状態解析結果蓄積機能を実行すると,再編成完了後の状態で再編成時期を予測できないため,予測結果が不正※となります。したがって,pdrorgが異常終了した場合は,pdrorgを再実行して正常終了させた状態で,pddbstの状態解析結果蓄積機能を実行してください。
- 注※
-
例えば,リロード中に異常終了してロールバックした状態のDBの情報を蓄積すると,空のDBを基に予測してしまいます。
(24) BLOB列を含む表を再編成する場合
BLOB列を含む表の再編成をする場合,データをアンロードしてからリロードするまでの間に,RDエリアの名称を変更しないでください。RDエリアの名称を変更する前に取得したアンロードデータファイルを,名称を変更したRDエリアの表にリロードするとエラーとなります。
(25) 文字集合UTF-16を指定したCHAR型の列を分割キーとした表のエクスポート
文字集合UTF-16を指定したCHAR型の列を,キーレンジ分割又はマトリクス分割(境界値指定のキーレンジ分割)の分割キーとして指定した表の場合,分割キーの長さが列の定義長を超えるときは,その表をエクスポートできません。