IBM i 技術情報|SAVLIBの活動状態保管の機能について

2024/05/09IBM i技術情報

鈴木 由臣

株式会社クレスコ・ジェイキューブ
デジタルソリューションセンター

定期的にIBM iの技術情報についてご紹介をしていきます。
今回は、ライブラリー保管コマンド(SAVLIB)の活動状態保管の機能についてご説明します。

夜間バッチ処理などでデータのバックアップを取得する時に、業務を停止している方も多いと思います。しかし24時間稼働しているようなシステムでは業務停止できるタイミングがあまりなく、バックアップを取得できずに困っていないでしょうか。

今回は、データ更新を伴う業務プログラムが稼働中でも、業務を停止せずにバックアップする方法をご案内します。この方法を使用すれば、バックアップ中に業務プログラムが複数のライブラリーにまたがってデータを更新していても、バックアップ対象のデータを「ある一時点のタイミングでデータ一貫性を保持する(チェックポイントと言います)」バックアップが行えます。

具体的には、バックアップ中に業務プログラムがALIBの物理ファイルPF01とBLIBの物理ファイルPF02に同時にデータ更新をした場合に、ALIBのPF01とBLIBのPF02ともデータ更新後のデータがバックアップされます。PF01はデータ更新後のバックアップで、PF02はデータ更新前のバックアップというように、PF01とPF02でデータ一貫性のない状態でバックアップが取られることはありません。

では、実際のバックアップ例です。

IBM iでライブラリーを保管するコマンドとしてSAVLIBコマンドをご存じだと思います。SAVLIBコマンドの保管先装置を「テープ装置(TAP01など)」とし「活動状態保管」に*SYNCLIBを指定すれば、複数のライブラリーを同時に保管する時にデータ一貫性(チェックポイント)を保って保管可能です。

【例】SAVLIB LIB(PXDLIB PXELIB) DEV(TAP01) SAVACT(*SYNCLIB)

また、SAVLIBコマンドは保管先装置として「テープ装置」のほかに「保管ファイル(*SAVF)」を指定してライブラリーを保管することも可能です。

【例】SAVLIB LIB(PXDLIB) DEV(*SAVF) SAVF(QGPL/PXDLIBSAVF)

ただし、保管先装置として「保管ファイル(*SAVF)」を指定した場合は、1回のSAVLIBコマンドで保管対象のライブラリーを1つしか指定できません。そのため、複数のライブラリーを保管したい場合は、ライブラリーの数だけSAVLIBコマンドを実行する必要があります。複数ライブラリーを同時にデータ一貫性(チェックポイント)を保ちつつ保管することはできません。

この問題を解決するために、OS標準のSTRSAVSYNCコマンドが用意されています。このコマンドを使うと、複数のSAVLIBコマンドを実行した際にデータ一貫性を保ちつつ保管可能です。利用の仕方は、最初にSTRSAVSYNCコマンドを実行した後に、複数のSAVLIBコマンドを実行します。

保管処理の一連の流れの例をご紹介します。

各コマンドで共通の同期ID(SAV01)を指定することでデータ一貫性を実現します。
※同期IDは任意の値を設定します。

① STRSAVSYNC SYNCID(SAV01) NUMSYNC(2)
※「保管待機時間の開始=600(秒)」の間に「同期ID=SAV01」を指定した保管コマンドを開始する必要があります。

②SBMJOB CMD(SAVLIB LIB(PXDLIB) DEV(*SAVF) SAVF(QGPL/PXDLIBSAVF) SAVACT(*SYNCLIB) SYNCID(SAV01))


③SBMJOB CMD(SAVLIB LIB(PXELIB) DEV(*SAVF) SAVF(QGPL/PXELIBSAVF) SAVACT(*SYNCLIB) SYNCID(SAV01))

上記のようにSTRSAVSYNCコマンドと各SAVLIBコマンドでSYNCID(SAV01)を共通で指定することにより、複数のSAVLIBコマンドがデータ一貫性を保って保管することが可能です。

なお、今回はSAVLIBコマンドを例に挙げてご紹介しましたが、SAVOBJコマンドや「IFS・オブジェクト」を保管するSAVコマンドでも同様に、複数のコマンドでデータ一貫性を保持しつつ保管可能です。

・SAVOBJコマンド
SBMJOB CMD(SAVOBJ OBJ(*ALL) LIB(PKDLIB) DEV(*SAVF) SAVF(QGPL/PXDLIBSAVF) SAVACT(*SYNCLIB) SYNCID(SAV01))

・SAVコマンド
SBMJOB CMD(SAV DEV(‘/QSYS.LIB/QGPL.LIB/HOMESAVF.FILE’) OBJ((‘/HOME’)) SAVACT(*SYNC) SYNCID(SAV01))

お知らせ・新着コンテンツ一覧にもどる

ホーム > IBM i 技術情報|SAVLIBの活動状態保管の機能について

CONTACT US

メールでのお問い合わせ