Email: [email protected] 7 x 24 online support!
Oracle オンラインREDOログファイルのリカバリ--多重化した一部の障害の場合 (for UNIX)
ORACLEデータベース によくあるエラ の解決策
	プロのOracle Databaseの復旧サービスを提供
携帯番号: +86 13764045638 メール:[email protected]
[概要]
 オンラインREDOログファイルのリカバリ--多重化した一部の障害の場合
[内容]
 本KROWNでは、多重化されたオンラインREDOログファイルの一部のファイルが
 障害を受けた場合のリカバリ方法を紹介します。
[対象リリース]
 Oracle7 Server/Oracle7 Workgroup Server  7.x
 Oracle8 Enterprise Edition/Oracle8 Standard Edition 8.0.x
 Oracle8i Enterprise Edition/Oracle8i Standard Edition 8.1.x
 Oracle9i Database Release1 (9.0.1.x)
 Oracle9i Database Release2 (9.2.x)
[対象プラットフォーム]
 Unixプラットフォーム
[エラー内容]
 多重化されたオンラインREDOログの一部のファイルが破損した場合には、
 アラートログファイル、又は v$logfile から確認出来ます。
 アラートには、ORA-312/ORA-313/ORA-321 又はその他付随する
 OSエラーが書き込まれます。
 --------------
 Errors in file /home/admin/ora920/bdump/ora920_lgwr_21920.trc:
 ORA-00313: open failed for members of log group 1 of thread 1
 ORA-00312: online log 1 thread 1: '/home/oradata/ora920/redo01_2.log'
 ORA-27037: unable to obtain file status
 SVR4 Error: 2: No such file or directory
 Additional information: 3
 Errors in file /home/admin/ora920/bdump/ora920_lgwr_21920.trc:
 ORA-00321: log 1 of thread 1, cannot update log file header
 ORA-00312: online log 1 thread 1: '/home/oradata/ora920/redo01_2.log'
 ORA-00313: open failed for members of log group 1 of thread 1
 --------------
 v$logfile から確認した場合には、破損したログの STATUS は 
 "INVALID" となっています。
 SQL> select * from v$logfile;
     GROUP# STATUS  TYPE    MEMBER
 ---------- ------- ------- --------------------------------------------------
          3         ONLINE  /home/oradata/ora920/redo03_2.log
          2         ONLINE  /home/oradata/ora920/redo02_2.log
          1 INVALID ONLINE  /home/oradata/ora920/redo01_2.log  <--
          1         ONLINE  /homeoradata/ora920/redo01_1.log
          2         ONLINE  /home/oradata/ora920/redo02_1.log
          3         ONLINE  /home/oradata/ora920/redo03_1.log
[リカバリ方法]
 手順例として、以下のような環境であると仮定します。
 $ORACLE_HOME: ora920
  破損したオンラインREDOログファイル: redo01_2.log
 破損したオンラインREDOログファイルが属するグループ: group#1 
1. v$logfile から破損したログファイルを特定します。
   破損したログファイルのステータスは、"INVALID" となっています。
 SQL> select * from v$logfile;
     GROUP# STATUS  TYPE    MEMBER
 ---------- ------- ------- --------------------------------------------------
          3         ONLINE  /home/oradata/ora920/redo03_2.log
          2         ONLINE  /home/oradata/ora920/redo02_2.log
          1 INVALID ONLINE  /home/oradata/ora920/redo01_2.log <--** 破損したファイル
          1         ONLINE  /homeoradata/ora920/redo01_1.log
          2         ONLINE  /home/oradata/ora920/redo02_1.log
          3         ONLINE  /home/oradata/ora920/redo03_1.log
 --> 上記結果から、問題のREDOログファイルは、group#1 のメンバー、redo01_2.log で
     あることがわかります。
2. 破損したファイルが属するロググループ(ここでは group#1) のステータスが 
  CURRENT ではないことを確認します。
  (グループの STATUS が CURRENT では、そのグループに属するメンバーの DROP を
  出来ないためです。)
   SQL> select group#, status from v$log;
        GROUP# STATUS 
    ---------- ----------------
             1 ACTIVE <--** group#1は "CURRENT" ではないことを確認
             2 CURRENT
             3 INACTIVE
  <問題のログメンバーが属するグループが CURRENT であった場合>
  問題のメンバーが属するグループが CURRENT の場合には、ログスイッチを発生させます。  
   SQL> alter system switch logfile;
3. 問題のログメンバー、redo01_2.log を DROP します。
   SQL> alter database drop logfile member
     2  '/home/oradata/ora920/redo01_2.log';
4. グループに新しいメンバーを追加します。既にOS上に存在しているログファイルを
  削除せず、再利用する場合には、reuse 句をつけて add します。
   SQL> alter database add logfile member
     2  '/home/oradata/ora920/redo01_2.log' reuse to group 1;
                                            ^^^^^
   ※ 一旦OS側でログファイルの削除を行っている場合、又は新しい名前でログファイルを
     add するには、reuse 句は必要ありません。
#注意#
 カレントグループに属するロググループの DROP は出来ません。カレントロググループに
 属するメンバーを DROP しようとした場合、以下のようなエラーとなります。
 ----------
 ORA-01609: ログ1はスレッド1の現在のログです - メンバーは削除できません
 ORA-00312: オンライン・ログ1 スレッド1:
 '/home/oradata/ora920/redo01_2.log'
 ORA-00312: オンライン・ログ1 スレッド1:
 '/home/oradata/ora920/redo01_1.log'
 ----------
 元の状態に戻ったか確認します。
    
 SQL> select * from v$logfile;
      GROUP# STATUS  TYPE    MEMBER
  ---------- ------- ------- -------------------------------------
           1      ONLINE  /home/oradata/ora920/redo01_2.log
           3         ONLINE  /home/oradata/ora920/redo03_2.log
           2         ONLINE  /home/oradata/ora920/redo02_2.log
           1         ONLINE  /home/oradata/ora920/redo01_1.log
           2         ONLINE  /home/oradata/ora920/redo02_1.log
           3         ONLINE  /home/oradata/ora920/redo03_1.log
以上で作業は完了です。
[参照情報]
「Oracle9i ユーザー管理バックアップおよびリカバリ・ガイド リリース1(9.0.1)」
「Oracle9i ユーザー管理バックアップおよびリカバリ・ガイド リリース2(9.2)」
 第6章: ユーザー管理のメディア・リカバリのシナリオ
「Oracle8i バックアップおよびリカバリ・ガイド リリース8.1」
 第6章: メディア・リカバリのシナリオ

 沪公网安备 31010802001377号
沪公网安备 31010802001377号