AS400 / IBM i の本番作業では、修正前やデータリカバリー前に保存・退避を取ることがあります。代表的なのが SAVLIB、SAVOBJ、SAVF です。どれも便利ですが、本番環境で使う時はかなり注意が必要です。特に怖いのは、保存対象をロックしてしまい、本番アプリケーションに影響を出すことです。
このページでは、AS400の保存・退避系コマンドを本番で使う前に見ることを、現場目線で整理します。単に「保存するコマンドです」という説明ではなく、ロック、保存先、SAVF名、DSPSAVFでの確認、復元確認まで含めてまとめます。
現場目線の結論 本番でSAVLIBやSAVOBJを使う時は、対象の利用状況と必要な整合性に合わせてSAVACTとSAVACTWAITを設計し、チェックポイント確立時のロックと業務影響を確認します。保存後はジョブログとSAVFの中身を確認し、必要なら検証環境で復元できることまで確かめます。
SAVLIBとは
SAVLIB は、指定したライブラリを丸ごと保管するコマンドです。ライブラリ単位で退避を取りたい時に使います。本番作業前に、対象ライブラリ全体を保存しておきたい場合などに使われます。
SAVLIB LIB(TESTLIB) DEV(*SAVF) SAVF(BKUPLIB/TESTLIBSAV)
ライブラリ丸ごとを保存できるため便利ですが、対象が大きくなりやすく、保存時間やロックの影響にも注意が必要です。本番で使う場合は、対象ライブラリが本当に正しいか、保存先SAVFが正しいか、ロックの指定がどうなっているかを必ず確認します。
SAVOBJとは
SAVOBJ は、ライブラリ内のオブジェクトを選択して保管するコマンドです。ライブラリ全体ではなく、特定のファイル、プログラム、オブジェクトだけ退避したい時に使います。修正対象のプログラムだけ保存する、特定ファイルだけ作業前退避する、といった使い方です。
SAVOBJ OBJ(TEST001R TESTFILE) LIB(TESTLIB) DEV(*SAVF) SAVF(BKUPLIB/TESTSAV)
対象を絞れるため使いやすいですが、オブジェクト名やライブラリ名を間違えると、保存されるべきものが保存されません。この場合、必要な退避ができていないため、対象の再確認が必要です。本番作業前の退避なら、対象オブジェクト、対象ライブラリ、保存先をF4画面で確認します。
SAVFとは
SAVF は、AS400の保管用ファイルです。イメージとしてはZIPファイルに近いです。たとえばAとBのファイルを保管すると、1つのSAVFにまとめて保管されます。SAVLIBやSAVOBJの保存先として使うことが多いです。
CRTSAVF FILE(BKUPLIB/TESTSAV) SAVOBJ OBJ(TEST001R) LIB(TESTLIB) DEV(*SAVF) SAVF(BKUPLIB/TESTSAV)
SAVFは便利ですが、保存先を間違えると他の人の退避ファイルを上書きしてしまう可能性があります。SAVF名、保存先ライブラリ、作業日、対象システムが分かる命名にして、既存SAVFを使い回す時は特に注意します。
SAVCHGOBJはどう扱うか
SAVCHGOBJ は変更されたオブジェクトを保存するコマンドですが、自分は現場で使ったことがありません。この記事では、実務でよく使う SAVLIB、SAVOBJ、SAVF を中心に扱います。使ったことがないコマンドを、分かったふりで本番作業に使うのは危険です。
本番業務への影響と保存整合性を確認する
本番で保存前に確認するのは、対象オブジェクトの利用状況、必要な保存整合性、実行時間帯です。SAVACT は単純な「ロックする/しない」の指定ではなく、活動中のオブジェクトをどの同期単位で保存するかを決めます。あわせて SAVACTWAIT、コミット境界、ジャーナル、チェックポイント確立時のロックを確認します。
SAVACT(*NO) では使用中のオブジェクトが保存されない場合があり、保存処理中は更新できません。*LIB、*SYNCLIB、*SYSDFN は活動状態保管の同期単位を選べますが、チェックポイント確立時などにはロックが関係します。値だけで安全と決めず、対象コマンドと自社リリースのIBM公式資料、ジョブログで結果を確認します。
| 確認項目 | 見る理由 |
|---|---|
| SAVACT / SAVACTWAITの指定 | 必要な整合性、待機時間、チェックポイント時の業務影響を確認するため |
| 対象ライブラリ | 本番/テスト、対象環境を間違えないため |
| 対象オブジェクト | 保存すべきものが保存されているか確認するため |
| 保存先SAVF | 他人のSAVFを上書きしないため |
| 実行時間帯 | 利用者やバッチ処理への影響を避けるため |
保存系コマンドでは、保存を取ることだけに意識が向き、保存中の利用制限や整合性条件を見落とすことがあります。本番でSAV系コマンドを実行する時は、F4で指定内容を確認し、手順書と実行時間帯、対象ジョブへの影響もレビューします。
F4画面で必ず確認する
SAV系コマンドでは、必ずF4画面で確認します。コマンドを直接打って実行キーを押すのではなく、F4でパラメータを開き、対象ライブラリ、対象オブジェクト、保存先SAVF、SAVACT、出力先などを確認します。
- 保存対象のライブラリは正しいか
- 保存対象のオブジェクトは正しいか
- 保存先のライブラリとSAVF名は正しいか
- 既存SAVFを上書きしないか
- SAVACT / SAVACTWAITの指定、チェックポイント時のロック、保存整合性は適切か
- 実行タイミングが本番業務に影響しないか
対象ライブラリを間違えると、保存されるべきものが保存されません。保存先SAVFを間違えると、他の人のファイルを上書きしてしまうこともあります。どちらも復旧手順に影響するため、事前確認が必要です。
保存しただけで安心しない
保存しただけで安心してはいけません。SAVFが壊れている可能性もありますし、対象オブジェクトが入っていない可能性もあります。保存後は、SAVFを開いて中身があることを確認します。現場では5番で開いて確認する、または DSPSAVF で確認します。
DSPSAVF FILE(BKUPLIB/TESTSAV)
もっと確実に見るなら、RST系コマンドで検証用ライブラリへ復元して確認します。保存できただけでは十分ではありません。復元できることまで確認します。戻せること、必要なオブジェクトが入っていることまで見て、はじめて退避として使えます。
データリカバリー前の退避として使う場合
本番トラブルでデータリカバリーする前に、対象ファイルをSAVFへ退避することがあります。この時も、対象ファイル、対象ライブラリ、保存先、SAVACT / SAVACTWAIT、業務影響を確認します。SQL修正前の退避なら、更新前の状態に戻せることが重要です。
ただし、退避を取ることで本番アプリに影響を出してはいけません。特に販売管理システムでは、受注、出荷、在庫、売上、外部I/Fなどが動いているため、ファイルロックが発生するとアベンドにつながる可能性があります。データリカバリーの考え方は AS400データ復旧 も参考にしてください。
SAV系コマンド実行前チェックリスト
| チェック | 確認内容 |
|---|---|
| 対象 | 保存するライブラリ、オブジェクト、ファイルが正しいか |
| 環境 | 本番/テスト、システム名、ライブラリリストを確認したか |
| 保存先 | SAVFのライブラリとファイル名が正しいか |
| 上書き | 既存SAVFや他人の退避を上書きしないか |
| 整合性・ロック | SAVACT / SAVACTWAIT、チェックポイント時のロック、コミットやジャーナルの条件は適切か |
| 時間帯 | 利用者や夜間バッチに影響しないタイミングか |
| 確認 | DSPSAVFなどでSAVFの中身を確認したか |
| 復元 | 必要ならRST系で復元確認できるか |
| 共有 | 作業手順をメンバーにレビューしてもらったか |
ACCPTHの指定を切ったことが復旧の日にどう跳ね返るかは、AS400が起動しないで具体的に書いています。
CodexやAIに相談する時の注意
DSPSAVFの画面やジョブログをAIに相談する場合は、会社名、ライブラリ名、オブジェクト名、ユーザー名、取引先名、実データが写らないようにマスキングします。コマンドの意味を整理する用途に留め、本番復元の判断は社内手順と保守会社の確認を優先してください。
AS400保守で安全にAIを使う導線は、AS400保守向けCodex研修 にまとめています。
SAVFの中身確認は復元可否の入口として見る
DSPSAVFでSAVFの中身を確認するときは、オブジェクト名だけでなく、保存元ライブラリ、保存日時、オブジェクトタイプ、復元先の想定まで合わせて見ます。SAVFが存在していても、目的の世代や目的のライブラリを保存したものとは限りません。
復元作業を保守会社へ依頼する場合は、SAVF名、保存元、復元したい対象、戻したくない対象、業務停止できる時間帯を先に整理すると安全です。復元を依頼する前に、保存日時と対象オブジェクトを依頼内容に照合し、戻してはいけない更新が含まれていないかを確認してください。
復元依頼を受けた時のDSPSAVF確認例
受け取ったSAVFをそのまま復元せず、保存内容が依頼と一致するかを先に確認します。ファイル名だけでは中身の版や対象を判断できません。
| 確認点 | 確認内容 | 判断 |
|---|---|---|
| 保存内容 | 保存ライブラリ、オブジェクト名、種類、保存日時を確認する | 依頼対象以外が含まれていないかを見る |
| 復元先 | 既存オブジェクトの有無、所有者、権限、依存関係を確認する | 別ライブラリでの事前確認が必要か判断する |
| 証跡 | SAVFの受領元、サイズ、確認者、復元予定を記録する | 同名SAVFの取り違えを防ぐ |
DSPSAVFで一覧が表示できても、必要なオブジェクトが正常に復元・利用できることまでは証明できません。重要な復元では隔離した環境で試し、ジョブログと業務確認を残します。
公式情報: IBM Documentation: DSPSAVF
関連して読む記事
SAVLIB/SAVOBJ/DSPSAVFの画面例
保管系コマンドでは、対象ライブラリ、対象オブジェクト、保管ファイル、ロックに関係する指定を必ず確認します。保管後はDSPSAVFなどで中身を確認し、保存しただけで安心しないことが大切です。
関連: 復元を判断する前に、このページの「SAVFの中身確認は復元可否の入口として見る」で、保存日時、保存元、対象オブジェクト、復元先を再確認してください。
保存・退避作業を、事故を防ぐ確認順にする
SAVLIB、SAVOBJ、SAVFは便利ですが、対象、保存先、ロック、復元確認を誤ると本番影響につながります。法人向けCodex研修では、作業前確認、実行後確認、ジョブログ確認をセットにした手順として整理します。


