3.11 RMAN
前提条件
RMAN
コマンドと任意のオプションは、RMANプロンプトではなく、オペレーティング・システムのコマンドラインで発行する必要があります。
RMANによるデータベースへの接続は、SQL*Plusによるデータベースへの接続と同じ方法で指定および認証します。RMANによるターゲット・データベースまたは補助データベースへの接続にはSYSBACKUP
権限が必要である点のみが異なります。
関連項目:
-
SQL*Plusを使用する場合のデータベース接続オプションについて学習するには、『Oracle Database管理者ガイド』を参照してください
-
SYSBACKUP
管理権限の使用について学習するには、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。
注意:
適切なセキュリティ・プラクティスとして、コマンドラインにプレーン・テキストでパスワードを入力しないことが必要です。RMANでは、RMANプロンプトで要求された場合にのみパスワードを入力してください。パスワード保護について学習するには、『Oracle Databaseセキュリティ・ガイド』を参照してください。
使用上のノート
オペレーティング・システムのプロンプトで入力するコマンド名は、オペレーティング・システムによって異なります。たとえば、LinuxシステムおよびUNIXシステムでは、小文字でrman
と入力します。
オペレーティング・システムのコマンドラインでCATALOG
またはNOCATALOG
を指定せずにRMANを起動した場合、CONNECT
CATALOG
コマンドを実行しないかぎり、RMANセッションはNOCATALOG
モードになります(例3-48を参照)。リカバリ・カタログを保持する場合は、RMAN操作を実行する前にリカバリ・カタログに接続することをお薦めします。
セマンティクス
cmdLine
構文要素 | 説明 |
---|---|
|
新規出力をメッセージ・ログ・ファイルの終わりに追加させます。このパラメータを指定せず、かつメッセージ・ログ・ファイルと同じ名前のファイルがある場合、RMANはそのファイルを上書きします。 |
|
入力されたコマンドに対して構文エラーをチェックするモードでRecover Managerを起動させますが、それ以外の処理は実行しません(例3-51を参照)。引数 |
|
補助データベースへの接続文字列を指定します(例: 関連項目: 「 |
|
リカバリ・カタログを格納するデータベースへの接続文字列を指定します(例: 関連項目: |
|
ファイル内のすべてのRMANコマンドを解析し、コンパイルしてから、順番に実行します。解析フェーズで構文エラーが発生するか、実行フェーズでランタイム・エラーが発生すると、RMANは終了します。エラーが見つからなければ、RMANはジョブの完了後に終了します。 ファイル名の最初の文字がアルファベットの場合は、ファイル名を囲む引用符を省略できます。コマンド・ファイルの内容は、RMANプロンプトに入力した内容と同じです。 ノート: コマンド・ファイルをオペレーティング・システムのコマンドラインでオプションとして実行するのではなく、RMANプロンプトから実行すると、ファイルは1つのジョブとして実行されません。RMANは各行を順次読み込んで実行し、スクリプトの最終行に達した場合にのみ終了します。 |
|
|
{ string_or_identifier | integer } |
|
|
RMANがその出力として、処理済のコマンドとその結果を記録するファイルを指定します。RMANはプロンプトにコマンド入力を表示しますが、コマンドの出力は表示せずにログ・ファイルに書き込みます。デフォルトでは、RMANはメッセージ・ログ・ファイルを標準出力に書き出します。 また、RMAN出力は、
ノート: RMANの出力をログ・ファイルと標準出力の両方に送信する最も簡単な方法は、Linuxの % rman | tee rman.log |
|
RMANは、すべてのコマンドに対して |
|
リカバリ・カタログなしでRMANを使用するように指定します。 |
|
ベンダー固有のコマンド文字列を割り当てられたチャネルすべてに送信します。 関連項目: この機能のサポートの有無は、メディア管理ソフトウェアのドキュメントおよび「 |
|
RMANパイプ・インタフェースを起動します。RMANでは、コマンドの受信用と出力の送信用に1つずつ、2つのパブリック・パイプが使用されます。パイプの名前は RMANはターゲット・データベース内で次のパイプをオープンします。
入力と出力の両方のパイプでは、すべてのメッセージは 関連項目: パイプを通じてRMANにコマンドを渡す方法を学習するには、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。 |
|
ストアド・スクリプトの名前を指定します。 RMANは、ターゲット・データベースおよびリカバリ・カタログ( ストアド・スクリプト名が数字またはRMANの予約語で始まる場合は、そのスクリプト名を一重引用符で囲む必要があります(「RMANの予約語」を参照)。このような名前は使用しないようにします。 関連項目: ストアド・スクリプトの詳細は、「 |
|
ターゲット・データベースへの接続文字列を指定します。たとえば、 関連項目: |
|
関連項目: パイプを通じてRMANにコマンドを渡す方法を学習するには、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。 |
|
コマンド・ファイルの置換変数で使用する値を1つ以上指定します。SQL*Plusの場合と同じく、 置換変数の構文は、 関連項目: ストアド・スクリプトを実行する場合の |
例
例3-48 デフォルトのNOCATALOGモードでのターゲット・データベースへのRMANの接続
この例では、オペレーティング・システム・プロンプトでデータベース接続オプションを指定せずにRMANクライアントを起動します。RMANプロンプトで、CONNECT
コマンドを実行してターゲット・データベースに接続します。CONNECT
CATALOG
がRMANプロンプトで実行されなかったため、RMANはリポジトリ接続を必要とする最初のコマンド(この場合は、BACKUP DATABASE
コマンド)の実行時にデフォルトのNOCATALOG
モードで接続します。
% rman RMAN> CONNECT TARGET / RMAN> BACKUP DATABASE;
例3-49 補助データベース・インスタンスへのRMANの接続
この例では、ターゲット・データベースprod
およびリカバリ・カタログ・データベースcatdb
にはネット・サービス名を使用して接続し、補助データベース・インスタンスにはオペレーティング・システム認証を使用して接続します。sbu
は、SYSBACKUP
権限を付与されたユーザーです。
$ RMAN TARGET "sbu@prod AS SYSBACKUP" Recovery Manager: Release 12.1.0.1.0 - Production on Wed Jan 16 09:29:02 2013 Copyright (c) 1982, 2013, Oracle and/or its affiliates. All rights reserved. target database Password: password connected to target database: REL12 (DBID=3152825380) RMAN> CONNECT CATALOG rco@catdb recovery catalog database Password: password connected to recovery catalog database RMAN> CONNECT AUXILIARY / connected to auxiliary database: REL12 (DBID=3152825380)
例3-50 置換変数の指定
データベースをバックアップする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-51 コマンド・ファイルの構文のチェック
次のように、コマンド・ファイル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 12.1.0.1.0 - Production on Wed Jan 16 17:51:30 2013 Copyright (c) 1982, 2013, Oracle and/or its affiliates. All rights reserved. RMAN> CONNECT TARGET * 2> BACKUP DATABASE; 3> EXIT; The cmdfile has no syntax errors Recovery Manager complete.
例3-52 ストアド・スクリプトの実行とメッセージ・ログへの出力の追加
この例では、オペレーティング・システム認証を使用してターゲット・データベースに接続した後、ストアド・スクリプトwdbb
を実行します。RMANにより、出力がメッセージ・ログ/tmp/wdbb.log
に書き込まれます。
% rman TARGET / SCRIPT wdbb LOG /tmp/wdbb.log
例3-53 RMANパイプ・インタフェースの起動
この例では、タイムアウト・オプションで90秒を指定して、RMANパイプnewpipe
を起動します。
% rman PIPE newpipe TARGET / TIMEOUT 90