AdvancedCopy Managerで提供するDB2用サンプルシェルスクリプトは、次のとおりです。サンプルシェルスクリプトは、/etc/opt/FJSVswsts/sampディレクトリ配下に格納されています。
項番 | 種別 | シェルスクリプト名 | 対応業務名 | 対象資源種別 |
---|---|---|---|---|
1 | DB情報の収集 | swst_db2_iv | DB2業務 | - |
2 | バックアップ | swst_db2_vg_bk | DB2業務 | ローデバイス |
注意
データベースがファイルシステム上に存在する場合は、そのデータベースを使用する業務の起動中にバックアップを行うことはできません。
[機能概要]
swst_db2_ivは、DB2データベースの情報を出力します。
出力するファイル名と内容は次のとおりです。
spdata.lst:テーブルスペース名と格納先の一覧
spdata.srt:spdata.lstの内容を格納先をキーに並べ替えたもの
上記ファイルは、バックアップを行うシェルスクリプトを作成する際の参考資料として使用します。
[起動方法]
swst_db2_iv
[使用例]
# swst_db2_iv ./swst_ db2_iv completed.
[結果例]
spdata.lst TABLESPACE-NAME DEVICE-NAME -------------------- -------------------------------------------------- SYSCATSPACE /work/ACM_DB2/db2inst1/database/db2inst1/NODE0000/SQL00001/SQLT0000.0 TEMPSPACE1 /work/ACM_DB2/db2inst1/database/db2inst1/NODE0000/SQL00001/SQLT0001.0 USERSPACE1 /work/ACM_DB2/db2inst1/database/db2inst1/NODE0000/SQL00001/SQLT0002.0 ACMTS34 /dev/rlvol34001 SYSTOOLSPACE /work/ACM_DB2/db2inst1/database/db2inst1/NODE0000/SQL00001/SYSTOOLSPACE
[処理概要]
#!/bin/sh reterr() --- エラーメッセージを出力、エラー復帰。 sqldata() { db2 list tablespaces -------------------------------------- テーブルスペース名称とテーブルスペースIDを取得 db2 list tablespace containers for <テーブルスペースID> --- デバイス名称を取得 } # main() # 0) 環境変数の設定 PATH=$PATH:/usr/bin:/usr/sbin # 1) DB2のテーブルスペース情報の取得 db2 connect to acmtest1 --- DB2にコネクト sqldata db2 terminate ------------- DB2切断 exit 0
[機能概要]
swst_db2_vg_bkは、ローデバイス上に存在するDB2データベースを使用した業務データをAdvancedCopy Managerを使用してバックアップします。
業務データは、利用者が用意する作業用ディスクにコピーされます。
本シェルスクリプトは、「C.2.1 バックアップ」の処理手順2~4の範囲に対応します。
[起動方法]
swst_db2_vg_bk {-a | -i} <volume group name>
[オペランドの説明]
-a : DB2データベースを使用した業務が起動中の場合に指定し、DB2 ServerのデータベースI/Oをサスペンド状態にします。 -i : DB2データベースを使用した業務が停止中の場合に指定し、DB2 ServerのデータベースI/Oをサスペンド状態にしません。 volume group name : バックアップ対象のボリュームグループ名を指定します。
[swst_db2_vg_bkの使用例]
DB2データベースが配置されている/dev/sdb0を業務起動中にバックアップします。 # swst_db2_vg_bk -a /dev/vg01 swst_db2_vg_bk completed. (/dev/vg01 -> /dev/vg02 at 23:01 on 2005.10.01 )
[swst_db2_vg_bkの処理概要]
#!/bin/sh usage() --- コマンド構文を出力、エラー復帰。 reterr() --- エラーメッセージを出力、エラー復帰。 sqlbegin() { db2 set write suspend for db ---DB2のI/Oをサスペンド状態にします。 sync } sqlend() { db2 set write resume for db ----DB2のI/Oを再開します。 } getbd() --- AdvancedCopy Managerのバックアップ(コピー)先デバイスの取り出し。 getdate() --- AdvancedCopy Managerのバックアップ(コピー)日付の取り出し。 gettime() --- AdvancedCopy Managerのバックアップ(コピー)時刻の取り出し。 # main() パラメーターの解析とローデバイスのチェック # 0) 環境変数の設定 PATH=$PATH:/usr/bin:/usr/sbin:/opt/FJSVswsts/bin # 1) DB2のサスペンド if [ "-a"オペランドの指定 ] then db2 connect to <データベース名称> sqlbegin()の呼び出し -----DB2のI/Oをサスペンド。 fi # 2) AdvancedCopy Managerのコマンドでディスクのバックアップ(コピー) swstbackup $SRC --- ディスクをコピーします。 # 3) DB2の再開 if [ "-a"オペランドの指定 ] then sqlend()の呼び出し --- DB2データベースI/Oを再開します。 db2 terminate --------データベース切断 fi # 4) AdvancedCopy Managerのバックアップ(コピー)先の入手 DSTBLK="`getbd $SRC`" --- バックアップボリュームを取り出します。 BKDATE="`getdate $SRC`" BKTIME="`gettime $SRC`" exit 0