AdvancedCopy Managerで提供するサンプルスクリプトは、バックアップ管理機能向けは "C:\Win32app\AdvancedCopyManager\etc\backup\sample" ディレクトリ配下、レプリケーション管理機能向けは "C:\Win32app\AdvancedCopyManager\etc\repl\sample" ディレクトリ配下に格納されています。サンプルスクリプトの相関図を以下に示します。
図B.4 サンプルスクリプトの相関図
注意
本サンプルスクリプトは任意のフォルダにコピーして使用することをお勧めします。
バックアップ管理機能向けサンプルスクリプト(swst_or_iv.sql)またはレプリケーション管理機能向けサンプルスクリプト(swsrp_or_iv.sql)は、Oracleデータベースの情報を出力します。出力する内容は、以下のとおりです。
テーブルスペース名と格納先の一覧
Oracleデータベースのログファイルの情報
上記データベースの情報は、バックアップを行うスクリプトを作成する際の参考資料として使用します。
バックアップ管理機能向けサンプルスクリプト
起動方法
sqlplus ユーザー名/パスワード@バックアップ対象DBへの接続文字列 @swst_or_iv
使用例
C:\>sqlplus system/manager@orcl @swst_or_iv
結果例
SQL*Plus: Release 12.2.0.1.0 Production on 水 7月 4 14:01:00 2018 Copyright (c) 1982, 2016, Oracle. All rights reserved. 最終正常ログイン時間: 水 7月 04 2018 13:49:54 +09:00 Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Productionに接続されました。 TABLESPACE-NAME DEVICE-NAME -------------------- -------------------------------------------------- SYSAUX D:\ORACLE\ORADATA\ORCL\SYSAUX01.DBF SYSTEM D:\ORACLE\ORADATA\ORCL\SYSTEM01.DBF UNDOTBS1 D:\ORACLE\ORADATA\ORCL\UNDOTBS01.DBF USERS D:\ORACLE\ORADATA\ORCL\USERS01.DBF NAME TYPE ------------------------------------ ---------------------- VALUE ------------------------------ log_archive_dest string log_archive_dest_1 string log_archive_dest_10 string log_archive_dest_11 string log_archive_dest_12 string log_archive_dest_13 string log_archive_dest_14 string log_archive_dest_15 string log_archive_dest_16 string log_archive_dest_17 string log_archive_dest_18 string log_archive_dest_19 string log_archive_dest_2 string log_archive_dest_20 string log_archive_dest_21 string log_archive_dest_22 string log_archive_dest_23 string log_archive_dest_24 string log_archive_dest_25 string log_archive_dest_26 string log_archive_dest_27 string log_archive_dest_28 string log_archive_dest_29 string log_archive_dest_3 string log_archive_dest_30 string log_archive_dest_31 string log_archive_dest_4 string log_archive_dest_5 string log_archive_dest_6 string log_archive_dest_7 string log_archive_dest_8 string log_archive_dest_9 string log_archive_dest_state_1 string enable log_archive_dest_state_10 string enable log_archive_dest_state_11 string enable log_archive_dest_state_12 string enable log_archive_dest_state_13 string enable log_archive_dest_state_14 string enable log_archive_dest_state_15 string enable log_archive_dest_state_16 string enable log_archive_dest_state_17 string enable log_archive_dest_state_18 string enable log_archive_dest_state_19 string enable log_archive_dest_state_2 string enable log_archive_dest_state_20 string enable log_archive_dest_state_21 string enable log_archive_dest_state_22 string enable log_archive_dest_state_23 string enable log_archive_dest_state_24 string enable log_archive_dest_state_25 string enable log_archive_dest_state_26 string enable log_archive_dest_state_27 string enable log_archive_dest_state_28 string enable log_archive_dest_state_29 string enable log_archive_dest_state_3 string enable log_archive_dest_state_30 string enable log_archive_dest_state_31 string enable log_archive_dest_state_4 string enable log_archive_dest_state_5 string enable log_archive_dest_state_6 string enable log_archive_dest_state_7 string enable log_archive_dest_state_8 string enable log_archive_dest_state_9 string enable Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Productionとの接続が切断されました。
レプリケーション管理機能向けサンプルスクリプト
起動方法
sqlplus ユーザー名/パスワード@バックアップ対象DBへの接続文字列 @swsrp_or_iv
使用例
C:\>sqlplus system/manager@orcl @swsrp_or_iv
結果例
SQL*Plus: Release 12.2.0.1.0 Production on 水 7月 4 14:11:22 2018 Copyright (c) 1982, 2016, Oracle. All rights reserved. 最終正常ログイン時間: 水 7月 04 2018 14:09:36 +09:00 Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Productionに接続されました。 TABLESPACE-NAME DEVICE-NAME -------------------- -------------------------------------------------- SYSAUX D:\ORACLE\ORADATA\ORCL\SYSAUX01.DBF SYSTEM D:\ORACLE\ORADATA\ORCL\SYSTEM01.DBF UNDOTBS1 D:\ORACLE\ORADATA\ORCL\UNDOTBS01.DBF USERS D:\ORACLE\ORADATA\ORCL\USERS01.DBF NAME TYPE ------------------------------------ ---------------------- VALUE ------------------------------ log_archive_dest string log_archive_dest_1 string log_archive_dest_10 string log_archive_dest_11 string log_archive_dest_12 string log_archive_dest_13 string log_archive_dest_14 string log_archive_dest_15 string log_archive_dest_16 string log_archive_dest_17 string log_archive_dest_18 string log_archive_dest_19 string log_archive_dest_2 string log_archive_dest_20 string log_archive_dest_21 string log_archive_dest_22 string log_archive_dest_23 string log_archive_dest_24 string log_archive_dest_25 string log_archive_dest_26 string log_archive_dest_27 string log_archive_dest_28 string log_archive_dest_29 string log_archive_dest_3 string log_archive_dest_30 string log_archive_dest_31 string log_archive_dest_4 string log_archive_dest_5 string log_archive_dest_6 string log_archive_dest_7 string log_archive_dest_8 string log_archive_dest_9 string log_archive_dest_state_1 string enable log_archive_dest_state_10 string enable log_archive_dest_state_11 string enable log_archive_dest_state_12 string enable log_archive_dest_state_13 string enable log_archive_dest_state_14 string enable log_archive_dest_state_15 string enable log_archive_dest_state_16 string enable log_archive_dest_state_17 string enable log_archive_dest_state_18 string enable log_archive_dest_state_19 string enable log_archive_dest_state_2 string enable log_archive_dest_state_20 string enable log_archive_dest_state_21 string enable log_archive_dest_state_22 string enable log_archive_dest_state_23 string enable log_archive_dest_state_24 string enable log_archive_dest_state_25 string enable log_archive_dest_state_26 string enable log_archive_dest_state_27 string enable log_archive_dest_state_28 string enable log_archive_dest_state_29 string enable log_archive_dest_state_3 string enable log_archive_dest_state_30 string enable log_archive_dest_state_31 string enable log_archive_dest_state_4 string enable log_archive_dest_state_5 string enable log_archive_dest_state_6 string enable log_archive_dest_state_7 string enable log_archive_dest_state_8 string enable log_archive_dest_state_9 string enable Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Productionとの接続が切断されました。
バックアップ管理機能向けサンプルスクリプト(swst_or_bk_as.js)またはレプリケーション管理機能向けサンプルスクリプト(swsrp_or_bk_as.js)は、ファイルシステム上に存在するOracleデータベースの業務データをAdvancedCopy Managerでバックアップします。
業務データは、AdvancedCopy Managerのバックアップボリュームにコピーされます。
本スクリプトは、「B.1.1 バックアップの手順」における処理2~4の範囲に対応します。
バックアップ管理機能向けサンプルスクリプト
起動方法
CSCRIPT.EXE swst_or_bk_as.js
使用例
C:\>CSCRIPT.EXE swst_or_bk_as.js
結果例
正常時は、特に結果は出力されません。
処理概要
メイン処理 try { // create global objects var oracle_sid = "ORCL"; // [[[ **1** TARGET INSTANCE NAME ]]] var ScriptPathName = "C:\\SCRIPT"; // [[[ **2** SCRIPT PATH ]]] var BinPathName = "C:\\WIN32APP\\AdvancedCopyManager\\bin" // [[[ **3** SCRIPT PATH ]]] var OraclePathName = "D:\\app\\administrator\\product\\12.2.0\\dbhome_1\\bin"; // [[[ **4** ORACLE PATH ]]] var OracleSM = OraclePathName + "\\" + "sqlplus /nolog"; var FirstBusinessVolumeName = "g3d0p2"; // [[[ **5** First Business Volume Name ]]] var WorkBatchfile = ScriptPathName + "\\work" + FirstBusinessVolumeName + ".bat"; // [[[ Work Batchfile ]]] var ErrorLogfile = ScriptPathName + "\\error" + FirstBusinessVolumeName + ".log"; // [[[ Error Logfile ]]] // create Shell object var WshShell = WScript.CreateObject("WScript.Shell"); ***** 1つ目のドライブのバックアップコピー処理開始 ****** //[[[ First Drive - START - ]]] ExecSql("swst_first_st.sql", true); // [[[ ***6*** FileName ]]] if (CheckErrorLog() != 0) { ExecSql("swst_first_ed.sql", false); // [[[ ***7*** FileName ]]] SwstQuit (1); } var returnCode = WshShell.Run(BinPathName + "\\swstbackup g3d0p2 -Xdevmap " + ScriptPathName + "\\swst_xdevmap.txt", 0, true); // [[[ ***8*** DeviceName FileName ]]] ExecSql("swst_first_ed.sql", false); // [[[ ***9*** FileName ]]] if (returnCode != 0) { SwstQuit (2); } else if (CheckErrorLog() != 0) { SwstQuit (1); } //[[[ First Drive - END - ]]] ***** 1つ目のドライブのバックアップコピー処理終了 ****** ***** 2つ目のドライブのバックアップコピー処理開始 ****** //[[[ Second Drive - START - ]]] ExecSql("swst_second_st.sql", false); // [[[ ***10*** FileName ]]] if (CheckErrorLog() != 0) { ExecSql("swst_second_ed.sql", false); // [[[ ***11*** FileName ]]] SwstQuit (1); } var returnCode = WshShell.Run(BinPathName + "\\swstbackup g3d0p3 -Xdevmap " + ScriptPathName + "\\swst_xdevmap.txt", 0, true); // [[[ ***12*** DeviceName FileName ]]] ExecSql("swst_second_ed.sql", false); // [[[ ***13*** FileName ]]] if (returnCode != 0) { SwstQuit (2); } else if (CheckErrorLog() != 0) { SwstQuit (1); } //[[[ Second Drive - END - ]]] ***** 2つ目のドライブのバックアップコピー処理終了 ****** 正常終了時は、エラーログを削除して終了する。 var fs = WScript.CreateObject("Scripting.FileSystemObject"); var fs_d = fs.GetFile(ErrorLogfile); fs_d.Delete(true); SwstQuit(0); //Normal END } catch (e) { エラーの場合は、エラーログファイルを削除せずに終了。 SwstQuit(3); //Abnomal END } function ExecSql(fileName, flg) 実行するSQLスクリプトファイル名を受け取り、サーバマネージャーで実行します。第2引数はログの上書き可否フラグ。 function CheckErrorLog() サーバマネージャー実行後リダイレクトで取得したログファイル内を検索しオラクルのエラーがないか確認します。 function SwstQuit(exitStatus) エラー処理
レプリケーション管理機能向けサンプルスクリプト
起動方法
CSCRIPT.EXE swsrp_or_bk_as.js
使用例
C:\>CSCRIPT.EXE swsrp_or_bk_as.js
結果例
正常時は、特に結果は出力されません。
処理概要
メイン処理 try { // create global objects var oracle_sid = "ORCL"; // [[[ **1** TARGET INSTANCE NAME ]]] var ScriptPathName = "C:\\SCRIPT"; // [[[ **2** SCRIPT PATH ]]] var BinPathName = "C:\\WIN32APP\\AdvancedCopyManager\\bin" // [[[ **3** SCRIPT PATH ]]] var OraclePathName = "D:\\app\\administrator\\product\\12.2.0\\dbhome_1\\bin"; // [[[ **4** ORACLE PATH ]]] var OracleSM = OraclePathName + "\\" + "sqlplus /nolog"; var FirstBusinessVolumeName = "g3d0p2"; // [[[ **5** First Business Volume Name ]]] var WorkBatchfile = ScriptPathName + "\\work" + FirstBusinessVolumeName + ".bat"; // [[[ Work Batchfile ]]] var ErrorLogfile = ScriptPathName + "\\error" + FirstBusinessVolumeName + ".log"; // [[[ Error Logfile ]]] // create Shell object var WshShell = WScript.CreateObject("WScript.Shell"); ***** 1つ目のドライブのバックアップコピー処理開始 ****** //[[[ First Drive - START - ]]] ExecSql("swsrp_first_st.sql", true); // [[[ ***6*** FileName ]]] if (CheckErrorLog() != 0) { ExecSql("swsrp_first_ed.sql", false); // [[[ ***7*** FileName ]]] SwsrpQuit(1); } var returnCode = WshShell.Run(BinPathName + "\\swsrpmake g3d0p2 g3d1p2@TARG-SV", 0, true); // [[[ ***8*** fromVolumeName toVolumeName@targetServerName ]]] ExecSql("swsrp_first_ed.sql", false); // [[[ ***9*** FileName ]]] if (returnCode != 0) { SwsrpQuit(2); } else if (CheckErrorLog() != 0) { SwsrpQuit(1); } //[[[ First Drive - END - ]]] ***** 1つ目のドライブのバックアップコピー処理終了 ****** ***** 2つ目のドライブのバックアップコピー処理開始 ****** //[[[ Second Drive - START - ]]] ExecSql("swsrp_second_st.sql", false); // [[[ ***10*** FileName ]]] if (CheckErrorLog() != 0) { ExecSql("swsrp_second_ed.sql", false); // [[[ ***11*** FileName ]]] SwsrpQuit(1); } var returnCode = WshShell.Run(BinPathName + "\\swsrpmake g3d0p3 g3d1p3@TARG-SV", 0, true); // [[[ ***12*** fromVolumeName toVolumeName@targetServerName ]]] ExecSql("swsrp_second_ed.sql", false); // [[[ ***13*** FileName ]]] if (returnCode != 0) { SwsrpQuit(2); } else if (CheckErrorLog() != 0) { SwsrpQuit(1); } //[[[ Second Drive - END - ]]] ***** 2つ目のドライブのバックアップコピー処理終了 ****** 正常終了時は、エラーログを削除して終了する。 var fs = WScript.CreateObject("Scripting.FileSystemObject"); var fs_d = fs.GetFile(ErrorLogfile); fs_d.Delete(true); SwsrpQuit(0); //Normal END } catch (e) { エラーの場合は、エラーログファイルを削除せずに終了。 SwsrpQuit(3); //Abnomal END } function ExecSql(fileName, flg) 実行するSQLスクリプトファイル名を受け取り、サーバマネージャーで実行します。第2引数はログの上書き可否フラグ。 function CheckErrorLog() サーバマネージャー実行後リダイレクトで取得したログファイル内を検索しオラクルのエラーがないか確認します。 function SwsrpQuit(exitStatus) エラー処理