AS400 / IBM i の保守では、SAVLIBやSAVOBJで退避したものを、RSTLIBやRSTOBJで戻す場面があります。保存系コマンドは「もしものための準備」ですが、復元系コマンドは実際に環境へ戻す操作です。ここを間違えると、既存オブジェクトやデータに影響する可能性があります。
この記事では、RSTLIB、RSTOBJ、SAVFからの復元で初心者が確認すべきポイントを、現場目線で整理します。結論から言うと、慣れるまではいきなり本番ライブラリへ戻さず、まずQTEMPや検証用ライブラリへ復元して中身を確認するのが安全です。
復元系コマンドで一番怖いのは復元先を間違えること
保存系コマンドは、対象を間違えると「必要なものが保存されていない」という事故になります。一方で復元系コマンドは、戻す場所を間違えると既存オブジェクトや既存データに影響します。こちらの方が怖いです。
特に本番環境で、意図しないライブラリへ復元したり、既存オブジェクトを上書きしたりすると、何が起こるか読み切れません。販売管理システムのように、受注、出荷、売上、請求、在庫などがつながっている環境では、復元先の確認ミスが大きな業務影響につながる可能性があります。
現場メモ: 復元系コマンドに慣れるまでは、まずQTEMPへ復元する考え方を持つのが安全です。本番ライブラリや既存ライブラリへ直接戻す前に、何が入っているか、どこへ戻るか、上書きが発生しないかを確認します。
RSTLIBとは
RSTLIBは、SAVLIBで保管したライブラリを復元するためのコマンドです。ライブラリ単位で保存したものを戻す時に使います。
RSTLIB SAVLIB(TESTLIB) DEV(*SAVF) SAVF(BKUPLIB/TESTLIBSAV) RSTLIB(QTEMP)
上の例は、SAVFに保管されているTESTLIBをQTEMPへ復元するイメージです。実際のパラメータは現場ルールや環境によって変わりますが、初心者にまず覚えてほしいのは「復元元」と「復元先」を分けて見ることです。
RSTLIBで確認すること
- どのSAVFから戻すのか
- 保存されている元ライブラリ名は何か
- 復元先ライブラリはどこか
- 既存ライブラリや既存オブジェクトと衝突しないか
- 本番ライブラリへ直接戻していないか
RSTOBJとは
RSTOBJは、SAVOBJで保管したオブジェクトを復元するためのコマンドです。ライブラリ丸ごとではなく、プログラム、ファイル、コマンドなど、必要なオブジェクト単位で戻す時に使います。
RSTOBJ OBJ(TEST001R TESTFILE) SAVLIB(TESTLIB) DEV(*SAVF) SAVF(BKUPLIB/TESTSAV) RSTLIB(QTEMP)
RSTOBJでも、見るべきポイントはRSTLIBと同じです。どのSAVFから、どのオブジェクトを、どこへ戻すのかを確認します。特にプログラムや物理ファイルを戻す時は、既存オブジェクトとの関係を必ず確認します。
RSTOBJで危ない場面
| 確認不足 | 起こりうる問題 |
|---|---|
| 復元先ライブラリを間違える | 意図しない環境へオブジェクトが戻る |
| 既存オブジェクトの有無を見ない | 上書きや衝突のリスクがある |
| 権限や所有者を確認しない | 復元後に実行できない、参照できない可能性がある |
| ライブラリリストを確認しない | 想定と違うオブジェクトを参照する可能性がある |
SAVFから復元する流れ
SAVFは、AS400 / IBM i の保管用ファイルです。イメージとしては、複数のオブジェクトを1つの保管ファイルにまとめているものです。別マシンに復元する場合は、SAVFを転送してからRSTLIBやRSTOBJで復元する流れになります。
- 復元対象のSAVFを確認する
- 必要に応じてSAVFを別マシンへFTP転送する
- DSPSAVFなどでSAVFの中身を確認する
- まずQTEMPや検証用ライブラリへ復元する
- 復元されたオブジェクト、属性、権限、所有者を確認する
- 本番へ反映する必要がある場合は、手順書とレビューを通してから実施する
保存しただけで安心しないのと同じで、復元できることも確認が必要です。SAVFの中身を5番表示やDSPSAVFで確認し、必要なら検証用ライブラリへ戻して、中身が想定通りか確認します。
本番に直接戻さない
復元系コマンドで初心者に強く言いたいのは、本番ライブラリへいきなり戻さないことです。特に慣れていないうちは、QTEMPや検証用ライブラリに戻してから確認する方が安全です。
QTEMPはジョブ単位の一時ライブラリです。確認用に一時的に戻して中身を見る用途では使いやすいです。ただし、ジョブが終われば消える性質があるため、恒久的に残す目的では使いません。確認用として使う、という位置づけです。
既存オブジェクト上書きの注意
復元時に怖いのは、既存オブジェクトへの影響です。プログラムなら古いものに戻ってしまう可能性があります。ファイルならデータや定義に影響する可能性があります。特に本番DBを含むライブラリに対して、安易に復元するのは危険です。
復元先に同名オブジェクトがある場合は、上書きの有無、置き換え条件、復元後の権限、所有者、実行環境を確認します。ここを見ずに作業すると、復元は成功してもアプリケーションが動かない、別のプログラムを参照する、権限不足でエラーになる、といった問題が起きます。
権限・所有者・ライブラリリストの注意
復元したオブジェクトは、戻しただけで終わりではありません。権限、所有者、ライブラリリストとの関係も確認します。AS400では、同じ名前のオブジェクトが複数ライブラリに存在することがあります。ライブラリリストの上位にあるオブジェクトが参照されるため、復元した場所と実行時に参照される場所が一致しているかが重要です。
| 確認項目 | 見る理由 |
|---|---|
| 復元先ライブラリ | 意図した場所へ戻っているか確認する |
| 同名オブジェクト | 既存オブジェクトへの影響を確認する |
| 所有者 | 復元後の運用・実行に影響することがある |
| 権限 | プログラム実行やファイル参照ができるか確認する |
| ライブラリリスト | 実行時にどのオブジェクトを参照するか確認する |
データリカバリー時に復元する前の確認
データリカバリーで復元を使う場合は、作業前の確認が特に重要です。戻す対象がプログラムなのか、ファイルなのか、データなのかで影響範囲が変わります。販売管理システムでは、入力系データが後続処理の元ネタになるため、安易な復元は二次被害につながります。
- 何を戻すのか
- どの時点のSAVFから戻すのか
- 復元先はどこか
- 既存データや既存オブジェクトに影響しないか
- 復元後にどの処理を確認するのか
- 作業手順はメンバーにレビューされているか
若手がやりがちな危険操作
復元系コマンドで若手がやりがちな危険操作は、やってはいけない場所へ復元することです。本人は確認用のつもりでも、復元先を間違えて本番ライブラリや共有ライブラリに戻してしまうと危険です。
慣れるまでは、QTEMPに戻す、検証用ライブラリに戻す、F4でパラメータを確認する、手順をレビューしてもらう。このあたりを徹底した方がいいです。復元系コマンドは、成功したかどうかよりも「どこへ戻したか」が大事です。
復元作業前チェックリスト
| チェック | 確認内容 |
|---|---|
| 対象 | 戻すライブラリ、オブジェクト、ファイルを明確にしたか |
| SAVF | 対象のSAVFが正しいか、DSPSAVF等で確認したか |
| 復元先 | QTEMPまたは検証用ライブラリになっているか |
| 上書き | 同名オブジェクトが存在しないか、置き換え条件を確認したか |
| 権限 | 復元後に必要な権限・所有者を確認するか |
| 影響範囲 | 後続処理や参照元に影響しないか |
| レビュー | 作業手順をメンバーに見てもらったか |
まとめ
RSTLIBやRSTOBJは、SAVLIBやSAVOBJで保管したものを戻すための重要なコマンドです。ただし、復元は環境へ実際に戻す操作なので、保存よりも事故につながりやすい面があります。
初心者がまず守るべきことは、復元先を確認すること、本番へ直接戻さないこと、慣れるまではQTEMPや検証用ライブラリへ戻して中身を確認することです。保存したから安心ではなく、戻せること、戻した後に想定通り使えることまで確認して、はじめて安全な復元作業になります。
保存系コマンドの注意点は、AS400の保存系コマンドの注意点で整理しています。データリカバリー全体の考え方は、AS400のデータリカバリーで焦らないための確認手順もあわせて確認してください。