用途
@@コマンドを使用すると、指定したファイル名のオペレーティング・システム・ファイルに格納されている一連のRMANコマンドを実行できます。
@@がコマンド・ファイルに含まれている場合、@@filenameによって、RMANは、指定したファイル名をコール元のコマンド・ファイルと同じディレクトリ内で検索します。@@コマンドは、コマンド・ファイル内で使用しない場合、@(アットマーク)コマンドと同じです。
前提条件
コマンド・ファイルには、完全なRMANコマンドを記述する必要があります。
使用上の注意
コマンド・ファイルは、RMANクライアントに対してローカルです。ファイル名の解決は、オペレーティング・システムに依存します。たとえば、UNIXまたはWindowsでの@tmp/cmd1.rmanの場合、tmpが現行のディレクトリのサブディレクトリで、ファイルcmd1.rmanがそのサブディレクトリの中にあることを意味しています。
ここで、@と@@の違いを示します。RMANを次のように起動するとします。
% rman TARGET / RMAN> @/tmp/cmd1.rman
cmd1.rmanスクリプト内にコマンド@@cmd2.rmanがあるとします。この場合、@@コマンドはRMANに対して、ディレクトリ/tmpにあるファイルcmd2.rmanを検索するように指示します。
@コマンドの場合と同様に、コマンド・ファイル内に置換変数を指定して、@@の実行時に、そのコマンド・ファイルに値を渡すことができます(例2-4を参照)。
セマンティクス
| 構文要素 | 説明 |
|---|---|
|
たとえば、コマンド・ファイルの名前を |
例
例2-4 別のコマンド・ファイル内からのコマンド・ファイルのコール
次のオペレーティング・システム・コマンドによって、コマンド・ファイルbackup_logs.rmanおよびbackup_db.rmanが作成されます。
% echo "BACKUP ARCHIVELOG ALL;" > /tmp/bkup_logs.rman % echo "BACKUP TAG &1 DATABASE;" > /tmp/bkup_db.rman % echo "@@bkup_logs.rman" >> /tmp/bkup_db.rman
次の例では、コマンドラインからRMANを起動し、オペレーティング・システム認証を使用してターゲット・データベースに接続します。@コマンドは、bkup_db.rmanを実行しますが、そのファイルには@@bkup_logs.rmanコマンドが記述されています。@@コマンドは、bkup_db.rmanが存在するディレクトリと同じディレクトリからbkup_logs.rmanスクリプトを検索します。この例では、置換変数を使用して、データベース・バックアップのタグWHOLE_DBが指定されています。
% rman TARGET / RMAN> @/tmp/bkup_db.rman whole_db