3.5 REPLACE SCRIPT
目的
REPLACE SCRIPT
コマンドを使用すると、リカバリ・カタログに格納されている既存のスクリプトを置換できます。既存のスクリプトがない場合は、REPLACE SCRIPT
によりスクリプトが作成されます。
関連項目:
ストアド・スクリプトの作成方法は、「CREATE SCRIPT
」を参照してください。
前提条件
REPLACE SCRIPT
は、RMANプロンプトでのみ実行できます。RMANが、ターゲット・データベースとリカバリ・カタログに接続されている必要があります。リカバリ・カタログ・データベースはオープンの状態である必要があります。
ローカル・スクリプトを置き換える場合は、スクリプトの作成時に接続していたターゲット・データベースに接続する必要があります。
ストアド・スクリプト内の置換変数
RMANでは、ストアド・スクリプトで置換変数を使用できます。&1
は最初の値を配置する位置を示し、&2
は2番目の値を配置する位置を示し、これ以降も同様です。特殊文字は、引用符で囲む必要があります。
置換変数の構文では、&
integer
の後にオプションのピリオドが続きます。たとえば、&1.3
のようになります。オプションのピリオドは変数の一部であり、値と置換されます。したがって、置換テキストの直後に別の整数を続けることができます。たとえば、置換変数&1.3
が含まれているコマンド・ファイルに値mybackup
を渡すと、その置換結果はmybackup3
になります。mybackup.3
という結果を得るには、&1..3
で2つのピリオドを使用します。
置換変数を使用するストアド・スクリプトを作成する場合は、作成時に例となる値を指定する必要があります。これらの値は、RMANの起動時にUSING
句で指定するか(「RMAN」
を参照)、またはプロンプトが表示されたときに入力します(例2-74を参照)。
構文
replaceScript::=
(backupCommands::=、maintenanceCommands::=、miscellaneousCommands::=、restoreCommands::=)
セマンティクス
構文要素 | 説明 |
---|---|
|
スクリプトをグローバルとして指定します。 注意: 仮想プライベート・カタログは、グローバル・スクリプトに対して読取り専用のアクセスが可能です。グローバル・スクリプトの作成と更新は、RMANがベース・リカバリ・カタログに接続している間に行う必要があります。 関連項目: グローバル・スクリプトとローカル・スクリプトの違いについては、「使用上の注意」を参照してください |
|
置換するローカル・スクリプトまたはグローバル・スクリプトを指定します。 |
|
説明のコメントをリカバリ・カタログ内のストアド・スクリプトと関連付けます。このコメントは、 |
backupCommands
|
ストアド・スクリプトに含めるコマンドを指定します。 |
|
指定したファイルからスクリプトを定義する一連のコマンドを読み取ります。 このファイルは、有効なストアド・スクリプトの本体に類似しています。このファイルの最初の行は、左カッコ( |
例
例3-19 リカバリ・カタログ・スクリプトの置換
RMANクライアントを起動し、TARGET
としてデータベースprod
に接続して、リカバリ・カタログに接続します。CREATE SCRIPT
を使用して、次のようにbackup_db
という名前のグローバル・スクリプトを作成します。
CREATE GLOBAL SCRIPT backup_db COMMENT "back up any database from the recovery catalog, with logs" { BACKUP DATABASE; }
次に、LIST
SCRIPT NAMES
を使用して、リカバリ・カタログで認識されているすべてのスクリプトをリストします。
RMAN> LIST SCRIPT NAMES; List of Stored Scripts in Recovery Catalog Global Scripts Script Name Description ----------------------------------------------------------------------- backup_db back up any database from the recovery catalog, with logs
次に、backup_db
グローバル・スクリプトを編集するために、次のREPLACE SCRIPT
コマンドを実行します。
RMAN> REPLACE SCRIPT backup_db { BACKUP DATABASE PLUS ARCHIVELOG; } replaced script backup_db
GLOBAL
キーワードを指定していないため、RMANがbackup_db
という名前のグローバル・スクリプトに加えて、backup_db
という名前のローカル・スクリプトを作成します。LIST
SCRIPT NAMES
は、リカバリ・カタログに記録されているグローバル・スクリプトとローカル・スクリプトを両方とも示します。
RMAN> LIST SCRIPT NAMES; List of Stored Scripts in Recovery Catalog Scripts of Target Database PROD Script Name Description ----------------------------------------------------------------------- backup_db Global Scripts Script Name Description ----------------------------------------------------------------------- backup_db back up any database from the recovery catalog, with logs
次に、DELETE SCRIPT
を使用してbackup_db
という名前のローカル・スクリプトを削除し、次のようにグローバル・スクリプトを置換します。
RMAN> DELETE SCRIPT backup_db; deleted script: backup_db RMAN> REPLACE GLOBAL SCRIPT backup_db { BACKUP DATABASE PLUS ARCHIVELOG; } replaced global script backup_db
ここでのLIST SCRIPT NAMES
コマンドは、カタログにbackup_db
という名前のスクリプトのみが存在していることを示します。
RMAN> LIST SCRIPT NAMES; List of Stored Scripts in Recovery Catalog Global Scripts Script Name Description ----------------------------------------------------------------------- backup_db
PRINT SCRIPT
コマンドを実行すると、グローバル・スクリプトの変更が確認されます。
RMAN> PRINT GLOBAL SCRIPT backup_db; printing stored global script: backup_db { BACKUP DATABASE PLUS ARCHIVELOG; }