12.1.11 インポート時に障害が発生した場合の対処方法
移行先システムで,pdloadコマンドで表をインポートする場合に障害が発生したときに考えられる要因と対処を次の表に示します。
障害 |
考えられる要因 |
対処 |
再度実行するpdloadのオプション |
---|---|---|---|
定義エラー |
移行先システムでインポートするユーザのスキーマが定義されていません。 |
インポートするユーザのスキーマを定義して,インポートを再度実行してください。 |
-b -W -w all |
移行先システムで,インポートしようとする表が既に定義されています。 |
|
||
移行先システムに,インポートする表を格納するRDエリアがありません。 |
次のどちらかの対処をしてから,表データだけインポートしてください。
|
-b -W -w data |
|
表定義が2MBを超えています。 |
SQL定義ファイル※中のSQLを修正して2MB以内になるようにして,pddefで再度定義してください。その後,表データだけインポート(-b -W -w dataオプション指定でpdloadを実行)してください。 SQL定義ファイルの修正方法については,「SQL定義ファイルの修正例」を参照してください。 |
||
データロードのエラー |
マニュアル「HiRDB コマンドリファレンス」の「エラー時のデータベースの状態とその回復方法」を参照して,対処してください。 |
- 注※
-
SQL定義ファイルとは,pdloadコマンドでインポートした表定義情報を基に表やインデクスを定義したSQL文を出力するファイルです。インポート時に障害が発生した場合に出力されます。ファイル名は次のとおりです。
出力先ディレクトリ/SQLFILE-表名-xxxxxxx
- 出力先ディレクトリ:pd_tmp_directoryに指定したディレクトリ
-
環境変数TMPDIRの指定があればTMPDIRに指定したディレクトリ,指定がなければ/tmpディレクトリになります。詳細については,マニュアル「HiRDB コマンドリファレンス」の「データベース作成ユティリティ(pdload)」の「制御文で指定しない場合のファイル出力先ディレクトリ」を参照してください。
表名:インポートする表名
xxxxxxx:ファイル作成時刻とプロセスIDを文字列に変換した値
- 〈この項の構成〉
(1) SQL定義ファイルの修正例
インポート時に作成するSQLには,省略時仮定値も作成されるため,表定義が2MBを超えることがあります。この場合,HiRDBは2MBを超えないように列IDの大きいものから列定義部分を削除してCREATE TABLEを作成し,その後でALTER TABLEで列定義部分を追加します。このとき,SQLエラーが発生するおそれがあります。
SQL定義ファイルのSQLを次のように修正してください。
-
CREATE TABLEの省略時仮定値の部分を削除します。
-
ALTER TABLEで追加している列定義をCREATE TABLEに移動します。
具体的なSQLの例は,マニュアル「HiRDB コマンドリファレンス」の「搬入時に作成される定義系SQLが2,000,000バイトを超えた場合の修正例」を参照してください。