ページの先頭行へ戻る
ETERNUS SF AdvancedCopy Manager 15.2 運用ガイド
ETERNUS

B.3.1 サンプルスクリプトの概要

AdvancedCopy Managerで提供するサンプルスクリプトは、“<環境設定ディレクトリ>\etc\backup\sample”ディレクトリ配下に格納されています。サンプルスクリプトの相関図を以下に示します。

図B.4 サンプルスクリプトの相関図

注意

本サンプルスクリプトは任意のフォルダにコピーして使用することをお勧めします。

B.3.1.1 DB情報の収集

swst_or_iv.sqlは、Oracleデータベースの情報を出力します。出力する内容は、以下のとおりです。

上記データベースの情報は、バックアップを行うスクリプトを作成する際の参考資料として使用します。

  1. 起動方法

    sqlplus ユーザー名/パスワード@バックアップ対象DBへの接続文字列 @swst_or_iv
  2. 使用例

    C:\>sqlplus system/manager@orcl @swst_or_iv
  3. 結果例

    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

B.3.1.2 バックアップ

swst_or_bk_as.js は、ファイルシステム上に存在するOracleデータベースの業務データをAdvancedCopy Managerでバックアップします。

業務データは、AdvancedCopy Managerのバックアップボリュームにコピーされます。

本スクリプトは、「B.2.1 バックアップの手順」における処理2~4の範囲に対応します。

  1. 起動方法

    CSCRIPT.EXE swst_or_bk_as.js
  2. 使用例

    C:\>CSCRIPT.EXE swst_or_bk_as.js
  3. 結果例

    正常時は、特に結果は出力されません。

  4. 処理概要

    メイン処理
    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)                  エラー処理