構文
RECOVER {general | managed | BEGIN BACKUP | END BACKUP}
general句の構文は次のとおりです。
[AUTOMATIC] [FROM location]{ {full_database_recovery | partial_database_recovery | LOGFILE filename}[ {TEST | ALLOW integer CORRUPTION | parallel_clause } [TEST | ALLOW integer CORRUPTION | parallel_clause ]...]| CONTINUE [DEFAULT] | CANCEL}
full_database_recovery句の構文は次のとおりです。
[STANDBY] DATABASE [ {UNTIL {CANCEL | TIME date | CHANGE integer} | USING BACKUP CONTROLFILE} [UNTIL {CANCEL | TIME date | CHANGE integer} | USING BACKUP CONTROLFILE]...]
partial_database_recovery句の構文は次のとおりです。
{TABLESPACE tablespace [, tablespace]... | DATAFILE {filename | filenumber} [, filename | filenumber]... | STANDBY {TABLESPACE tablespace [, tablespace]... | DATAFILE {filename | filenumber} [, filename | filenumber]...} UNTIL [CONSISTENT WITH] CONTROLFILE }
parallel句の構文は次のとおりです。
{ NOPARALLEL | PARALLEL [ integer ] }
managed句の構文は次のとおりです。
MANAGED STANDBY DATABASE recover_clause | cancel_clause | finish_clause
recover_clauseの構文は次のとおりです。
{ { DISCONNECT [ FROM SESSION ] | { TIMEOUT integer | NOTIMEOUT } } | { NODELAY | DEFAULT DELAY | DELAY integer } | NEXT integer | { EXPIRE integer | NO EXPIRE } | parallel_clause | USING CURRENT LOGFILE | UNTIL CHANGE integer | THROUGH { [ THREAD integer ] SEQUENCE integer | ALL ARCHIVELOG | { ALL | LAST | NEXT } SWITCHOVER} } [ DISCONNECT [ FROM SESSION ] | { TIMEOUT integer | NOTIMEOUT } | { NODELAY | DEFAULT DELAY | DELAY integer } | NEXT integer | { EXPIRE integer | NO EXPIRE } | parallel_clause | USING CURRENT LOGFILE | UNTIL CHANGE integer | THROUGH { [ THREAD integer ] SEQUENCE integer | ALL ARCHIVELOG | { ALL | LAST | NEXT } SWITCHOVER} ] ...
cancel_clauseの構文は次のとおりです。
CANCEL [IMMEDIATE] [WAIT | NOWAIT]
finish_clauseの構文は次のとおりです。
[ DISCONNECT [ FROM SESSION ] ] [ parallel_clause ]FINISH [ SKIP [ STANDBY LOGFILE ] ] [ WAIT | NOWAIT ]
parallel_clauseの構文は次のとおりです。
{ NOPARALLEL | PARALLEL [ integer ] }
1つ以上の表領域、1つ以上のデータ・ファイル、またはデータベース全体に対してメディア・リカバリを実行します。RECOVERコマンドの詳細は、『Oracle Database管理者ガイド』、『Oracle Database SQL言語リファレンス』のALTER DATABASE RECOVERコマンドに関する項、および『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。
項
リカバリ操作を続ける必要のある次のアーカイブREDOログ・ファイルの名前を自動的に生成します。Oracle Databaseは、ターゲットのREDOログ・ファイル名を生成するために、LOG_ARCHIVE_DEST(またはLOG_ARCHIVE_DEST_ 1)パラメータおよびLOG_ARCHIVE_FORMATパラメータ(またはそのデフォルト)を使用します。そのファイルが存在する場合、REDOはそのファイルが適用されるように含めます。ファイルが存在しない場合、SQL*Plusは、提案として生成したファイル名をプロンプトに表示します。
AUTOMATICまたはLOGFILEのどちらも指定しない場合、SQL*Plusで自動的に生成したファイル名をプロンプトに表示します。生成されたファイル名を指定するか、または完全に修飾されたファイル名に置き換えます。アーカイブされたファイル名が、Oracle Databaseが生成したものと異なっていると判明している場合は、LOGFILE句を使用することによってファイル名を指定するための時間を削減できます。
アーカイブREDOログ・ファイル・グループが読み取られた位置を指定します。locationの値は、完全に指定されたファイル位置である必要があります。このパラメータを省略すると、SQL*Plusは、アーカイブREDOログ・ファイル・グループが初期化パラメータLOG_ARCHIVE_DESTまたはLOG_ARCHIVE_DEST_1で指定された位置に存在するとみなします。ファイルをSET LOGSOURCEで設定した場合、FROMは指定できません。
full_database_recovery
データベース全体のリカバリを指定できます。
partial_database_recovery
個々の表領域およびデータ・ファイルのリカバリを指定できます。
指定したREDOログ・ファイルを適用して、メディア・リカバリを続行します。対話形式のリカバリ・モード(AUTORECOVERY OFF)では、無効なログ・ファイル名を入力すると、無効なログ・ファイル名に対するエラーが表示され、新しいログ・ファイル名の入力を求めるプロンプトが表示されます。
TEST
発生する可能性がある問題を検知するために試行リカバリを指定します。REDOは正常に適用されますが、変更はディスクに書き込まれません。また、変更は試行リカバリの最後にロールバックされます。バックアップをリストアした場合は、試行リカバリでTEST句のみを使用できます。ログ・ファイルが破損している場合、リカバリ処理中に許容可能な破損ブロックの数を指定します。通常のリカバリ処理では、integerに2以上は指定できません。
ALLOW integer CORRUPTION
ログ・ファイルが破損している場合、リカバリ処理中に許容可能な破損ブロックの数を指定します。
parallel _clause
リカバリ操作中に使用するパラレル処理の並列度を指定できます。
スレッドを無効にするために中断した後、複数インスタンス・リカバリを続行します。
CONTINUE DEFAULT
ログ・ファイル名を指定しない場合、Oracle Databaseが自動的に生成したREDOログ・ファイル名を使用してリカバリを続行します。これは、Oracle Databaseがファイル名の入力を求めるプロンプトを表示しないことを除いて、AUTOMATICを指定するのと同じです。
取消しベースのリカバリを中断します。
制御ファイルおよびプライマリ・データベースからコピーしたアーカイブREDOログ・ファイルを使用して、スタンバイ・データベースをリカバリします。スタンバイ・データベースは、マウントされているがオープンされていない状態である必要があります。
データベース全体をリカバリします。
取消しベースの不完全リカバリを指定します。アーカイブREDOログ・ファイルとして生成されたファイル名をプロンプトに表示することによって、リカバリが進められます。また、ファイル名のかわりにCANCELを指定すると、リカバリは完了します。
時間ベースの不完全リカバリを指定します。一重引用符を使用して、次の形式で指定します。
'YYYY-MM-DD:HH24:MI:SS'
変更ベースの不完全リカバリを指定します。integerは、リカバリする最後のシステム変更番号(SCN)の次の番号です。たとえば、データベースを9番のSCNのトランザクションまでリストアする場合は、UNTIL CHANGE 10と指定します。
現在の制御ファイルのかわりに使用される制御ファイルのバックアップを指定します。
特定の表領域をリカバリします。tablespaceは、現行データベースの表領域の名前です。1文で、16の表領域をリカバリできます。
特定のデータ・ファイルをリカバリします。データ・ファイルのすべての番号を指定できます。
スタンバイ・データベース内の損失または破損した表領域を、プライマリ・データベースおよび制御ファイルからコピーしたアーカイブREDOログ・ファイルを使用して再構築します。
スタンバイ・データベース内の損失または破損したデータ・ファイルを、プライマリ・データベースおよび制御ファイルからコピーしたアーカイブREDOログ・ファイルを使用して再構築します。
UNTIL CONSISTENT WITH CONTROLFILE
古いスタンバイ・データ・ファイルまたは表領域のリカバリは、現行のスタンバイ・データベースの制御ファイルを使用するように指定します。
PARALLEL [integer]
SQL*Plusは並列度を選択します。並列度とは、すべての関係するインスタンスで使用可能なCPUの数に、PARALLEL_THREADS_PER_CPU初期化パラメータの値を掛けたものです。
RECOVERY_PARALLELISM初期化パラメータは、PARALLELキーワードによって上書きされます。PARALLELキーワードの詳細は、『Oracle Real Application Clusters管理およびデプロイメント・ガイド』を参照してください。
integerを使用して、パラレル操作で使用するパラレル・スレッド数である並列度を指定します。各パラレル・スレッドは、1つまたは2つのパラレル実行プロセスを使用します。
シリアル・リカバリ処理を指定します。これがデフォルトです。
MANAGED STANDBY DATABASE
継続スタンバイ・リカバリ・モードを指定します。このモードでは、スタンバイ・データベースは、スタンバイ・データベースのアーキテクチャ全体の、アクティブ・コンポーネントとみなされます。プライマリ・データベースは、REDOログ・ファイルをスタンバイ・サイトに積極的にアーカイブします。これらのアーカイブREDOログがスタンバイ・サイトにアーカイブされると、管理スタンバイ・リカバリ操作で使用可能になります。継続スタンバイ・リカバリは、メディア・リカバリに制限されています。
この句のパラメータの詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。
DISCONNECT
管理REDO処理(MRP)が分離バックグラウンド・プロセスとしてアーカイブREDOファイルを適用する必要があることを示します。現行のセッションは使用可能のままとなります。
TIMEOUT
継続リカバリ操作までの待機時間を分単位で指定します。リカバリ・プロセスはintegerに指定された時間(分)、要求されたアーカイブREDOログがスタンバイ・データベースへ書込み可能になるまで待機します。REDOログ・ファイルがその時間内に書込み可能にならない場合、リカバリ・プロセスは、エラー・メッセージを表示して終了します。この場合、継続スタンバイ・リカバリ・モードに戻るための文を再発行できます。
この句を指定しない場合、またはNOTIMEOUTを指定する場合は、RECOVER CANCEL句とともに文を再発行するか、インスタンスを停止するか、またはインスタンス障害が発生するまで、データベースは継続スタンバイ・リカバリ・モードのままです。
NODELAY
プライマリ・データベースのLOG_ARCHIVE_DEST_nパラメータで設定されたDELAYを無視して、スタンバイ・データベースに遅延されているアーカイブ・ログをすぐに適用します。この句を省略すると、アーカイブ・ログの適用は、パラメータの設定に従って遅延します。DELAYがパラメータで指定されていない場合、アーカイブ・ログはすぐに適用されます。
DEFAULT DELAY
LOG_ARCHIVE_DEST_n初期化パラメータで指定したデフォルトの時間(分)待機してから、アーカイブREDOログを適用します。
DELAY integer
integerに指定した時間(分)待機してから、アーカイブREDOログを適用します。
NEXT integer
指定された番号のアーカイブREDOログを、アーカイブ後できるだけ早く適用します。このパラメータは、プライマリ・データベースのLOG_ARCHIVE_DEST_nパラメータのDELAY設定、および以前のSQL*Plus RECOVERコマンドとALTER DATABASE RECOVERコマンドに指定された遅延値よりも一時的に優先されます。
EXPIRE integer
管理リカバリ操作が自動終了してから現在の時刻までの時間を分単位で指定します。
NO EXPIRE
以前指定したEXPIRE integerオプションを無効にします。
USING CURRENT LOGFILE
REDOログ・ファイルが一杯になった場合、スタンバイ・オンラインREDOログ・ファイルからREDOログ・ファイルをリカバリします。その際、スタンバイ・データベースでREDOログ・ファイルをアーカイブしておく必要はありません。
UNTIL CHANGE integer
管理リカバリを指定したシステム変更番号(SCN)まで処理します。ただし、指定した番号は含まれません。
THROUGH THREAD integer SEQUENCE integer
アーカイブ・ログのスレッド番号および順序番号に基づいて管理リカバリを終了します。対応するアーカイブ・ログが適用されると、管理リカバリは終了します。指定しない場合は、THREADのデフォルト値は1になります。
THROUGH ALL ARCHIVELOG
すべてのアーカイブ・ログがリカバリされるまで、管理スタンバイを継続します。この文を使用すると、以前の文で発行されたTHROUGH THREAD integer SEQUENCEinteger句を上書きできます。THROUGH句を省略した場合、これがデフォルト値となります。
THROUGH ALL SWITCHOVER
スイッチオーバー操作が実行される間、管理スタンバイ・リカバリを実行できるようにします。
THROUGH LAST SWITCHOVER
最終のEND-OF-REDOアーカイブ・インジケータの後、管理スタンバイ・リカバリを終了します。
THROUGH NEXT SWITCHOVER
次のEND-OF-REDOアーカイブ・インジケータのリカバリ後、管理スタンバイ・リカバリを終了します。
現在のアーカイブREDOファイルの適用後、管理スタンバイ・リカバリを終了します。リカバリ処理が終了すると、セッションに制御が戻ります。
CANCEL IMMEDIATE
現行のアーカイブREDOファイルを適用した後、または次のREDOログ・ファイルが読み取られた後(いずれか早い方の処理の後)で、管理スタンバイ・リカバリを終了します。リカバリ処理が終了すると、セッションに制御が戻ります。
CANCEL IMMEDIATE WAIT
現行のアーカイブREDOファイルを適用した後、または次のREDOログ・ファイルが読み取られた後(いずれか早い方の処理の後)で、管理スタンバイ・リカバリを終了します。管理スタンバイ・リカバリが終了すると、セッションに制御が戻ります。
CANCEL IMMEDIATEは、RECOVER MANAGED STANDBY DATABASE文を発行した同じセッションから発行できません。
CANCEL IMMEDIATE NOWAIT
現行のアーカイブREDOファイルを適用した後、または次のREDOログ・ファイルが読み取られた後(いずれか早い方の処理の後)で、管理スタンバイ・リカバリを終了します。すぐにセッションに制御が戻ります。
CANCEL NOWAIT
次のREDOログ・ファイルの読取り後に管理スタンバイ・リカバリを終了し、すぐに制御をセッションに戻します。
FINISH
スタンバイ・データベースの現行のスタンバイ・オンライン・ログ・ファイルをリカバリします。プライマリ・データベースに障害が発生した場合に、この句は有効です。この句はアーカイブ・ログに指定された遅延を無視します。そのため、ログがすぐに適用されます。
TIMEOUT、DELAY、EXPIREまたはNEXT句を指定している場合は、FINISHを発行できません。
使用方法
OSDBAロールを使用可能にする必要があります。マルチスレッド・サーバーを経由して接続した場合、RECOVERコマンドを使用できません。
データベース全体(すべての表領域)でメディア・リカバリを実行するには、マウントされていてクローズ状態である必要があります。また、リカバリに必要なすべての表領域がオンラインである必要があります。
表領域でメディア・リカバリを実行するには、データベースはマウントされているか、またはオープン状態である必要があります。また、表領域はオフラインである必要があります。
データ・ファイルでメディア・リカバリを実行するには、データベースがオープンしていて破損したデータ・ファイルとオフライン(そのファイルがSYSTEM表領域の一部である場合を除く)でマウントされた状態である必要があります。
RECOVERコマンドを使用する前に、以前のバックアップから破損したデータ・ファイルのコピーをリストアしておく必要があります。バックアップが作成されたときまでさかのぼって、すべてのアーカイブされたREDOログ・ファイルおよびオンラインのREDOログ・ファイルにアクセスできることを確認してください。
リカバリ時に他のログ・ファイルが必要な場合、必要とされるファイルの名前が提案として生成されます。名前は、初期化パラメータLOG_ARCHIVE_DESTおよびLOG_ARCHIVE_FORMATで指定された値から導出されます。必要に応じて、LOG_ARCHIVE_DESTで指定した宛先に、リカバリに必要なアーカイブREDOログ・ファイルのコピーをリストアします。SET LOGSOURCEコマンドでLOGSOURCE変数を設定することによって初期化パラメータを上書きできます。
リカバリ時に、[Return]を押すことによって提案されたログ名を指定できます。ログ名のかわりにCANCELを入力することによってリカバリを取消しできます。また、プロンプトを進めないでファイルを自動選択するにはプロンプトでAUTOを入力します。
自動リカバリ(SET AUTORECOVERY ON)を使用可能にする場合は、ファイル名をプロンプトに表示させないでリカバリを進めます。状態を示すメッセージは、それぞれのログ・ファイルが適用されているときに表示されます。通常のメディア・リカバリが実行されている場合、完了した状態で戻ってきます。
例
データベース全体をリカバリするには、次のように入力します。
RECOVER DATABASE
指定した時間までにデータベースをリカバリするには、次のように入力します。
RECOVER DATABASE UNTIL TIME 01-JAN-2001:04:32:00
データベースから2つの表領域ts_oneおよびts_twoをリカバリするには、次のように入力します。
RECOVER TABLESPACE ts_one, ts_two
データベースからデータ・ファイルdata1.dbをリカバリするには、次のように入力します。
RECOVER DATAFILE 'data1.db'