スケーラブルデータベースサーバ HiRDB Version 8 システム運用ガイド(UNIX(R)用)

[目次][索引][前へ][次へ]

12.1.10 インポート時に障害が発生した場合の対処方法

移行先システムで,pdloadコマンドで表をインポートする場合に障害が発生したときに考えられる要因と対処を次の表に示します。

表12-3 インポートする場合に障害が発生したときに考えられる要因と対処

障害 考えられる要因 対処 再度実行するpdloadのオプション
定義エラー 移行先システムでインポートするユーザのスキーマが定義されていません。 インポートするユーザのスキーマを定義して,インポートを再度実行してください。 -b -W -w all
移行先システムで,インポートしようとする表が既に定義されています。

移行元システムと同じ定義の表をインポートする場合:
移行先システムで既に定義されている表定義を削除してから,インポートを再度実行してください。

移行元システムと異なる定義の表をインポートする場合:
表定義情報と表データを別々に移行する方法で移行してください。
移行先システムに,インポートする表を格納するRDエリアがありません。 次のどちらかの対処をしてから,表データだけインポートしてください。
  • SQL定義ファイル中の格納RDエリアを修正して,pddefで再度定義
  • 移行先システムに格納RDエリアを追加
-b -W -w data
表定義が2MBを超えています。 SQL定義ファイル中のSQLを修正して2MB以内になるようにして,pddefで再度定義してください。その後,表データだけインポート(-b -W -w dataオプション指定でpdloadを実行)してください。
SQL定義ファイルの修正方法については,「(a)SQL定義ファイルの修正例」を参照してください。
データロードのエラー マニュアル「HiRDB Version 8 コマンドリファレンス」の「エラー時のデータベースの状態とその回復方法」を参照して,対処してください。

注※
SQL定義ファイルとは,pdloadコマンドでインポートした表定義情報を基に表やインデクスを定義したSQL文を出力するファイルです。インポート時に障害が発生した場合に出力されます。ファイル名は次のとおりです。

出力先ディレクトリ/SQLFILE-表名-xxxxxxx
出力先ディレクトリ:pd_tmp_directoryに指定したディレクトリ
環境変数TMPDIRの指定があればTMPDIRに指定したディレクトリ,指定がなければ/tmpディレクトリになります。詳細については,マニュアル「HiRDB Version 8 コマンドリファレンス」の「データベース作成ユティリティ(pdload)」の「制御文で指定しない場合のファイル出力先ディレクトリ」を参照してください。
表名:インポートする表名
xxxxxxx:ファイル作成時刻とプロセスIDを文字列に変換した値
(a) SQL定義ファイルの修正例

インポート時に作成するSQLには,省略時仮定値も作成されるため,表定義が2MBを超えることがあります。この場合,HiRDBは2MBを超えないように列IDの大きいものから列定義部分を削除してCREATE TABLEを作成し,その後でALTER TABLEで列定義部分を追加します。このとき,SQLエラーが発生するおそれがあります。

SQL定義ファイルのSQLを次のように修正してください。

  1. CREATE TABLEの省略時仮定値の部分を削除します。
  2. ALTER TABLEで追加している列定義をCREATE TABLEに移動します。

具体的なSQLの例は,マニュアル「HiRDB Version 8 コマンドリファレンス」の「搬入時に作成される定義系SQLが2メガバイトを超えた場合の修正例」を参照してください。