AdvancedCopy Managerで提供するOracle用サンプルシェルスクリプトは、次のとおりです。サンプルシェルスクリプトは、/etc/opt/FJSVswsts/sampディレクトリ配下に格納されています。
項番 | 種別 | シェルスクリプト名 | 対応業務名 | 対象資源種別 |
|---|---|---|---|---|
1 | DB情報の収集 | swst_or_iv | Oracle業務 | - |
2 | バックアップ | swst_or_vg_bk | Oracle業務 | ローデバイス |
注意
データベースがファイルシステム上に存在する場合は、そのデータベースを使用する業務の起動中にバックアップを行うことはできません。
[機能概要]
swst_or_ivは、Oracleデータベースの情報を出力します。
出力するファイル名と内容は次のとおりです。
spdata.lst:テーブルスペース名と格納先の一覧
spdata.bgn:次の形式のコマンド
tablespace テーブルスペース名 begin backup;
spdata.end:次の形式のコマンド
tablespace テーブルスペース名 end backup;
spcont.lst:Oracleデータベースの制御ファイルの情報
splog.lst:Oracleデータベースのログファイルの情報
spredolog.lst:OracleデータベースのREDOログファイルの情報
上記ファイルは、バックアップを行うシェルスクリプトを作成する際の参考資料として使用します。
[起動方法]
swst_or_iv
[使用例]
# swst_or_iv swst_or_iv completed.
[結果例]
spdata.lst
TABLESPACE-NAME DEVICE-NAME
-------------------- --------------------------------------------------
ORA10 /ora1/ora0.dbf
ORA20 /ora2/ora0.dbf
RBS /oracle/ora/oradata/rbs01.dbf
SYSTEM /oracle/ora/oradata/system01.dbf
TEMP /oracle/ora/oradata/temp01.dbf
TOOLS /oracle/ora/oradata/tools01.dbf
USERS /oracle/ora/oradata/users01.dbf
ACMTS1 /dev/rlvol36001
spdata.bgn
alter tablespace ORA10 begin backup;
alter tablespace ORA20 begin backup;
alter tablespace RBS begin backup;
alter tablespace SYSTEM begin backup;
alter tablespace TEMP begin backup;
alter tablespace TOOLS begin backup;
alter tablespace USERS begin backup;
alter tablespace ACMTS1 begin backup;
spdata.end
alter tablespace ORA10 end backup;
alter tablespace ORA20 end backup;
alter tablespace RBS end backup;
alter tablespace SYSTEM end backup;
alter tablespace TEMP end backup;
alter tablespace TOOLS end backup;
alter tablespace USERS end backup;
alter tablespace ACMTS1 end backup;
spcont.lst
NAME TYPE VALUE
----------------------------------- ------- ------------------------------
control_files 文字列 /oracle/ora/oradata/control
splog.lst
NAME TYPE VALUE
----------------------------------- ------- ------------------------------
log_archive_dest 文字列 /oracle/ora/oradata/archive
spredolog.lst
GROUP# MEMBER
---------- --------------------------------------------------------------------------------
3 /work/u01/app/oracle/oradata/acmtest1/redo03.log
2 /work/u01/app/oracle/oradata/acmtest1/redo02.log
1 /work/u01/app/oracle/oradata/acmtest1/redo01.log[処理概要]
#!/bin/sh
reterr() --- エラーメッセージを出力、エラー復帰。
sqldata()
{
sqlplus /nolog <<!
connect / as sysdba
SELECT --- Oracleのテープルスペース情報を取得します。
}
sqllog()
{
sqlplus /nolog <<!
connect / as sysdba
show --- Oracleのログ情報を取得します。
}
sqlcont()
{
sqlplus /nolog <<!
connect / as sysdba
show --- Oracleの制御情報を取得します。
}
sqlredolog()
{
sqlplus /nolog <<!
connect / as sysdba
show --- OracleのREDOログ情報を取得します。
}
# main()
# 0) 環境変数の設定
PATH=$PATH:/usr/bin:/usr/sbin:/opt/FJSVswsts/bin
# 1) Oracleのテーブルスペース情報の取得
sqldata()の呼び出し --- Oracleのテーブルスペース情報を取得します。
# 2) Oracleのログ情報の取得
sqllog()の呼び出し --- Oracleのログ情報を取得します。
# 3) Oracleの制御情報の取得
sqlcont()の呼び出し--- Oracleの制御情報を取得します。
# 4) OracleのREDOログ情報の取得
sqlredolog()の呼び出し --- OracleのREDOログ情報を取得します。
exit 0[機能概要]
swst_or_vg_bkは、ローデバイス上に存在するOracleデータベースを使用した業務データをAdvancedCopy Managerを使用してバックアップします。
業務データは、利用者が用意する作業用ディスクにコピーされます。
本シェルスクリプトは、「C.2.1 バックアップ」の処理手順2~4の範囲に対応します。
[起動方法]
swst_or_vg_bk {-a | -i} <volume group name>[オペランドの説明]
-a : Oracleデータベースを使用した業務が起動中の場合に指定し、Oracle Serverに対し、バックアップ処理の開始を宣言します。 -i : Oracleデータベースを使用した業務が停止中の場合に指定し、Oracle Server に対し、バックアップ処理の開始を宣言しません。 volume group name : バックアップ対象のボリュームグループ名を指定します。
[swst_or_vg_bkの使用例]
Oracleデータベースが配置されている/dev/vg01を業務起動中にバックアップします。 # swst_or_vg_bk -a /dev/vg01 swst_or_vg_bk completed. ( /dev/vg01 -> /dev/vg02 at 23:01 on 2005.10.01 )
[swst_or_vg_bkの処理概要]
#!/bin/sh
usage() --- コマンド構文を出力、エラー復帰。
reterr() --- エラーメッセージを出力、エラー復帰。
sqlbegin()
{
sqlplus /nolog <<!
connect / as sysdba
alter system switch logfile;
alter system flush shared_pool;
alter tablespace CCC begin backup; --- Oracleにバックアップ開始を通知します。
}
sqlend()
{
sqlplus /nolog <<!
connect / as sysdba
alter tablespace CCC end backup; --- Oracleにバックアップ停止を通知します。
}
getbd() --- AdvancedCopy Managerのバックアップ(コピー)先デバイスの取り出し。
getdate() --- AdvancedCopy Managerのバックアップ(コピー)日付の取り出し。
gettime() --- AdvancedCopy Managerのバックアップ(コピー)時刻の取り出し。
# main()
パラメーターの解析とローデバイスのチェック
# 0) 環境変数の設定
PATH=$PATH:/usr/bin:/usr/sbin:/opt/FJSVswsts/bin
# 1) Oracleへのバックアップ開始の通知
if [ "-a"オペランドの指定 ]
then
sqlbegin()の呼び出し --- Oracleにバックアップ開始を通知します。
エラー処理
fi
# 2) AdvancedCopy Managerのコマンドでディスクのバックアップ(コピー)
swstbackup $SRC --- ディスクをコピーします。
エラー処理
# 3) Oracleへのバックアップ停止の通知
if [ "-a"オペランドの指定 ]
then
sqlend()の呼び出し--- Oracleにバックアップ停止を通知します。
エラー処理
fi
# 4) AdvancedCopy Managerのバックアップ(コピー)先の入手
DSTBLK="`getbd $SRC`" --- バックアップボリュームを取り出します。
BKDATE="`getdate $SRC`"
BKTIME="`gettime $SRC`"
exit 0