ETERNUS SF AdvancedCopy Manager 運用手引書 13.0 -AIX-
目次 索引 前ページ次ページ

付録C バックアップ運用におけるサンプルシェルスクリプト

本付録では、AdvancedCopy Manager用のサンプルシェルスクリプトについて説明します。

サンプルシェルスクリプトの目的は、AdvancedCopy Managerを使用して、業務ボリュームのデータをバックアップ可能とすることです。

本章で説明するサンプルシェルスクリプトは、バックアップ管理機能向けに作成されていますが、本シェルスクリプトを参考にしてレプリケーション管理機能向けに作成することで、OracleやDB2のデータベースについてもコピーを作成することができます。

C.1 概 

AdvancedCopy Managerを使用し、業務ボリュームをバックアップします。

AdvancedCopy Managerは、バックアップを行うサンプルシェルスクリプトを提供します。バックアップ運用の管理者は、業務に合わせてサンプルシェルスクリプトを修正し、実際のバックアップ運用に適用します。

C.2 業務ボリュームのバックアップとリスト 

C.2.1 バックアッ

バックアップを行う場合の処理手順の概要を以下に示します。

  1. 業務運用状態の確認

    業務が運用中か運用中でないかを確認します。

  2. 業務停止

    1で業務が運用中の場合は、業務を停止し、業務ボリュームの内容を整合性のとれた状態にします。

  3. ディスクのバックアップ

    AdvancedCopy Managerのバックアップ機能を使用して、業務ボリュームをバックアップします。

  4. 業務再開

    1で業務が運用中だった場合は、業務を再開します。

[図C.1 バックアップ方法]

C.2.2 リスト 

リストアを行う場合の処理手順の概要を以下に示します。

  1. 業務停止状態の確認

    業務が停止状態であることを確認します。運用中の場合は、業務を完全に停止します。

  2. リストア

    AdvancedCopy Managerのリストア機能を使用して、バックアップボリュームから業務ボリュームへリストアします。

  3. 業務再開

[図C.2 リストア方法]

C.3 Oracle用サンプルシェルスクリプ 

AdvancedCopy Managerで提供するサンプルシェルスクリプトは、以下のバージョンのOracleを想定して作成しています。それ以外のバージョンをご使用の場合は、適宜修正してご使用ください。

C.3.1 Oracle用サンプルシェルスクリプトの概 

AdvancedCopy Managerで提供するOracle用サンプルシェルスクリプトは、次のとおりです。サンプルシェルスクリプトは、/etc/opt/FJSVswsts/sampディレクトリ配下に格納されています。

項番

種別

スクリプト名

対応業務名

対象資源種別

1

DB情報の収集

swst_or_iv

Oracle業務

2

バックアップ

swst_or_vg_bk

Oracle業務

ローデバイス

データベースがファイルシステム上に存在する場合は、そのデータベースを使用する業務の起動中にバックアップを行うことはできません。

C.3.1.1 DB情報の収 

[機能概要]

swst_or_ivは、Oracleデータベースの情報を出力します。

出力するファイル名と内容は次のとおりです。

上記ファイルは、バックアップを行うシェルスクリプトを作成する際の参考資料として使用します。

[起動方法]

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

C.3.1.2 バックアップ

[機能概要]

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

C.3.2 Oracle用サンプルシェルスクリプトの適 

C.3.2.1 DB情報の収集 

■サンプルシェルスクリプトの更新

swst_or_ivの以下の処理手続きを、実際の運用に合うように更新します。以下の項番はスクリプト中の項番に対応します。

0) 環境変数の設定

1) Oracleのテーブルスペース情報の取得

2) Oracleのログ情報の取得

3) Oracleの制御情報の取得

上記1)〜3)は、Oracleのアカウント情報を変更します。

なお、本スクリプトは、AdvancedCopy Managerの業務サーバでしか動作できません。

C.3.2.2 バックアップ

■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の業務サーバでしか動作できません。

■バックアップボリューム名、処理時刻の記録・管理

シェルスクリプト実行後、バックアップボリューム名、処理時刻がメッセージ中に出力されます。これらの情報は、リストア時に必要となります。そのため、シェルスクリプト実行後、メッセージ中に出力されたバックアップボリューム名、処理時刻を記録・管理しておきます。

C.3.3 リストアの方 

AdvancedCopy Managerのリストア機能を使用してリストアします。

C.3.4 Oracle用サンプルシェルスクリプト使用時の注意事 

■Oracle資源の配置:

Oracleのデータファイル、データファイル以外のファイルは、それぞれ異なるディスク、またはスライスに格納してください。

■Oracle資源のバックアップ運用:

  1. 初期化パラメータフーァイル

    1. 変更の都度、OSのcpコマンド等でバックアップします。

  2. 制御ファイル

    1. Oracleによるミラー化をお勧めします。

    2. DB環境に変化があった場合、以下のコマンドでトレースファイルを作成します。制御ファイルが破壊された場合は、トレースファイル中のSQL文を実行して復旧します。

      alter database backup controlfile to trace;

  3. データファイル

    1. データファイルは、ローデバイスに配置することを推奨します。

    2. データファイルをファイルシステムに配置する場合は、データファイルの自動拡張機能を無効(AUTOEXTEND OFF)にしてください。また、サンプルシェルスクリプト中の前後処理においてアンマウントが行われないようにカスタマイズする必要があります。

    3. AdvancedCopy Managerでバックアップします。

    4. バックアップ対象のテーブルスペースの範囲は、必ずOracleのバックアップ同期処理(begin backup/end backup)の単位とAdvancedCopy Managerでのバックアップ単位の範囲内にしてくだい。たとえば、AdvancedCopy ManagerでLUN単位にバックアップする場合は、1つのテーブルスペースは、1つのLUN内に配置してください。

    5. システム内の全テーブルスペースのバックアップ後は、以下のコマンドですべての最新ログをアーカイブします。

      alter system archive log current;

  4. REDOファイル

    1. オンラインREDOログファイル、アーカイブログファイルともOracleまたはOSによるによるミラー化をお勧めします。

    2. オンラインREDOログファイルは、バックアップする必要はありません。

オンラインバックアップを行うには,対象となるOracleデータベースはアーカイブログ運用が必須です。

■Oracleデータベースのリカバリ:

データベース停止後、Oracleデータベースをリストアし、データベースを再起動してください。さらに最新の状態まで復旧する場合には、Oracleのリカバリ機能を使用して行ってください。

C.4 DB2用サンプルシェルスクリプ 

AdvancedCopy Managerで提供するサンプルシェルスクリプトは、以下のバージョンのDB2を想定して作成しています。それ以外のバージョンをご使用の場合は、適宜修正してご使用ください。

C.4.1 DB2用サンプルシェルスクリプトの概 

AdvancedCopy Managerで提供するDB2用サンプルシェルスクリプトは、次のとおりです。サンプルシェルスクリプトは、/etc/opt/FJSVswsts/sampディレクトリ配下に格納されています。

項番

種別

スクリプト名

対応業務名

対象資源種別

1

DB情報の収集

swst_db2_iv

DB2業務

2

バックアップ

swst_db2_vg_bk

DB2業務

ローデバイス

データベースがファイルシステム上に存在する場合は、そのデータベースを使用する業務の起動中にバックアップを行うことはできません。

C.4.1.1 DB情報の収 

[機能概要]

swst_db2_ivは、DB2データベースの情報を出力します。

出力するファイル名と内容は次のとおりです。

上記ファイルは、バックアップを行うシェルスクリプトを作成する際の参考資料として使用します。

[起動方法]

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

C.4.1.2 バックアップ

[機能概要]

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

C.4.2 DB2用サンプルシェルスクリプトの適 

C.4.2.1 DB情報の収集 

■サンプルシェルスクリプトの更新

swst_db2_ivの以下の処理手続きを、実際の運用に合うように更新します。以下の項番はスクリプト中の項番に対応します。

0) 環境変数の設定

1) DB2のテーブルスペース情報の取得

なお、本スクリプトは、AdvancedCopy Managerの業務サーバでしか動作できません。

C.4.2.2 バックアップ

■AdvancedCopy Managerのセットアップ

バックアップ対象のローデバイスがAdvancedCopy Managerで正しくバックアップされるようバックアップボリュームをセットアップします。

管理するバックアップボリュームの世代は任意の世代とします。

■サンプルシェルスクリプトの更新

swst_db2_vg_bkの以下の処理手続きを実際の運用に合うように更新します。以下の項番はスクリプト中の項番に対応します。

0) 環境変数の設定

1) DB2へのバックアップ開始の通知

3) DB2へのバックアップ停止の通知

上記1)、3)は、swst_db2_ivで作成したspdata.lstファイルを参考にします。

なお、本スクリプトは、AdvancedCopy Managerの業務サーバでしか動作できません。

■バックアップボリューム名、処理時刻の記録・管理

シェルスクリプト実行後、バックアップボリューム名、処理時刻がメッセージ中に出力されます。これらの情報は、リストア時に必要となります。そのため、シェルスクリプト実行後、メッセージ中に出力されたバックアップボリューム名、処理時刻を記録・管理しておきます。

C.4.3 リストアの方 

AdvancedCopy Managerのリストア機能を使用してリストアします。

C.4.4 DB2用サンプルシェルスクリプト使用時の注意事 

■DB2資源の配置:

DB2のデータベース、ユーザ表スペースは、それぞれ異なるディスク、またはスライスに格納してください。

■DB2資源のバックアップ運用:

  1. データベース

    1. DB2のBACKUP DATABASEコマンドでバックアップしてください。

    db2 => backup database DB名 to バックアップ先;
    ≪バックアップ対象のデータベース構造≫

  2. ユーザ表スペース

    1. ユーザ表スペースはファイルシステムではなく、RAWデバイスに配置してください。
      表スペースについては、テーブルスペース・コンテナーもバックアップ対象になる為、本サンプルシェルスクリプトを使用してください。

    2. AdvancedCopy Managerでバックアップします。

    3. バックアップ対象のテーブルスペースの範囲は、AdvancedCopy Managerのバックアップ単位の範囲内にしてくだい。たとえば、AdvancedCopy ManagerでLUN単位にバックアップする場合は、1つのテーブルスペースは、1つのLUN内に配置してください。

■DB2データベースのリカバリ:

データベース停止後、DB2データベースをリストアし、データベースを再起動してください。さらに最新の状態まで復旧する場合には、DB2のリカバリ機能を使用して行ってください。

データをリカバリする際は、以下の順に行ってください。
  1. データベース

  2. ユーザ表スペース


目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2002-2006