タイガー!タイガー!じれったいぞー!(SE編)

AS400,WAS,GlassFish,Java,JavaEE,JSF等の開発における日々の気づきをまとめたブログ(備忘録)。

【AS400】SAVFからのライブラリー復元

概要

今度は、SAVFをFTPでAS400へアップロードする方法にて、AS400に保管されたSAVFを使って、保管したライブラリーを実際に復元します。
SAVF自体は、ただの保管ファイルですので、中身を復元させる必要があります。当たり前ですね。

コマンド例

 RSTLIB SAVLIB(保管ライブラリー名) DEV(*SAVF) SAVF(SAVFファイル名) 
        MBROPT(*ALL) ALWOBJDIF(*ALL) 

オプション

MBROPT「DBメンバー・オプション」
内容
*MATCH 保管されたメンバーは、それらの存在しているメンバーのリストが現行システム・バージョンのリストとメンバーごとに一致している場合には復元される。オプションALWOBJDIFで *ALL が指定されている場合は、無効となる
*ALL SAVF内のすべてのメンバーが復元される
*NEW AS400ライブラリーに存在していないSAVF内の新しいメンバーのみが復元される
*OLD AS400ライブラリーに存在しているメンバーのみが復元される
ALWOBJDIF「オブジェクト差異可能」
内容
*ALL MBROPTで指定した相違のすべてが復元操作で許可される

基本的に、MBROPT(ALL) ALWOBJDIF(ALL) のオプション指定で、正常に復元されると思います。

ライブラリーの中身を入れ替える場合

  • 処理の流れ
    1. SAVF確認
    2. 対象ライブラリー消去(任意)
    3. RSTLIBコマンド実行

1.SAVF確認

DSPSAVF FILE(TIGERSAV/TIGERSAVF2)
                         保管されたオブジェクトの表示                           
                                                                                
 保管されたライブラリー  . . :   TIGERDB                                        
                                                                                
 オプションを入力して,実行キーを押してください。                               
   5= 表示                                                                      
                                                                                
 OPT  オブジェクト     タイプ    属性        所有者        サイズ (K)   データ        
      TIGERDB     *LIB      PROD        QSECOFR             192  YES 
      EMPLOYEES   *FILE     PF          *******              76  YES            
      MSHAIN      *FILE     PF          *******              68  YES            
      MSHAINL02   *FILE     LF          *******              64  YES            
      MSHAINL01   *FILE     LF          *******              60  YES            
                                                                         
  • 使用するSAVFがSAVLIBコマンドにて保管されているかを確認します。
  • タイプ *LIB が存在していれば、SAVLIBコマンドにて保管されたSAVFであることがわかります。
  • SAVOBJコマンドにて作成されたSAVFである場合には、RSTLIBコマンド実行時に失敗してしまいます。

2.対象ライブラリー消去(任意)

CLRLIB TIGERDB 
  • 必要に応じ、リストア処理前に復元先のライブラリーを空にしておきます。
  • SAVFに存在せず、復元先に残っているオブジェクトは、MBROPT(ALL) ALWOBJDIF(ALL)でリストア処理を行っても、消去されません。

3.RSTLIBコマンド実行

 RSTLIB SAVLIB(TIGERDB) DEV(*SAVF) SAVF(TIGERSAV/TIGDBSAVF2) 
        MBROPT(*ALL) ALWOBJDIF(*ALL) 

※RSTLIBオプションにて、指定したライブラリーへ復元させることも可能です。

 RSTLIB SAVLIB(TIGERDB) DEV(*SAVF) SAVF(TIGERSAV/TIGDBSAVF2) 
        MBROPT(*ALL) ALWOBJDIF(*ALL) RSTLIB(TIGERDB2)
  • RSTLIBオプションの初期値は、SAVLIBの値となるため、バックアップしたライブラリー名にて復元されますが、一度別ライブラリーに展開して内容を確認する場合などで効果的かと思われます。