データベース・リカバリの失われたオンラインREDOログ・ファイルのリカバリ
13932 ワード
オンラインREDOログ・ファイルはORACLEデータベースのすべての操作を循環記録するために使用され、ほとんどの場合読み書きされるため、ある時点のオンラインREDOログ・ファイルを単純にバックアップすることは意味がなく、リカバリ時に根本的に使用されます.RMANのバックアップにはオンラインREDOログをバックアップする機能はありません.また、RMANだけでなく、すべてのバックアップソフトウェアにオンラインREDOログファイルをバックアップするという言い方はありません.したがって、オンラインREDOログが失われた後のデータベース・リカバリにもRMANは使用されません.
ORACLEデータベースが起動時にオンラインREDOログファイルが失われたことを発見した場合は、直接エラーが発生します.ORACLEは、ファイルの冗長性により、オンラインREDOログファイルのセキュリティを確保します.すなわち、オンラインREDOログのセットごとに複数のファイルが作成され、少なくとも2つのファイルが作成され、各ファイルのパスはそれぞれ独立しています.実行中のORACLEデータベースはオンラインREDOログファイルをロックし、OSコマンドで削除できません.そのため、紛失したファイルの多くはディスクの破損によるものです.オンラインREDOログ・ファイルは大きく2つのステータスに分けられます.現在書き込み中と現在書き込み中ではありません.===================================オンラインREDOログファイル情報照会:
オンラインREDOログ・ファイルのステータスは、上のSQL文クエリの結果からわかります.このうちSTATUSには6つのオプション値があります.UNUSED:は使用したことがないことを示しています.一般的に作成したばかりかOPEN RESETLOGSが開いた後、オンラインREDOログファイルはこのような状態です.ACTIVE:活動を表す.現在の状態ではありませんが、使用されているか、使用される可能性があります.CRASH RECOVERYのような状態になることがあります.CLEARING:ログが空になっています.ALTER DATABASE CLEAR LOGFILE文を実行すると、この状態になります.実行後、状態はUNUSEDとなります.CLEARING_CURRENT:ログが空になっています.ログが空になっています.空になったときにエラーが発生し、空になった作業がうまくいかない場合、ログはこのような状態になります.INACTIVE:アクティブではなく、そのグループのログの内容がアーカイブされているか、データファイルに順調に書き込まれていることを示し、そのグループのログを引き続き使用することができる.
上記のクエリの結果から、現在のORACLEデータベースには4つのオンラインREDOログがあり、各グループに1つのメンバーファイルしかありません.GROUP 2は現在使用中です.GROUP 2対応会員D:APPADMINISTRATORORADATAORCLREDO 02.LOGは、現在のオンラインREDOログファイルです.その他の3つのグループは、現在のオンラインREDOログファイルではありません.1.現在でないオンラインREDOログファイルを失う1.1現在でないオンラインREDOログファイルを削除し、リカバリする.SQL> shutdown immediate;--まずshutdownデータベースを開き、ファイルを削除します.データベースが閉じました.データベースをアンインストールしました.ORACLEルーチンは閉じました.SQL> host del D:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO01.LOG--現在のオンラインREDOログファイルGROUP 1以外のメンバーファイルを削除します.
1.2 startupデータベースの起動
1.3失われたオンラインREDOログファイルの修復
-----------------------------------------------------------------------------------------------------------------------データベースの実行中に、現在のオンラインREDOログ以外のファイルが失われたり破損したりしても、必ずしもデータベースがクラッシュするわけではありません.現在のファイルではなく、データベースが正常に動作するためです.データベースが破損したオンラインREDOログ・ファイルに切り替わると、エラーが表示されます.
2、現在のオンラインREDOログ・ファイルを紛失現在のオンラインREDOログ・ファイルを紛失し、バックアップがあっても必ずデータを失う.2.1現在のオンラインREDOログファイルを削除し、マウント状態に起動します.
2.2オンラインREDOログファイルの直接修復を試みる
----------------エラーが発生しました.紛失したREDOログファイルには必須のREDO情報が含まれており、CLEARにはできません.
2.3不完全なリカバリを実行アーカイブ・モードでバックアップがある場合、バックアップによって不完全なリカバリを実行できます.通常、現在のオンラインREDOログ・ファイルのデータのみが失われます.バックアップがない場合は、強制的にリカバリするしかありません.非表示の初期化パラメータを変更する必要があります.
2.4善後処理バックアップがなければ、上記の処理方法も最も実行可能な方法である.この修復により、データベースのデータが一致しない可能性もあります.コミットされたデータがデータファイルに書き込まれていない場合、コミットされていないデータはデータファイルに書き込まれます.データベースが正常に開き、正常にアクセスできても、アラートログファイルにはエラーメッセージがたくさんあります.この場合、EXPORT論理的にエクスポートする方法でFULL EXPORTを1回実行し、データベースを新規作成し、IMPORTより前にエクスポートしたファイル内容を実行することが望ましい.
Recovering After Losing All Members of an Online Redo Log Group If a media failure damages all members of an online redo log group, then different scenarios can occur depending on the type of online redo log group affected by the failure and the archiving mode of the database. If the damaged online redo log group is current and active, then it is needed for crash recovery; otherwise, it is not.Recovering After the Loss of an Online Redo Log Group InactiveIt is not needed for crash recovery Clear the archived or unarchived group.ActiveIt is needed for crash recovery Attempt to issue a checkpoint and clear the log; if impossible, then you must either use Flashback Database or restore a backup and perform incomplete recovery up to the most recent available redo log.CurrentIt is the redo log that the database is currently writing to Attempt to clear the log; if impossible, then you must either use Flashback Database or restore a backup and perform incomplete recovery up to the most recent available redo log.
ORACLEデータベースが起動時にオンラインREDOログファイルが失われたことを発見した場合は、直接エラーが発生します.ORACLEは、ファイルの冗長性により、オンラインREDOログファイルのセキュリティを確保します.すなわち、オンラインREDOログのセットごとに複数のファイルが作成され、少なくとも2つのファイルが作成され、各ファイルのパスはそれぞれ独立しています.実行中のORACLEデータベースはオンラインREDOログファイルをロックし、OSコマンドで削除できません.そのため、紛失したファイルの多くはディスクの破損によるものです.オンラインREDOログ・ファイルは大きく2つのステータスに分けられます.現在書き込み中と現在書き込み中ではありません.===================================オンラインREDOログファイル情報照会:
SQL> SELECT GROUP#,THREAD#,SEQUENCE#,MEMBERS,ARCHIVED,STATUS FROM V$LOG;
GROUP# THREAD# SEQUENCE# MEMBERS ARCHIVED STATUS
---------- ---------- ---------- ---------- -------- ----------------
1 1 1 1 YES INACTIVE
2 1 2 1 NO CURRENT
3 1 0 1 YES UNUSED
4 1 0 1 YES UNUSED
オンラインREDOログ・ファイルのステータスは、上のSQL文クエリの結果からわかります.このうちSTATUSには6つのオプション値があります.UNUSED:は使用したことがないことを示しています.一般的に作成したばかりかOPEN RESETLOGSが開いた後、オンラインREDOログファイルはこのような状態です.ACTIVE:活動を表す.現在の状態ではありませんが、使用されているか、使用される可能性があります.CRASH RECOVERYのような状態になることがあります.CLEARING:ログが空になっています.ALTER DATABASE CLEAR LOGFILE文を実行すると、この状態になります.実行後、状態はUNUSEDとなります.CLEARING_CURRENT:ログが空になっています.ログが空になっています.空になったときにエラーが発生し、空になった作業がうまくいかない場合、ログはこのような状態になります.INACTIVE:アクティブではなく、そのグループのログの内容がアーカイブされているか、データファイルに順調に書き込まれていることを示し、そのグループのログを引き続き使用することができる.
SQL> SELECT GROUP#,STATUS,TYPE,MEMBER FROM V$LOGFILE ORDER BY GROUP#;
GROUP# STATUS TYPE MEMBER
---------- ------- ------- --------------------------------------------
1 ONLINE D:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO01.LOG
2 ONLINE D:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO02.LOG
3 ONLINE D:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO03.LOG
4 ONLINE D:\TESTADDLOG.LOG
上記のクエリの結果から、現在のORACLEデータベースには4つのオンラインREDOログがあり、各グループに1つのメンバーファイルしかありません.GROUP 2は現在使用中です.GROUP 2対応会員D:APPADMINISTRATORORADATAORCLREDO 02.LOGは、現在のオンラインREDOログファイルです.その他の3つのグループは、現在のオンラインREDOログファイルではありません.1.現在でないオンラインREDOログファイルを失う1.1現在でないオンラインREDOログファイルを削除し、リカバリする.SQL> shutdown immediate;--まずshutdownデータベースを開き、ファイルを削除します.データベースが閉じました.データベースをアンインストールしました.ORACLEルーチンは閉じました.SQL> host del D:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO01.LOG--現在のオンラインREDOログファイルGROUP 1以外のメンバーファイルを削除します.
1.2 startupデータベースの起動
SQL> startup
ORACLE 。
Total System Global Area 647204864 bytes
Fixed Size 2178536 bytes
Variable Size 478151192 bytes
Database Buffers 159383552 bytes
Redo Buffers 7491584 bytes
。
ORA-03113:
ID: 5896
ID: 9 : 3
------------ , 。 mount 。
1.3失われたオンラインREDOログファイルの修復
SQL> startup mount;
SQL> conn sys/rusky1234@orcl as sysdba;
。
SQL> alter database clear logfile group 1;-- ALTER DATABASE CLEAR LOGFILE 。
。
SQL> alter database open;
。
-----------------------------------------------------------------------------------------------------------------------データベースの実行中に、現在のオンラインREDOログ以外のファイルが失われたり破損したりしても、必ずしもデータベースがクラッシュするわけではありません.現在のファイルではなく、データベースが正常に動作するためです.データベースが破損したオンラインREDOログ・ファイルに切り替わると、エラーが表示されます.
2、現在のオンラインREDOログ・ファイルを紛失現在のオンラインREDOログ・ファイルを紛失し、バックアップがあっても必ずデータを失う.2.1現在のオンラインREDOログファイルを削除し、マウント状態に起動します.
SQL> shutdown immediate;
SQL> host del D:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO02.LOG -- GROUP2 。
SQL> startup
ORACLE 。
Total System Global Area 647204864 bytes
Fixed Size 2178536 bytes
Variable Size 478151192 bytes
Database Buffers 159383552 bytes
Redo Buffers 7491584 bytes
。
ORA-03113:
ID: 1008
ID: 162 : 5
SQL> startup mount;
ORACLE 。
Total System Global Area 647204864 bytes
Fixed Size 2178536 bytes
Variable Size 478151192 bytes
Database Buffers 159383552 bytes
Redo Buffers 7491584 bytes
。
SQL> conn sys/rusky1234@orcl as sysdba;
。
2.2オンラインREDOログファイルの直接修復を試みる
SQL> alter database clear logfile group 2;
alter database clear logfile group 2
*
1 :
ORA-00350: 2 ( orcl , 1)
ORA-00312: 2 1: 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO02.LOG'
----------------エラーが発生しました.紛失したREDOログファイルには必須のREDO情報が含まれており、CLEARにはできません.
2.3不完全なリカバリを実行アーカイブ・モードでバックアップがある場合、バックアップによって不完全なリカバリを実行できます.通常、現在のオンラインREDOログ・ファイルのデータのみが失われます.バックアップがない場合は、強制的にリカバリするしかありません.非表示の初期化パラメータを変更する必要があります.
SQL> ALTER SYSTEM SET "_ALLOW_RESETLOGS_CORRUPTION"=TRUE SCOPE=SPFILE; -- TRUE ,ORACLE OPEN 。
。
SQL> select status from v$instance;
STATUS
------------
MOUNTED
SQL> recover database until cancel;
。
SQL> alter database open resetlogs;
。
2.4善後処理バックアップがなければ、上記の処理方法も最も実行可能な方法である.この修復により、データベースのデータが一致しない可能性もあります.コミットされたデータがデータファイルに書き込まれていない場合、コミットされていないデータはデータファイルに書き込まれます.データベースが正常に開き、正常にアクセスできても、アラートログファイルにはエラーメッセージがたくさんあります.この場合、EXPORT論理的にエクスポートする方法でFULL EXPORTを1回実行し、データベースを新規作成し、IMPORTより前にエクスポートしたファイル内容を実行することが望ましい.
Recovering After Losing All Members of an Online Redo Log Group If a media failure damages all members of an online redo log group, then different scenarios can occur depending on the type of online redo log group affected by the failure and the archiving mode of the database. If the damaged online redo log group is current and active, then it is needed for crash recovery; otherwise, it is not.Recovering After the Loss of an Online Redo Log Group InactiveIt is not needed for crash recovery Clear the archived or unarchived group.ActiveIt is needed for crash recovery Attempt to issue a checkpoint and clear the log; if impossible, then you must either use Flashback Database or restore a backup and perform incomplete recovery up to the most recent available redo log.CurrentIt is the redo log that the database is currently writing to Attempt to clear the log; if impossible, then you must either use Flashback Database or restore a backup and perform incomplete recovery up to the most recent available redo log.