web-dev-qa-db-ja.com

Oracle 11g ORA-01190:制御ファイルまたはデータファイル1は最後のRESETLOGSの前のものです

Oracle 11GR2、Enterprise Editionリリース11.2.0.3.0を実行しています。今日、テストDBの1つが破損しました。幸い、Net Backupサーバーに2週間のバックアップがあるので、「これは簡単です。最新のバックアップから復元するだけで、約2時間で十分なはずです!」と思いました。

しかし、このOracle ORA-01190エラーが何度も発生しました。そのため、同じエラーが発生するよりも30分ほど早く復元時間を変更しました。

  SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01190: control file or data file 1 is from before the last RESETLOGS
ORA-01110: data file 1: '+DATA/t1/datafile/system_01.dbf'

復元時間を変更した後、次のエラーが発生しました。

SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-01152: file 1 was not restored from a sufficiently old backup
ORA-01110: data file 1: '+DATA/t1/datafile/system_01.dbf'

これは私のrmanリストアscrptです

run
 {
 allocate channel D1 type sbt_tape parms='ENV=(NB_ORA_CLIENT=t2.abc.com,NB_ORA_COPY_NUMBER=3)';
 allocate channel D2 type sbt_tape parms='ENV=(NB_ORA_CLIENT=t2.abc.com,NB_ORA_COPY_NUMBER=3)';
 allocate channel D3 type sbt_tape parms='ENV=(NB_ORA_CLIENT=t2.abc.com,NB_ORA_COPY_NUMBER=3)';
 allocate channel D4 type sbt_tape parms='ENV=(NB_ORA_CLIENT=t2.abc.com,NB_ORA_COPY_NUMBER=3)';
 set until time "to_date('16-MAR-2016 15:20:00','DD-MON-YYYY HH24:MI:SS')";
 restore controlfile;
 restore database;
 alter database mount;
 recover database;
 alter database open resetlogs;
 }

SCN方式を使用してデータベースを復元しますか?バックアップファイルからデータベースを確実に復元できる時間を確認できる明確な指標はありますか?

どうもありがとうございます!

1
dave

NetBackupから1つのデータベースを復元したところ、問題なく動作しました。重要な情報は、2つ目のテストDBが同じサーバーを共有していることでした。 2番目のDBを開こうとするとエラーが発生しました。エラーは次のようなものでした。

Your database name is T1, but the control file db name is T2.

上記の情報に基づいて、これら2つのデータベース間でデータ破損が発生する前の日付に復元時間を設定する必要があると結論付けました。 1つのサーバーを共有している2番目のDBによって1つのDBがどのように破損したかは正確にはわかりませんでした。

  1. t1 dbデータが破損する前に復元時間を設定します。
  2. すべてのASMデータを一掃するのは良い言い方です。もう一度やり直してみましょう。
  3. ASMのデータがすべてなくなった後、クリーンな状態で起動すると、リセットインカネーションで制御ファイルが見つからないという1つの紛らわしいメッセージが解決されました。
0
dave

オープンリセットログを実行したため、インカネーションを変更し、以前のインカネーションに復元しようとしています。 バックアップおよびリカバリユーザーガイドから:

現在のインカネーション内のDBPITRの手順は、現在のインカネーションのDBPITRとSCNとでは異なります。後者の場合、RESET DATABASEを明示的に実行して、データベースをターゲットSCNで最新のインカネーションにリセットする必要があります。また、ターゲットSCNを含むデータベース・インカネーションから制御ファイルをリストアする必要があります

上記の段落の後、マニュアルは手順を段階的に詳しく説明します。

「to time」または「to scn」のどちらを指定してもかまいません。 'to time'を指定すると、rmanは内部でそれをSCNに変換します。

3
EdStevens

oerrユーティリティによって提供される出力は、問題を解決するのに役立ちます。

Oerr:Oerrは、標準のOracleメッセージファイルから推奨アクションを含むエラーメッセージを抽出するOracleユーティリティです。

ORA-01190:制御ファイルまたはデータファイルstringは最後のRESETLOGSより前のものです

原因:ファイル内のログリセット情報が制御ファイルと一致しない場合に、データファイルを使用しようとしています。データファイルまたは制御ファイルは、最新のALTER DATABASE OPEN RESETLOGSの前に作成されたバックアップです。
アクション:最新のバックアップからファイルを復元します。

これは、resetlogでデータベースを開いた直後にバックアップを取る必要がある重要な理由です。

ORA-01152:ファイルstringは十分に古いバックアップからリストアされませんでした

原因:不完全な回復セッションが開始されましたが、データベースの整合性を保つために適用されたログの数が不十分です。このファイルは、最後に適用されたログの将来のものです。このエラーの最も可能性の高い原因は、不完全な回復を行う前にバックアップからファイルを復元するのを忘れていることです。

アクション:データベースが整合するまでさらにログを適用するか、古いバックアップからデータベースファイルを復元して、リカバリを繰り返します。

ここにリンクがあります フラッシュバックとデータベースのPoint-in-Timeリカバリの実行

3
JSapkota