8.4.4 表の再編成時のリロード処理でエラーとなった場合の運用方法
表の再編成時のリロード処理でエラーとなった場合,エラー原因を取り除いてから再度表の再編成(-k rorg)を実行します。
(1) 表の再編成時にエラーとなった処理と,再実行時の再開始位置
表の再編成でエラーとなった場合,表のステータスが「再編成中」となります。表のステータスが再編成中の場合,表の再編成を再実行すると,エラーとなった処理から再開されます。該当するRDエリアが再編成中かどうかは,pddbstのRDエリア単位の論理的解析,又は表単位の解析を実行して,解析結果のStatusを見れば分かります。
(a) LOB列構成基表の再編成,並びにLOB列構成基表,及びLOB列を同時に再編成(-j指定)する場合
表の再編成時にエラーとなった場合に再実行したときの再開始位置を次の表に示します。なお,LOB列構成基表,及びLOB列の同時再編成は,-jオプションを指定して一つのアンロードデータファイルを使用する場合について説明しています。
- pdrorg実行時のオプションの指定:
-
pdrorg -k rorg 〔-j〕
- pdrorg実行時の制御情報ファイルの指定:
-
unload文
表8‒7 表の再編成時にエラーとなった場合に再実行したときの再開始位置(LOB列構成基表の再編成,並びにLOB列構成基表,及びLOB列を同時に再編成(-j指定)する場合) 項番
表の再編成時の処理
エラー直前の出力メッセージ※
表のステータス
再開始位置
LOB列構成基表
LOB列
LOB属性
1
アンロード
アンロード開始
712,732
−
−
−
項番1
2
アンロード完了
714,734
rc=8
−
−
−
項番1
rc=0
未かつR
未かつR
未かつR
改竄防止表の場合:
項番3
R
R
R
改竄防止表でない場合:
項番1(表単位,又はRDエリア単位)
項番3(スキーマ単位)
3
リロード
データ削除開始
出力されません。
未かつR
未かつR
未かつR
改竄防止表の場合:
項番3
R
R
R
改竄防止表でない場合:
項番1(表単位,又はRDエリア単位)
項番3(スキーマ単位)
4
データ削除完了
721
未かつR
未かつR
未かつR
項番5
5
リロード開始
712,732
未かつR
未かつR
未かつR
項番5
6
リロード完了
714,734
rc=8
未かつR
未かつR
未かつR
項番5
rc=0
R
R
R
インデクスが定義されていて,かつ-i cの場合:
項番7
上記以外の場合:
項番1
7
インデクスの一括作成
インデクスのアンロード開始(再開始時だけ)
725
R
R
R
項番7
8
インデクスの一括作成開始
715
R
R
R
項番7
9
インデクスの一括作成完了
716
R
R
R
作成されていないインデクスがある場合:
項番7
−
−
−
上記以外の場合:
項番1
- (凡例)
-
未:データ未完状態
R:再編成中
rc:リターンコード
−:通常の状態(再編成前の状態,又は再編成後の状態)
- 注※
-
メッセージは省略して表記しています。例えば,712はKFPL00712-I,732はKFPL00732-Iとなります。
(b) LOB列構成基表,及びLOB列を同時に再編成(lobunld文指定)する場合
表の再編成時にエラーとなった場合に再実行したときの再開始位置を次の表に示します。なお,LOB列構成基表,及びLOB列の同時再編成は,lobunld文を指定してアンロードデータファイル,及びLOBデータのアンロードデータファイルを使用する場合について説明しています。
- pdrorg実行時のオプションの指定:
-
pdrorg -k rorg
- pdrorg実行時の制御情報ファイルの指定:
-
unload文及びlobunld文
表8‒8 表の再編成時にエラーとなった場合に再実行したときの再開始位置(LOB列構成基表,及びLOB列を同時に再編成(lobunld文指定)する場合) 項番
表の再編成時の処理
エラー直前の出力メッセージ※
表のステータス
再開始位置
LOB列構成基表
LOB列
LOB属性
1
LOB列構成基表のアンロード
アンロード開始
712,732
−
−
−
項番1
2
アンロード完了
714,734
rc=8
−
−
−
項番1
rc=0
未かつR
未かつR
未かつR
改竄防止表の場合:
項番3
R
R
R
改竄防止表でない場合:
項番1
3
LOB列構成基表へのリロード
データ削除開始
出力されません。
未かつR
未かつR
未かつR
改竄防止表の場合:
項番3
R
R
R
改竄防止表でない場合:
項番1
4
データ削除完了
721
未かつR
未かつR
未かつR
項番5
5
リロード開始
712,732
未かつR
未かつR
未かつR
項番5
6
リロード完了
714,734
rc=8
未かつR
未かつR
未かつR
項番5
rc=0
R
R
R
インデクスが定義されていて,かつ-i cの場合:
項番7
上記以外の場合:
項番1
7
インデクスの一括作成
インデクスのアンロード開始(再開始時だけ)
725
R
R
R
項番7
8
インデクスの一括作成開始
715
R
R
R
項番7
9
インデクスの一括作成完了
716
R
R
R
作成されていないインデクスがある場合:
項番7
上記以外の場合:
項番10
10
LOB列のアンロード
アンロード開始
712,732
R
R
R
項番10
11
アンロード完了
714,734
rc=8
R
R
R
項番10
rc=0
R
未かつR
R
改竄防止表の場合:
項番12
R
R
R
改竄防止表でない場合:
項番10
12
LOB列へのリロード
データ削除開始
出力されません。
R
未かつR
R
改竄防止表の場合:
項番12
R
R
R
改竄防止表でない場合:
項番10
13
データ削除完了
721
R
未かつR
R
項番14
14
リロード開始
712,732
R
未かつR
R
項番14
15
リロード完了
714,734
rc=8
R
未かつR
R
項番14
rc=0
−
−
−
項番1
- (凡例)
-
未:データ未完状態
R:再編成中
rc:リターンコード
−:通常の状態(再編成前の状態,又は再編成後の状態)
- 注※
-
メッセージは省略して表記しています。例えば,712はKFPL00712-I,732はKFPL00732-Iとなります。
(c) LOB列だけの再編成をする場合
表の再編成時にエラーとなった場合に再実行したときの再開始位置を次の表に示します。
- pdrorg実行時のオプションの指定:
-
pdrorg -k rorg
- pdrorg実行時の制御情報ファイルの指定:
-
lobunld文
表8‒9 表の再編成時にエラーとなった場合に再実行したときの再開始位置(LOB列だけを再編成する場合) 項番
表の再編成時の処理
エラー直前の出力メッセージ※
表のステータス
再開始位置
LOB列構成基表
LOB列
LOB属性
1
LOB列のアンロード
アンロード開始
712,732
−
−
−
項番1
2
アンロード完了
714,734
rc=8
−
−
−
項番1
rc=0
−
未かつR
−
改竄防止表の場合:
項番3
−
R
−
改竄防止表でない場合:
項番1
3
LOB列へのリロード
データ削除開始
出力されません。
−
未かつR
−
改竄防止表の場合:
項番3
−
R
−
改竄防止表でない場合:
項番1
4
データ削除完了
721
−
未かつR
−
項番5
5
リロード開始
712,732
−
未かつR
−
項番5
6
リロード完了
714,734
rc=8
−
未かつR
−
項番5
rc=0
−
−
−
項番1
- (凡例)
-
未:データ未完状態
R:再編成中
rc:リターンコード
−:通常の状態(再編成前の状態,又は再編成後の状態)
- 注※
-
メッセージは省略して表記しています。例えば,712はKFPL00712-I,732はKFPL00732-Iとなります。
(d) スキーマ単位の再編成をする場合
表の再編成時にエラーとなった場合に再実行したときの再開始位置を次の表に示します。
- pdrorg実行時のオプションの指定:
-
pdrorg -k rorg -t all
表8‒10 表の再編成時にエラーとなった場合に再実行したときの再開始位置(スキーマ単位の再編成をする場合) 項番
表の再編成時の処理
契機
再開始位置
1
アンロード
アンロード中にエラーとなったとき
項番1
2
リロード
KFPL00722-Iメッセージ出力以降にエラーとなったとき
項番2
(e) サーバごとに表の再編成(-gなし)をする場合(HiRDB/パラレルサーバ限定)
- pdrorg実行時のオプションの指定:
-
pdrorg -k rorg
- pdrorg実行時の制御情報ファイルの指定:
-
unload文だけ,lobunld文だけ,又はunload文及びlobunld文
HiRDB/パラレルサーバで,サーバ間分割表に対する表の再編成時のリロード処理でエラーとなったときは,制御情報ファイルのunload文及びlobunld文で指定したサーバごとに(a)〜(c)の再開始位置から再実行します。
(2) データ未完状態の表に対するコマンド及びSQLの実行可否
表の再編成時のリロード処理でエラーとなった場合,又は改竄防止表の再編成時にエラーなどによって再編成が完了していない場合,処理対象RDエリアは「データ未完状態」となります。この場合,コマンド及びSQLの実行が一部制限されます。
データ未完状態の表に対するユティリティの実行可否と運用コマンドの実行可否とSQLの実行可否を次の表に示します。
ユティリティ名 |
機能 |
表のステータス |
|||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
基:− |
基:未 |
基:− |
基:− |
基:未 |
基:未 |
基:− |
基:未 |
||||
属:− |
属:− |
属:未 |
属:− |
属:未 |
属:− |
属:未 |
属:未 |
||||
L:− |
L:− |
L:− |
L:未 |
L:− |
L:未 |
L:未 |
L:未 |
||||
pdload |
LOB列構成基表へのデータロード |
-dあり |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
|
-dなし |
○ |
× |
× |
× |
× |
× |
× |
× |
|||
LOB列へのデータロード |
○ |
× |
× |
× |
× |
× |
× |
× |
|||
LOB列構成基表,及びLOB列への同時データロード |
-dあり |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
||
-dなし |
○ |
× |
× |
× |
× |
× |
× |
× |
|||
pdrorg |
表の再編成(-k rorg) |
-jあり |
unload文 |
○ |
△ |
△ |
△ |
△ |
△ |
△ |
△ |
-jなし |
unload文 |
○ |
△ |
△ |
△ |
△ |
△ |
△ |
△ |
||
lobunld文 |
○ |
△ |
△ |
△ |
△ |
△ |
△ |
△ |
|||
unload文及びlobunld文 |
○ |
△ |
△ |
△ |
△ |
△ |
△ |
△ |
|||
表のアンロード(-k unld) |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
|||
表へのリロード(-k reld) |
-jあり |
unload文 |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
|
-jなし |
unload文 |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
||
lobunld文 |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
|||
unload文及びlobunld文 |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
|||
インデクスの一括作成(-k ixmk) |
B-treeインデクス |
○ |
× |
× |
× |
× |
× |
× |
× |
||
プラグインインデクス |
○ |
× |
× |
× |
× |
× |
× |
× |
|||
インデクスの再作成(-k ixrc) |
B-treeインデクス |
○ |
× |
× |
× |
× |
× |
× |
× |
||
プラグインインデクス |
○ |
× |
× |
× |
× |
× |
× |
× |
|||
インデクスの再編成(-k ixor) |
○ |
× |
× |
× |
× |
× |
× |
× |
|||
pdrbal |
○ |
× |
× |
× |
× |
× |
× |
× |
|||
上記以外のユティリティ |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
- (凡例)
-
基:LOB列構成基表が格納されているRDエリア
属:LOB属性が格納されているRDエリア
L:LOB列が格納されているRDエリア
未:データ未完状態
−:通常の状態(再編成前の状態,又は再編成後の状態)
○:実行できます。
△:オプション,及び制御情報ファイルを変更しない再実行はできます。オプション,及び制御情報ファイルを変更して再実行する場合は,実行エラーとなります。
×:実行できません。
表8‒12 データ未完状態の表に対する運用コマンドの実行可否 運用コマンド名
条件
表のステータス
基:−
基:未
基:−
基:−
基:未
基:未
基:−
基:未
属:−
属:−
属:未
属:−
属:未
属:−
属:未
属:未
L:−
L:−
L:−
L:未
L:−
L:未
L:未
L:未
pdrels
改竄防止表を格納するRDエリア
基
○
×
○
○
×
×
○
×
属
○
○
×
○
×
○
×
×
L
○
○
○
×
○
×
×
×
上記以外のRDエリア
○
○
○
○
○
○
○
○
上記以外の運用コマンド
○
○
○
○
○
○
○
○
- (凡例)
-
基:LOB列構成基表が格納されているRDエリア
属:LOB属性が格納されているRDエリア
L:LOB列が格納されているRDエリア
未:データ未完状態
−:通常の状態(再編成前の状態,又は再編成後の状態)
○:実行できます。
×:実行できません。
表8‒13 データ未完状態の表に対するSQLの実行可否 SQL
表のステータス
基:−
基:未
基:−
基:−
基:未
基:未
基:−
基:未
属:−
属:−
属:未
属:−
属:未
属:−
属:未
属:未
L:−
L:−
L:−
L:未
L:−
L:未
L:未
L:未
SELECT文
○
○
△
△
△
△
△
△
UPDATE文
○
○
△
△
△
△
△
△
INSERT文
○
○
△
△
△
△
△
△
DELETE文
○
○
△
△
△
△
△
△
上記以外のSQL
○
○
○
○
○
○
○
○
- (凡例)
-
基:LOB列構成基表が格納されているRDエリア
属:LOB属性が格納されているRDエリア
L:LOB列が格納されているRDエリア
未:データ未完状態
−:通常の状態(再編成前の状態,又は再編成後の状態)
○:実行できます。
△:LOB列又はLOB属性の抽象データ型列を操作する場合,操作対象となるLOB列格納RDエリア又はLOB属性格納RDエリアがデータ未完状態のときは実行できません。
(3) データ未完状態の解除契機
データ未完状態は,次の処理をしたときに解除されます。
-
PURGE TABLE文を実行した場合
-
pdmodでRDエリアの再初期化をした場合
-
表の再編成(-k rorg)でoption文にtblstatus=clearを指定して再実行し,pdrorgが正常終了した場合
-
表の再編成(-k rorg)を再実行し,pdrorgが正常終了した場合
-
表へのリロード(-k reld)を実行し,pdrorgが正常終了した場合
-
pdload(-d指定)を実行した場合
(4) 注意事項
-
次の場合は,表の再編成(-k rorg)を再実行しても処理が再開されません。この場合,表へのリロード(-k reld)をするか,又はバックアップからの回復をしてください。
-
ログレスモード(-l n指定)の場合
-
オプション,及び制御情報ファイルの指定を変更した場合(-bオプション,及びoption文のtblstatusオペランドを除く)
-
再実行する前に,該当する表に対して次の操作をした場合(この場合,途中の処理からの再開はしないでアンロード処理から行います)
・-d指定のpdloadの実行
・表の再編成前に取得したバックアップからRDエリアを回復
・表へのリロード(-k reld)の実行
・pdmodでのRDエリアの再初期化
・PURGE TABLE文の実行
-
-
該当する表の再編成が完了するまで,他ユーザからのpdrorgは実行しないでください(表の再編成の再実行と,通常の表の再編成,表へのリロードなどの同時実行はしないでください)。
-
インデクスが定義されている表の再編成時,インデクス更新モード(-i s)以外で再実行すると,インデクス情報ファイルが残ることがあります。この場合,表の再編成が完了した後にインデクス情報ファイルを削除してください。
-
スキーマ単位の再編成を再実行する場合,スキーマ内の表を格納しているRDエリアをpdholdコマンドで閉塞するようにしてください(UAPが再編成中の表をアクセスして待ち状態にならないようにするため,及びUAPで表を更新しないようにするため)。また,スキーマ単位の再編成が完了するまでは,該当するスキーマへの表定義(CREATE TABLE),及び表削除(DROP TABLE)はしないでください。
-
-rオプションを指定して,かつ-bオプションに非分割キーインデクスを指定して再実行する場合,再開始位置がLOB列構成基表のアンロード,又はLOB列のアンロードとなるときは,再開始できません。この場合,-bオプションを削除して再実行するか,又は表へのリロード(-k reld)を実行してください。
-
インデクスが定義されている表の再編成(-k rorg)でインデクスの一括作成中に異常終了した場合,インデクス一括作成(-k ixmk)を実行して再編成を完了させると,データ未完状態が解除されません。このような運用をした場合,表の再編成(-k rorg)でoption文のtblstatusオペランドにclearを指定してからpdrorgを実行してデータ未完状態を解除してください。