データベースORA-01196の故障-アーカイブログの損失回復の詳細

8816 ワード

問題:
機械室の停電のため、その中の一つのDGの備蓄庫がopenできなくなり、時報が間違って起動されました。
データベースタイムズの下のエラーを起動します。

SQL> alter database open;
alter database open
*
1行目にエラーが発生しました。
ORA-1058:standby database requiresrecovery ORA-01196:ファイル1は、メディア回復セッションの失敗によりORA-01110と食い違っています。データファイル1:'+DATA/httb 7/datafile/system.13.8849245'。
アーカイブログの応用状況を調べたら、一部のログが適用されていないことが分かりました。

SQL> Select Name,Sequence#,applied,completion_time From v$archived_log Order By Sequence# Desc;
Name,                                                               Sequence# applied completion_time
+FRA/htdb7/archivelog/2017_03_25/thread_1_seq_328776.705.939567729   328776   YES  NO  2017/3/2515:02
+FRA/htdb7/archivelog/2017_03_25/thread_1_seq_328775.713.939567727   328775   YES  NO  2017/3/2515:02
+FRA/htdb7/archivelog/2017_03_25/thread_1_seq_328774.777.939567727   328774   YES  NO  2017/3/2515:02
+FRA/htdb7/archivelog/2017_03_25/thread_1_seq_328773.771.939567725   328773   YES  NO  2017/3/2515:02
+FRA/htdb7/archivelog/2017_03_25/thread_1_seq_328772.422.939567721   328772   YES  NO  2017/3/2515:02
+FRA/htdb7/archivelog/2017_03_25/thread_1_seq_328771.482.939567721   328771   YES  NO  2017/3/2515:02
+FRA/htdb7/archivelog/2017_03_25/thread_1_seq_328770.755.939567721   328770   YES  NO  2017/3/2515:02
+FRA/htdb7/archivelog/2017_03_24/thread_1_seq_328757.1255.939481573  328757   YES  NO  2017/3/2415:06
+FRA/htdb7/archivelog/2017_03_24/thread_1_seq_328756.795.939480431   328756   YES  YES  2017/3/2414:47
+FRA/htdb7/archivelog/2017_03_24/thread_1_seq_328755.543.939479395   328755   YES  YES  2017/3/2414:29
+FRA/htdb7/archivelog/2017_03_24/thread_1_seq_328754.390.939478683   328754   YES  YES  2017/3/2414:18
+FRA/htdb7/archivelog/2017_03_24/thread_1_seq_328753.1845.939477943  328753   YES  YES  2017/3/2414:05
 
--                 ,                     
--   :
[oracle@hotel07 ~]$ asmcmd -p
ASMCMD [+fra/htdb7/ARCHIVELOG] > cd 2017_03_24/
ASMCMD [+fra/htdb7/ARCHIVELOG/2017_03_24]> ls
......
thread_1_seq_328754.390.939478683
thread_1_seq_328755.543.939479395
thread_1_seq_328756.795.939480431
thread_1_seq_328757.1255.939481573
 
--       
[oracle@hotel05 ~]$ asmcmd -p
ASMCMD [+fra/htdb5/ARCHIVELOG/2017_03_24]> ls
thread_1_seq_328754.4124.939478683
thread_1_seq_328755.349.939479395
thread_1_seq_328756.852.939480431
thread_1_seq_328757.1420.939481575
thread_1_seq_328758.3356.939510647
thread_1_seq_328759.4592.939510649
thread_1_seq_328760.3205.939510647
thread_1_seq_328761.5308.939510649
thread_1_seq_328762.5227.939510653
.....
解決策:
他の準備庫やメインライブラリの上からこの在庫がなくなったアーカイブログを手動で転送してからオープン操作を行う必要があります。
ステップは以下の通りです
1.他の正常な在庫には、欠落したアーカイブログをrmanでバックアップします。

[oracle@hotel05 ~]$ rman target /
RMAN> copy archivelog'+fra/htdb5/ARCHIVELOG/2017_03_24/thread_1_seq_328759.4592.939510649' to'/home/oracle/arcbak/thread_1_seq_328759.4592.939510649';
backupを起動して25-3月-17日です。
通路ORA_を使用しますDISK_1
通路ORA_DISK_1:アーカイブログのコピーを開始しています。
ファイリングログスレッド=1シーケンス=328759 RECID=328754 STAMP=93951052を入力します。
出力ファイル名=/home/oracle/arcbak/thread_1_seq328759.592.939510649 RECID=328794STAMP=939571923
通路ORA_DISK_1:アーカイブログのコピーが完了しました。経過時間:00:00:03
backupを25-3月-17日に完成しました。
バックアップが完了したら、アーカイブを紛失したアーカイブの準備庫に転送します。oracle@hotel05arcbakドルscp*hotel 07:/home/oracle/arcbak/
3.その後、この備品に回復操作を行う。
--アーカイブファイルディレクトリの作成[oracle@hotel07~』$rman target/
リカバリマネージャ:Release 11.2..2.0-Production on土曜日3月25日15:42:112017 Copyright(c)1982,2009,Oracle and/or itsaffiliates.  All rights rerrerved.ターゲットデータベースに接続されています。HTDB 4(DBID=1037199948、開いていません。)

RMAN> catalog start with '/home/oracle/arcbak';
スタイル/home/oracle/arcbakにマッチしたすべてのファイルを検索します。

          
=====================================
   : /home/oracle/arcbak/thread_1_seq_328763.4773.939510653
   : /home/oracle/arcbak/thread_1_seq_328767.2765.939511033
   : /home/oracle/arcbak/thread_1_seq_328766.5854.939511023
   : /home/oracle/arcbak/thread_1_seq_328759.4592.939510649
   : /home/oracle/arcbak/thread_1_seq_328758.3356.939510647
   : /home/oracle/arcbak/thread_1_seq_328760.3205.939510647
   : /home/oracle/arcbak/thread_1_seq_328762.5227.939510653
   : /home/oracle/arcbak/thread_1_seq_328761.5308.939510649
   : /home/oracle/arcbak/thread_1_seq_328757.1420.939481575
   : /home/oracle/arcbak/thread_1_seq_328764.5801.939510653
   : /home/oracle/arcbak/thread_1_seq_328765.3298.939510657
上記のファイルをディレクトリに登録しますか?y
ファイルディレクトリを作成しています。
カタログ作成済み

           
=======================
   : /home/oracle/arcbak/thread_1_seq_328763.4773.939510653
   : /home/oracle/arcbak/thread_1_seq_328767.2765.939511033
   : /home/oracle/arcbak/thread_1_seq_328766.5854.939511023
   : /home/oracle/arcbak/thread_1_seq_328759.4592.939510649
   : /home/oracle/arcbak/thread_1_seq_328758.3356.939510647
   : /home/oracle/arcbak/thread_1_seq_328760.3205.939510647
   : /home/oracle/arcbak/thread_1_seq_328762.5227.939510653
   : /home/oracle/arcbak/thread_1_seq_328761.5308.939510649
   : /home/oracle/arcbak/thread_1_seq_328757.1420.939481575
   : /home/oracle/arcbak/thread_1_seq_328764.5801.939510653
   : /home/oracle/arcbak/thread_1_seq_328765.3298.939510657

--       
RMAN> copy archivelog '/home/oracle/arcbak/thread_1_seq_328757.1420.939481575' to '+fra';
backupを起動して25-3月-17日です。
通路ORA_を使用しますDISK_1
通路ORA_DISK_1:アーカイブログのコピーを開始しています。
ファイリングログスレッド=1シーケンス=328760 RECID=149368 STAMP=939573701出力ファイル名=+FRA/httdb 7/archivelogs/2017_03_25/thread_1_seq328760.74.94573739 RECID=149375 STAMP=9395738
通路ORA_DISK_1:アーカイブログのコピーが完了しました。経過時間:00:00:01
backupを25-3月-17日に完成しました。
4.最後にopenデータベースができます。

SQL> alter database open;
SQL> select open_mode from v$database;
 
OPEN_MODE
--------------------
READ ONLY WITH APPLY
 
--      ,          
alter database open
Data Guard Broker initializing...
Data Guard Broker initialization complete
Beginning standby crash recovery.
Serial Media Recovery started
Managed Standby Recovery starting Real TimeApply
Media Recovery Log+FRA/htdb7/archivelog/2017_03_25/thread_1_seq_328757.499.939573737
Media Recovery Log/home/oracle/arcbak/thread_1_seq_328758.3356.939510647
Sat Mar 25 16:43:57 2017
Incomplete Recovery applied until change91347484119 time 03/24/2017 15:06:26
Completed standby crash recovery.
Sat Mar 25 16:43:58 2017
SMON: enabling cache recovery
Dictionary check beginning
Dictionary check complete
Database Characterset is ZHS16GBK
No Resource Manager plan active
replication_dependency_tracking turned off(no async multimaster replication found)
Physical standby database opened for readonly access.
Completed: alter database open
Sat Mar 25 16:44:01 2017
ALTER DATABASE RECOVER MANAGED STANDBYDATABASE THROUGH ALL SWITCHOVERDISCONNECT USING CURRENT LOGFILE
Attempt to start background Managed StandbyRecovery process (htdb7)
Sat Mar 25 16:44:01 2017
MRP0 started with pid=47, OS id=9619
MRP0: Background Managed Standby Recoveryprocess started (htdb7)
 started logmerger process
Sat Mar 25 16:44:06 2017
Managed Standby Recovery starting Real TimeApply
Parallel Media Recovery started with 16slaves
Waiting for all non-current ORLs to bearchived...
All non-current ORLs have been archived.
Media Recovery Log /home/oracle/arcbak/thread_1_seq_328758.3356.939510647
Media Recovery Log+FRA/htdb7/archivelog/2017_03_25/thread_1_seq_328759.1574.939573739
Completed: ALTER DATABASE RECOVER MANAGEDSTANDBY DATABASE THROUGH ALL SWITCHOVERDISCONNECT USING CURRENT LOGFILE
Media Recovery Log+FRA/htdb7/archivelog/2017_03_25/thread_1_seq_328760.922.939573741
Media Recovery Log+FRA/htdb7/archivelog/2017_03_25/thread_1_seq_328761.695.939573743
Media Recovery Log+FRA/htdb7/archivelog/2017_03_25/thread_1_seq_328762.1769.939573745
Media Recovery Log+FRA/htdb7/archivelog/2017_03_25/thread_1_seq_328763.1422.939573745
まとめ:
停電とネットの原因で、主な準備データが同期されなくなり、ログがなくなった場合、主にrmanツールを使ってアーカイブファイルをfsとasmの間で転送することをマスターします。データベースの復旧にはよく使われます。
また、データベースがフラッシュバック機能をオンにすると、フラッシュバックデータベースのある時点でリカバリすることもできます。もう一つのブログを参照してください。oracleデータベースORA-01196エラー解決方法を共有します。
皆さんの役に立つことを望んでいます。ありがとうございます。