ヘッダーをスキップ
Oracle® Databaseバックアップおよびリカバリ・リファレンス
11gリリース2(11.2)
B56270-05
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

RMAN

用途

RMANコマンドを使用すると、オペレーティング・システムのコマンドラインからRMANを起動できます。

RMANによるデータベースへの接続は、SQL*Plusによるデータベースへの接続と同じ方法で指定および認証します。RMANによるターゲット・データベースまたは補助データベースへの接続にはSYSDBA権限が必要である点のみが異なります。AS SYSDBAキーワードは、暗黙的に指定され、明示的には指定できません。SQL*Plusを使用する場合のデータベース接続オプションについては、『Oracle Database管理者ガイド』を参照してください。


注意:

適切なセキュリティ・プラクティスとして、コマンドラインにパスワードを入力するときは、プレーン・テキストで入力しないでください。RMANでは、RMANプロンプトで要求された場合にのみパスワードを入力してください。パスワード保護については、『Oracle Databaseセキュリティ・ガイド』を参照してください。


関連項目:

コマンドラインからRMANを起動する方法は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。

前提条件

RMANコマンドと任意のオプションは、RMANプロンプトではなく、オペレーティング・システムのコマンドラインで発行する必要があります。

使用上の注意

オペレーティング・システムのプロンプトで入力するコマンド名は、オペレーティング・システムによって異なります。たとえば、LinuxシステムおよびUNIXシステムでは、小文字でrmanと入力します。

オペレーティング・システムのコマンドラインでCATALOGまたはNOCATALOGを指定せずにRMANを起動した場合、CONNECT CATALOGコマンドを実行しないかぎり、RMANセッションはNOCATALOGモードになります(例3-32を参照)。リカバリ・カタログを保持する場合は、RMAN操作を実行する前にリカバリ・カタログに接続することをお薦めします。

セマンティクス

cmdLine

構文要素 説明
APPEND 新規出力をメッセージ・ログ・ファイルの終わりに追加させます。このパラメータを指定せず、かつメッセージ・ログ・ファイルと同じ名前のファイルがある場合、RMANはそのファイルを上書きします。
CHECKSYNTAX 入力されたコマンドに対して構文エラーをチェックするモードでRecover Managerを起動させますが、それ以外の処理は実行しません(例3-35を参照)。引数CMDFILEまたは@とともに使用すると、RMANクライアントが起動し、ファイル内のすべてのコマンドをチェックしてから終了します。コマンド・ファイルを指定せずに使用すると、RMANによって、入力が求められ、ユーザーがRMANクライアントを終了するまで各コマンドが解析されます。

RMANは、構文が正しくないそれぞれのコマンドに対してエラーRMAN-0558をレポートします。

AUXILIARY connectStringSpec 補助データベースへの接続文字列を指定します。たとえば、AUXILIARY SYS@dupdbのように指定します。

関連項目: connectStringSpecを参照してください。

CATALOG connectStringSpec リカバリ・カタログを格納するデータベースへの接続文字列を指定します。たとえば、CATALOG catowner@inst2のように指定します。

関連項目: connectStringSpecを参照してください。

CMDFILE filename ファイル内のすべてのRMANコマンドを解析し、コンパイルしてから、順番に実行します。解析フェーズで構文エラーが発生するか、実行フェーズでランタイム・エラーが発生すると、RMANは終了します。エラーが見つからなければ、RMANはジョブの完了後に終了します。

ファイル名の最初の文字がアルファベットの場合は、ファイル名を囲む引用符を省略できます。コマンド・ファイルの内容は、RMANプロンプトに入力した内容と同じにする必要があります。

注意: コマンド・ファイルをオペレーティング・システムのコマンドラインでオプションとして実行するのではなく、RMANプロンプトから実行すると、ファイルは1つのジョブとして実行されません。RMANは各行を順次読み込んで実行し、スクリプトの最終行に達した場合にのみ終了します。

@filename CMDFILEと同じです。

{string_or_identifier
| integer}
USING構文の後に指定されているオプションと同じです。
LOG filename RMANがその出力として、処理済のコマンドとその結果を記録するファイルを指定します。RMANはプロンプトにコマンド入力を表示しますが、コマンドの出力は表示せずにログ・ファイルに書き込みます。デフォルトでは、RMANはメッセージ・ログ・ファイルを標準出力に書き出します。

また、RMAN出力は、V$RMAN_OUTPUTビュー(実行中のジョブのメモリー専用ビュー)およびV$RMAN_STATUSビュー(完了したジョブおよび実行中のジョブの制御ファイル・ビュー)内にも格納されます。

LOGパラメータを指定すると、指定したファイルをオープンできない場合にもRMANは終了しません。かわりに、RMANによって標準出力が書き込まれます。

注意: RMANの出力をログ・ファイルと標準出力の両方に送信する最も簡単な方法は、Linuxのteeコマンドまたはこれに相当するコマンドを使用することです。次に例を示します。

% rman | tee rman.log
MSGNO RMANは、すべてのコマンドに対してRMAN-xxxxの形式でメッセージ番号を出力します。デフォルトでは、RMANはRMAN-xxxx接頭辞を出力しません。
NOCATALOG リカバリ・カタログなしでRMANを使用するように指定します。
SEND 'command' ベンダー固有のコマンド文字列を割り当てられたチャネルすべてに送信します。

関連項目: この機能のサポートの有無は、メディア管理ソフトウェアのドキュメントおよびSENDを参照してください。

PIPE pipe_name RMANパイプ・インタフェースを起動します。RMANでは、コマンドの受信用と出力の送信用に1つずつ、2つのパブリック・パイプが使用されます。パイプ名はPIPEパラメータの値から導出されます。たとえば、オプションPIPE rpi TARGET /を指定してRMANパイプ・インタフェースを起動できます。

RMANはターゲット・データベース内で次のパイプをオープンします。

  • ORA$RMAN_RPI_IN。RMANはこのパイプを使用してユーザー・コマンドを受信します。

  • ORA$RMAN_RPI_OUT。RMANはこのパイプを使用してすべての出力を送信します。

入力パイプと出力パイプに関するメッセージは、すべてVARCHAR2型です。

関連項目: パイプを通じてRMANにコマンドを渡す方法については、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。

SCRIPT script_name ストアド・スクリプトの名前を指定します。

RMANは、ターゲット・データベースおよびリカバリ・カタログ(TARGETおよびCATALOGオプションを使用して指定する必要がある)に接続した後、指定したストアド・スクリプトをリカバリ・カタログからターゲット・データベースに対して実行します。ターゲット・データベースにscript_nameという名前を持つグローバル・スクリプトとローカル・ストアド・スクリプトの両方が存在する場合、RMANはローカル・スクリプトを実行します。

ストアド・スクリプト名が数字またはRMANの予約語で始まる場合は、そのスクリプト名を一重引用符で囲む必要があります(「RMANの予約語」を参照)。数字で始まるスクリプト名またはRMANの予約語と一致するスクリプト名は作成しないようにする必要があります。

関連項目: ストアド・スクリプトの詳細は、CREATE SCRIPTを参照してください。

TARGET connectStringSpec ターゲット・データベースへの接続文字列を指定します。たとえば、TARGET /のように指定します。

関連項目: connectStringSpecを参照してください。

TIMEOUT integer integer秒以内に入力パイプから入力を受け取らなかった場合に、RMANを自動的に終了させます。TIMEOUTを使用する場合は、PIPEパラメータを指定する必要があります。

関連項目: パイプを通じてRMANにコマンドを渡す方法については、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。

USING {string_or_identifier | integer} コマンド・ファイルの置換変数で使用する値を1つ以上指定します。SQL*Plusの場合と同じく、&1は最初の値を配置する場所を示し、&2は2番目の値を配置する場所を示し、以降も同様に値が示されます。USING句で指定した値をRMANコマンド・ファイルに渡す方法は、例3-34で説明します。

置換変数の構文は、&integerの後にオプションでドットが続きます(&1.3など)。オプションのドットは変数の一部であり、値と置換されますので、置換テキストの直後に別の整数を続けることができます。たとえば、置換変数&1.3が含まれているコマンド・ファイルに値mybackupを渡すと、その置換結果はmybackup3になります。

関連項目: ストアド・スクリプトを実行する場合のUSING句の指定方法は、EXECUTE SCRIPTを参照してください。


例3-32 デフォルトのNOCATALOGモードでのターゲット・データベースへのRMANの接続

この例では、オペレーティング・システム・プロンプトでデータベース接続オプションを指定せずにRMANクライアントを起動します。RMANプロンプトで、CONNECTコマンドを実行してターゲット・データベースに接続します。CONNECT CATALOGがRMANプロンプトで実行されなかったため、RMANはリポジトリ接続を必要とする最初のコマンド(この場合は、BACKUP DATABASEコマンド)の実行時にデフォルトのNOCATALOGモードで接続します。

% rman
RMAN> CONNECT TARGET /
RMAN> BACKUP DATABASE;

例3-33 補助データベース・インスタンスへのRMANの接続

この例では、ターゲット・データベースprodおよびリカバリ・カタログ・データベースcatdbにはネット・サービス名を使用して接続し、補助データベース・インスタンスにはオペレーティング・システム認証を使用して接続します。

% rman TARGET SYS@prod
 
Recovery Manager: Release 11.1.0.6.0 - Production
 
Copyright (c) 1982, 2007, Oracle.  All rights reserved.
 
target database Password: password
connected to target database: PROD (DBID=39525561)

RMAN> CONNECT CATALOG rman@catdb 

recovery catalog database Password: password
connected to recovery catalog database

RMAN> CONNECT AUXILIARY /

例3-34 置換変数の指定

データベースをバックアップするLinuxシェル・スクリプトを作成するとします。シェル変数を使用して、実行時にRMANのバックアップ・スクリプトに引数を渡すことができるようにします。置換変数を使用すると、この問題が解決します。最初に、次のような内容で、whole_db.cmdという名前のコマンド・ファイルを作成します。

cat > /tmp/whole_db.cmd <<EOF
# name: whole_db.cmd
CONNECT TARGET /
BACKUP TAG &1 COPIES &2 DATABASE FORMAT '/disk2/db_%U';
EXIT;
EOF

次に、cshシェル変数のtagnameおよびcopiesを設定するLinuxシェル・スクリプトを次のように記述します。シェル・スクリプトにより、RMANが起動され、ターゲット・データベースprod1に接続され、whole_db.cmdが実行されます。USING句は、実行時に変数tagnameおよびcopiesの値をRMANコマンド・ファイルに渡します。

#!/bin/csh
# name: runbackup.sh
# usage: use the tag name and number of copies as arguments
set tagname = $argv[1]
set copies = $argv[2]
rman @'/tmp/whole_db.cmd' USING $tagname $copies LOG /tmp/runbackup.out
# the preceding line is equivalent to:
# rman @'/tmp/whole_db.cmd' $tagname $copies LOG /tmp/runbackup.out

最後に、次のようにLinuxシェルからシェル・スクリプトrunbackup.shを実行し、タグQ106を使用してデータベースのバックアップを2つ作成します。

% runbackup.sh Q106 2

例3-35 コマンド・ファイルの構文のチェック

次のように、コマンド・ファイルbackup_db.cmdを作成するとします。

cat > /tmp/backup_db.cmd <<EOF
CONNECT TARGET /
BACKUP DATABASE;
EXIT;
EOF

次の例では、コマンド・ファイルbackup_db.cmdの内容を構文チェックします(例には出力例も含まれます)。

% rman CHECKSYNTAX @'/tmp/backup_db.cmd'

Recovery Manager: Release 11.1.0.6.0 - Production on Wed Jul 11 17:51:30 2007
 
Copyright (c) 1982, 2007, Oracle.  All rights reserved.
 
RMAN> CONNECT TARGET *
2> BACKUP DATABASE;
3> EXIT;
The cmdfile has no syntax errors
 
Recovery Manager complete.

例3-36 ストアド・スクリプトの実行とメッセージ・ログへの出力の追加

この例では、オペレーティング・システム認証を使用してターゲット・データベースに接続した後、ストアド・スクリプトwdbbを実行します。RMANにより、出力がメッセージ・ログ/tmp/wdbb.logに書き込まれます。

% rman TARGET / SCRIPT wdbb LOG /tmp/wdbb.log

例3-37 RMANパイプ・インタフェースの起動

この例では、タイムアウト・オプションで90秒を指定して、RMANパイプnewpipeを起動します。

% rman PIPE newpipe TARGET / TIMEOUT 90