用途
CREATE SCRIPT
コマンドを使用すると、リカバリ・カタログ内にストアド・スクリプトを作成できます。ストアド・スクリプトは、名前が付けられ、後で実行するためにリカバリ・カタログに格納されている一連のRMANコマンドです。
関連項目:
|
前提条件
CREATE SCRIPT
は、RMANプロンプトでのみ実行できます。RMANが、ターゲット・データベースとリカバリ・カタログに接続されている必要があります。リカバリ・カタログ・データベースはオープンの状態である必要があります。
GLOBAL
を指定する場合は、この名前のグローバル・スクリプトがリカバリ・カタログ内に存在していない必要があります。GLOBAL
を指定しない場合は、同じターゲット・データベースに対して同じ名前のローカル・スクリプトが存在していない必要があります。この前提条件が満たされない場合は、エラーRMAN-20401
が戻されます。
使用上の注意
ストアド・スクリプトには、ローカルとグローバルがあります。ローカル・スクリプトは、現行のターゲット・データベース用にのみ作成されますが、グローバル・スクリプトは、リカバリ・カタログに登録されているすべてのデータベースで使用できます。
グローバル・スクリプトをローカル・スクリプトと同じ名前で、またローカル・スクリプトをグローバル・スクリプトと同じ名前で作成することもできます。
ストアド・スクリプト内の置換変数
RMANでは、ストアド・スクリプトで置換変数を使用できます。&1
は最初の値を配置する位置を示し、&2
は2番目の値を配置する位置を示します。その後も同様に続きます。特殊文字は、引用符で囲む必要があります。
置換変数の構文は、&
integer
の後にオプションでピリオドが続きます(&1.3
など)。オプションのピリオドは変数の一部であり、値と置換されますので、置換テキストの直後に別の整数を続けることができます。たとえば、置換変数&1.3
が含まれているコマンド・ファイルに値mybackup
を渡すと、その置換結果はmybackup3
になります。mybackup.3
という結果を得るには、構文&1..3
を使用します。
置換変数を使用するストアド・スクリプトを作成する場合は、作成時に例となる値を指定する必要があります。これらの値は、RMANの起動時にUSING
句で指定するか(「RMAN」
を参照)、またはプロンプトが表示されたときに入力します(例2-62を参照)。
構文
createScript::=
(backupCommands::=、maintenanceCommands::=、miscellaneousCommands::=、restoreCommands::=)
セマンティクス
構文要素 | 説明 |
---|---|
GLOBAL |
スクリプトをグローバルとして指定します。
注意: 仮想プライベート・カタログは、グローバル・スクリプトに対して読取り専用のアクセスが可能です。グローバル・スクリプトの作成と更新は、ベース・リカバリ・カタログへの接続中に行う必要があります。 |
SCRIPT script_name |
スクリプトの名前を指定します。スクリプト名に空白または予約語が含まれている場合は、引用符で囲む必要があります。 |
COMMENT ' comment ' |
説明のコメントをリカバリ・カタログ内のストアド・スクリプトと関連付けます。このコメントは、LIST SCRIPT NAMES の出力で使用されます。 |
backupCommands
|
ストアド・スクリプトに含めるコマンドを指定します。CREATE SCRIPT ' script_name ' { ... } コマンドのカッコ内で使用できるコマンドは、RUN コマンド内でサポートされているコマンドと同じです。RUN コマンド内で有効なコマンドは、いずれもストアド・スクリプトで使用できます。コマンドRUN 、@(アットマーク) および@@(二重アットマーク) は、ストアド・スクリプト内では使用できません。 |
FROM FILE ' filename ' |
指定したファイルからスクリプトを定義する一連のコマンドを読み取ります。
このファイルは、有効なストアド・スクリプトの本体と同様である必要があります。このファイルの最初の行は、左カッコ( |
例2-60 ローカル・ストアド・スクリプトの作成
データベースprod
をバックアップするローカル・ストアド・スクリプトを作成するとします。RMANを起動し、TARGET
としてprod
に接続して、リカバリ・カタログに接続します。backup_whole
というストアド・スクリプトを作成し、EXECUTE SCRIPT
を使用して、次のようにそのスクリプトを実行します。
CREATE SCRIPT backup_whole COMMENT "backup whole database and archived redo log files" { BACKUP INCREMENTAL LEVEL 0 TAG backup_whole FORMAT "/disk2/backup/%U" DATABASE PLUS ARCHIVELOG; } RUN { EXECUTE SCRIPT backup_whole; }
例2-61 グローバル・ストアド・スクリプトの作成
この例では、RMANをターゲット・データベースprod
に接続し、カタログ・ユーザーrco
としてリカバリ・カタログ・データベースcatdb
に接続します。この例では、データベースおよびアーカイブREDOログ・ファイルをバックアップするglobal_backup_db
というグローバル・スクリプトを作成します。
RMAN> CONNECT TARGET SYS@prod target database Password: password connected to target database: PROD (DBID=39525561) RMAN> CONNECT CATALOG rco@catdb recovery catalog database Password: password connected to recovery catalog database RMAN> CREATE GLOBAL SCRIPT global_backup_db { BACKUP DATABASE PLUS ARCHIVELOG; } RMAN> EXIT;
これで、RMANをprod2
などの別のターゲット・データベースに接続し、グローバル・ストアド・スクリプトを実行できます。
RMAN> CONNECT TARGET SYS@prod2 target database Password: password connected to target database: PROD2 (DBID=36508508) RMAN> CONNECT CATALOG rco@catdb recovery catalog database Password: password connected to recovery catalog database RMAN> RUN { EXECUTE SCRIPT global_backup_db; }
例2-62 置換変数を使用するストアド・スクリプトの作成
次の例では、RMANをターゲット・データベースおよびリカバリ・カタログに接続し、CREATE SCRIPT
を使用して、3つの置換変数が含まれるバックアップ・スクリプトを作成します。RMANによって、変数の初期値を入力するプロンプトが表示されます(太字がユーザー入力です)。
RMAN> CONNECT TARGET / RMAN> CONNECT CATALOG rman@catdb recovery catalog database Password: password connected to recovery catalog database RMAN> CREATE SCRIPT backup_df 2> { 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
EXECUTE SCRIPT
の実行時に、スクリプトに別の値を渡すことができます。次の例では、値3
、test_backup
およびtest
をストアド・スクリプトの置換変数に渡しています。
RMAN> RUN { EXECUTE SCRIPT backup_df USING 3 test_backup df3; }
値が置換され、スクリプトは次のように実行されます。
BACKUP DATAFILE 3 TAG test_backup1 FORMAT '/disk1/df3_%U';