2.21 EXECUTE SCRIPT

目的

EXECUTE SCRIPTコマンドを使用すると、リカバリ・カタログに格納されているローカルまたはグローバルのRMANスクリプトを実行できます。

関連項目:

前提条件

EXECUTE SCRIPTは、RUNコマンドのカッコ内でのみ使用してください。CATALOGコマンドライン・オプションまたはCONNECT CATALOGコマンドを使用して、RMANをリカバリ・カタログに接続する必要があります。リカバリ・カタログ・データベースはオープンの状態である必要があります。

使用上の注意

RUNブロック内でEXECUTE SCRIPTコマンドを実行すると、RMANによって、スクリプトの内容がそのRUNブロックに挿入されます。そのため、スクリプト内でチャネルを割り当てている場合は、RUNブロック内でチャネルを割り当てないでください。

GLOBALが指定されている場合は、同じ名前のグローバル・スクリプトがリカバリ・カタログに存在している必要があります(存在していない場合は、エラーRMAN-06004が戻されます。)。GLOBALを指定しなかった場合は、RMANによって、現行のターゲット・データベースに対して定義されているローカル・ストアド・スクリプトが検索されます。その名前のローカル・スクリプトが見つからなかった場合は、同じ名前のグローバル・スクリプトが検索され、見つかった場合はそのスクリプトが実行されます。

構文

executeScript::=

セマンティクス

構文要素 説明

GLOBAL

ローカル・ストアド・スクリプトのかわりに、グローバル・ストアド・スクリプトを実行するように指定します。

関連項目: グローバル・スクリプトとローカル・スクリプトの違いについては、使用上の注意を参照してください

SCRIPT script_name

実行するストアド・スクリプトの名前を指定します。スクリプト名に空白または予約語が含まれている場合は、引用符で囲む必要があります。

USING [string_or_identifier | integer]

ストアド・スクリプト内の置換変数で使用する値を1つ以上指定します(例2-98を参照)。

関連項目: 置換変数を使用するストアド・スクリプトの作成方法については、CREATE SCRIPTを参照してください。また、RMANで置換変数を使用する方法については、「RMAN」および@(アットマーク)」を参照してください。

例2-97 ストアド・スクリプトの実行

この例では、LISTを使用して、リカバリ・カタログに格納されているスクリプトを表示し、PRINT SCRIPTを使用して、例2-73で作成されたglobal_backup_dbの内容を表示します。最後に、global_backup_dbを実行して、データベースをバックアップします。

RMAN> LIST SCRIPT NAMES;
 
List of Stored Scripts in Recovery Catalog

    Global Scripts

       Script Name
       Description
       -----------------------------------------------------------------------
       global_backup_db
       back up any database from the recovery catalog, with logs

RMAN> PRINT SCRIPT global_backup_db;

printing stored global script: global_backup_db
{
    BACKUP DATABASE PLUS ARCHIVELOG;
}

RMAN> RUN { EXECUTE GLOBAL SCRIPT global_backup_db; }

executing global script: global_backup_db


Starting backup at 07-JUN-13
current log archived
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=120 device type=DISK
.
.
.

例2-98 置換変数を使用するストアド・スクリプトの作成と実行

RMANを起動してターゲット・データベースおよびリカバリ・カタログに接続した後、REPLACE SCRIPTを使用して3つの置換変数が含まれるバックアップ・スクリプトを作成します。RMANによって、変数の初期値を入力するプロンプトが表示されます(太字がユーザー入力です)。

RMAN> REPLACE SCRIPT 
2>  backup_df { BACKUP DATAFILE &1 TAG &2.1 FORMAT '/disk1/&3_%U'; }
 Enter value for 1: 1
 
Enter value for 2: df1_backup
 
Enter value for 3: df1

starting full resync of recovery catalog
full resync complete
created script backup_df
 

後で、別の値でbackup_dfスクリプトを実行できます。次の例では、値3test_backupおよびtestをストアド・スクリプトの置換変数に渡しています。

RMAN> RUN { EXECUTE SCRIPT backup_df USING 3 test_backup df3; }

値が置換された後、RMANによってBACKUPコマンドが次のように実行されます。

BACKUP DATAFILE 3 TAG test_backup1 FORMAT '/disk1/df3_%U';