ETERNUS SF AdvancedCopy Manager 運用手引書 13.0 -AIX- |
目次
索引
![]() ![]() |
本付録では、AdvancedCopy Manager用のサンプルシェルスクリプトについて説明します。
サンプルシェルスクリプトの目的は、AdvancedCopy Managerを使用して、業務ボリュームのデータをバックアップ可能とすることです。
本章で説明するサンプルシェルスクリプトは、バックアップ管理機能向けに作成されていますが、本シェルスクリプトを参考にしてレプリケーション管理機能向けに作成することで、OracleやDB2のデータベースについてもコピーを作成することができます。
AdvancedCopy Managerを使用し、業務ボリュームをバックアップします。
AdvancedCopy Managerは、バックアップを行うサンプルシェルスクリプトを提供します。バックアップ運用の管理者は、業務に合わせてサンプルシェルスクリプトを修正し、実際のバックアップ運用に適用します。
バックアップを行う場合の処理手順の概要を以下に示します。
業務運用状態の確認
業務が運用中か運用中でないかを確認します。
業務停止
1で業務が運用中の場合は、業務を停止し、業務ボリュームの内容を整合性のとれた状態にします。
ディスクのバックアップ
AdvancedCopy Managerのバックアップ機能を使用して、業務ボリュームをバックアップします。
業務再開
1で業務が運用中だった場合は、業務を再開します。
リストアを行う場合の処理手順の概要を以下に示します。
業務停止状態の確認
業務が停止状態であることを確認します。運用中の場合は、業務を完全に停止します。
リストア
AdvancedCopy Managerのリストア機能を使用して、バックアップボリュームから業務ボリュームへリストアします。
業務再開
AdvancedCopy Managerで提供するサンプルシェルスクリプトは、以下のバージョンのOracleを想定して作成しています。それ以外のバージョンをご使用の場合は、適宜修正してご使用ください。
Oracle 9i(V 9.2.0.1.0)
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を使用してバックアップします。
業務データは、利用者が用意する作業用ディスクにコピーされます。
本スクリプトは、本マニュアルの『バックアップ』の処理手順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 |
swst_or_ivの以下の処理手続きを、実際の運用に合うように更新します。以下の項番はスクリプト中の項番に対応します。
0) 環境変数の設定
1) Oracleのテーブルスペース情報の取得
2) Oracleのログ情報の取得
3) Oracleの制御情報の取得
上記1)〜3)は、Oracleのアカウント情報を変更します。
なお、本スクリプトは、AdvancedCopy Managerの業務サーバでしか動作できません。
バックアップ対象のボリュームグループがAdvancedCopy Managerで正しくバックアップされるようバックアップボリュームをセットアップします。
管理するバックアップボリュームの世代は任意の世代とします。
swst_or_vg_bkの以下の処理手続きを実際の運用に合うように更新します。以下の項番はスクリプト中の項番に対応します。
0) 環境変数の設定
1) Oracleへのバックアップ開始の通知
3) Oracleへのバックアップ停止の通知
上記1)、3)は、swst_or_ivで作成したspdata.lstファイル、spdata.bgnファイル、spdata.endファイル、splog.lstファイル、spredolog.lstファイル、およびspcont.lstファイルを参考にします。
なお、本スクリプトは、AdvancedCopy Managerの業務サーバでしか動作できません。
シェルスクリプト実行後、バックアップボリューム名、処理時刻がメッセージ中に出力されます。これらの情報は、リストア時に必要となります。そのため、シェルスクリプト実行後、メッセージ中に出力されたバックアップボリューム名、処理時刻を記録・管理しておきます。
AdvancedCopy Managerのリストア機能を使用してリストアします。
Oracleのデータファイル、データファイル以外のファイルは、それぞれ異なるディスク、またはスライスに格納してください。
初期化パラメータフーァイル
変更の都度、OSのcpコマンド等でバックアップします。
制御ファイル
Oracleによるミラー化をお勧めします。
DB環境に変化があった場合、以下のコマンドでトレースファイルを作成します。制御ファイルが破壊された場合は、トレースファイル中のSQL文を実行して復旧します。
alter database backup controlfile to trace;
データファイル
データファイルは、ローデバイスに配置することを推奨します。
データファイルをファイルシステムに配置する場合は、データファイルの自動拡張機能を無効(AUTOEXTEND OFF)にしてください。また、サンプルシェルスクリプト中の前後処理においてアンマウントが行われないようにカスタマイズする必要があります。
AdvancedCopy Managerでバックアップします。
バックアップ対象のテーブルスペースの範囲は、必ずOracleのバックアップ同期処理(begin backup/end backup)の単位とAdvancedCopy Managerでのバックアップ単位の範囲内にしてくだい。たとえば、AdvancedCopy ManagerでLUN単位にバックアップする場合は、1つのテーブルスペースは、1つのLUN内に配置してください。
システム内の全テーブルスペースのバックアップ後は、以下のコマンドですべての最新ログをアーカイブします。
alter system archive log current;
REDOファイル
オンラインREDOログファイル、アーカイブログファイルともOracleまたはOSによるによるミラー化をお勧めします。
オンラインREDOログファイルは、バックアップする必要はありません。
オンラインバックアップを行うには,対象となるOracleデータベースはアーカイブログ運用が必須です。
データベース停止後、Oracleデータベースをリストアし、データベースを再起動してください。さらに最新の状態まで復旧する場合には、Oracleのリカバリ機能を使用して行ってください。
AdvancedCopy Managerで提供するサンプルシェルスクリプトは、以下のバージョンのDB2を想定して作成しています。それ以外のバージョンをご使用の場合は、適宜修正してご使用ください。
DB2(v8.1.1.64)
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を使用してバックアップします。
業務データは、利用者が用意する作業用ディスクにコピーされます。
本スクリプトは、本マニュアルの『バックアップ』の処理手順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 |
swst_db2_ivの以下の処理手続きを、実際の運用に合うように更新します。以下の項番はスクリプト中の項番に対応します。
0) 環境変数の設定
1) DB2のテーブルスペース情報の取得
なお、本スクリプトは、AdvancedCopy Managerの業務サーバでしか動作できません。
バックアップ対象のローデバイスがAdvancedCopy Managerで正しくバックアップされるようバックアップボリュームをセットアップします。
管理するバックアップボリュームの世代は任意の世代とします。
swst_db2_vg_bkの以下の処理手続きを実際の運用に合うように更新します。以下の項番はスクリプト中の項番に対応します。
0) 環境変数の設定
1) DB2へのバックアップ開始の通知
3) DB2へのバックアップ停止の通知
上記1)、3)は、swst_db2_ivで作成したspdata.lstファイルを参考にします。
なお、本スクリプトは、AdvancedCopy Managerの業務サーバでしか動作できません。
シェルスクリプト実行後、バックアップボリューム名、処理時刻がメッセージ中に出力されます。これらの情報は、リストア時に必要となります。そのため、シェルスクリプト実行後、メッセージ中に出力されたバックアップボリューム名、処理時刻を記録・管理しておきます。
AdvancedCopy Managerのリストア機能を使用してリストアします。
DB2のデータベース、ユーザ表スペースは、それぞれ異なるディスク、またはスライスに格納してください。
データベース
DB2のBACKUP DATABASEコマンドでバックアップしてください。
db2 => backup database DB名 to バックアップ先;
≪バックアップ対象のデータベース構造≫
ドライブ/ディレクトリ: CREATE DATABASEコマンドで指定されたドライブまたはディレクトリ
DB2インスタンス名 : DB2インスタンスのオーナー名
データベースのパーティション番号
データベースID
データベースのデフォルト・ログ・ディレクトリー
カタログ表スペース
一時表スペース
ユーザ表スペース
ユーザ表スペース
ユーザ表スペースはファイルシステムではなく、RAWデバイスに配置してください。
表スペースについては、テーブルスペース・コンテナーもバックアップ対象になる為、本サンプルシェルスクリプトを使用してください。
AdvancedCopy Managerでバックアップします。
バックアップ対象のテーブルスペースの範囲は、AdvancedCopy Managerのバックアップ単位の範囲内にしてくだい。たとえば、AdvancedCopy ManagerでLUN単位にバックアップする場合は、1つのテーブルスペースは、1つのLUN内に配置してください。
データベース停止後、DB2データベースをリストアし、データベースを再起動してください。さらに最新の状態まで復旧する場合には、DB2のリカバリ機能を使用して行ってください。
データをリカバリする際は、以下の順に行ってください。
データベース
ユーザ表スペース
目次
索引
![]() ![]() |