AdvancedCopy Managerで提供するサンプルスクリプトは、“<環境設定ディレクトリ>\etc\backup\sample”ディレクトリ配下に格納されています。サンプルスクリプトの相関図を以下に示します。
注意
本サンプルスクリプトは任意のフォルダにコピーして使用することをお勧めします。
swst_or_iv.sqlは、Oracleデータベースの情報を出力します。出力する内容は、以下のとおりです。
テーブルスペース名と格納先の一覧
Oracleデータベースのログファイルの情報
上記データベースの情報は、バックアップを行うスクリプトを作成する際の参考資料として使用します。
起動方法
sqlplus ユーザー名/パスワード@バックアップ対象DBへの接続文字列 @swst_or_iv |
使用例
C:\>sqlplus system/manager@orcl @swst_or_iv |
結果例
SQL*Plus: Release 8.1.6.0.0 - Production on 火 May 22 21:33:21 2001 (c) Copyright 1999 Oracle Corporation. All rights reserved. Oracle8i Release 8.1.6.0.0 - Production JServer Release 8.1.6.0.0 - Production に接続されました。 TABLESPACE-NAME DEVICE-NAME -------------------- -------------------------------------------------- INDX D:\ORACLE\ORADATA\CONTENTS\INDX01.DBF RBS D:\ORACLE\ORADATA\CONTENTS\RBS01.DBF SYSTEM D:\ORACLE\ORADATA\CONTENTS\SYSTEM01.DBF TEMP D:\ORACLE\ORADATA\CONTENTS\TEMP01.DBF TOOLS D:\ORACLE\ORADATA\CONTENTS\TOOLS01.DBF USERS E:\ORACLE\ORADATA\CONTENTS\USERS01.DBF SQL> show parameters log_archive_dest NAME TYPE ------------------------------------ -------------- VALUE ------------------------------ log_archive_dest string D:\Oracle\oradata\contents\arc hive log_archive_dest_1 string log_archive_dest_2 string log_archive_dest_3 string log_archive_dest_4 string log_archive_dest_5 string log_archive_dest_state_1 string enable log_archive_dest_state_2 string enable log_archive_dest_state_3 string enable log_archive_dest_state_4 string enable log_archive_dest_state_5 string enable SQL>EXIT Oracle8i Release 8.1.6.0.0 - Production JServer Release 8.1.6.0.0 - Productionとの接続が切断されました。 |
注意
SQL*PlusツールはOracleのバージョンにより以下の種類があります。
Oracleバージョン | コマンドライン版 | GUI版 |
---|---|---|
Oracle7 Release7.3.x | PLUS33.EXE | PLUS33W.EXE |
Oracle8 Release8.0.x | PLUS80.EXE | PLUS80W.EXE |
Oracle8i Release8.1.x | SQLPLUS.EXE | SQLPLUSW.EXE |
swst_or_bk_as.js は、ファイルシステム上に存在するOracleデータベースの業務データをAdvancedCopy Managerでバックアップします。
業務データは、AdvancedCopy Managerのバックアップボリュームにコピーされます。
本スクリプトは、「B.2.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 = "CONTENTS"; // [[[ **1** TARGET INSTANCE NAME ]]] var ScriptPathName = "C:\\SCRIPT"; // [[[ **2** SCRIPT PATH ]]] var BinPathName = "C:\\WIN32APP\\AdvancedCopyManager\\bin" // [[[ **3** SCRIPT PATH ]]] var OraclePathName = "D:\\Oracle\\Ora81\\bin"; // [[[ **4** ORACLE PATH ]]] var OracleServerManager9i = "sqlplus /nolog"; // [[[ ORACLE SERVER MANAGER Oracle9i ]]] var OracleServerManager8i = "svrmgrl"; // [[[ ORACLE SERVER MANAGER Oracle8i ]]] var OracleServerManager8 = "svrmgr30"; // [[[ ORACLE SERVER MANAGER Oracle8.x ]]] var OracleServerManager7 = "svrmgr23"; // [[[ ORACLE SERVER MANAGER Oracle7.x ]]] var OracleSM = OraclePathName + "\\" + OracleServerManager8i; // [[[ **5** PLEASE SELECT ]]] ----- 上記の4つから一つを選択して記述する var FirstBusinessVolumeName = "g3d0p2"; // [[[ **6** 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"); ***** 一つ目のドライブのバックアップコピー処理開始 ****** //[[[ First Drive - START - ]]] ExecSql("swst_first_st.sql", true); // [[[ ***7*** FileName ]]] if (CheckErrorLog != 0) { ExecSql(swst_first_ed.sql", false); // [[[ ***8*** FileName ]]] swstQuit (1); } var returnCode = WshShell.Run(BinPathName + "\\swstbackup g3d0p2 -Xdevmap " + ScriptPathName + "\\swst_devmap.txt", 0, true); // [[[ ***9*** DeviceName FileName ]]] ExecSql("swst_first_ed.sql", false); // [[[ ***10*** FileName ]]] if (returnCode != 0) { SwstQuit (2); } else if (CheckErrorLog() != 0) { SwstQuit (1); } //[[[ First Drive - END - ]]] ***** 一つ目のドライブのバックアップコピー処理終了 ****** ***** 二つ目のドライブのバックアップコピー処理開始 ****** //[[[ Second Drive - START - ]]] ExecSql("swst_second_st.sql", false); // [[[ ***11*** FileName ]]] if (CheckErrorLog != 0) { ExecSql("swst_second_ed.sql, false"); // [[[ ***12*** FileName ]]] swstQuit (1); } var returnCode = WshShell.Run(BinPathName + "\\swstbackup g3d0p3 -Xdevmap " + ScriptPathName + "\\swst_devmap.txt", 0, true); // [[[ ***13*** DeviceName FileName ]]] ExecSql("swst_second_ed.sql", false); // [[[ ***14*** FileName ]]] if (CheckErrorLog != 0) { SwstQuit (2); } else if (CheckErrorLog() != 0) { SwstQuit (1); } //[[[ Second Drive - END - ]]] ***** 二つ目のドライブのバックアップコピー処理終了 ****** 正常終了の時は、エラーログを削除して終了する。 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) エラー処理 |