Email: service@parnassusdata.com 7 x 24 online support!

    You are here

    • You are here:
    • Home > Blogs > PDSERVICE's blog > Oracle バックアップのないデータ・ファイルのリカバリ方法について (アーカイブログモード)

Oracle バックアップのないデータ・ファイルのリカバリ方法について (アーカイブログモード)

Oracle バックアップのないデータ・ファイルのリカバリ方法について (アーカイブログモード)

 

ORACLEデータベース によくあるエラ の解決策

プロのOracle Databaseの復旧サービスを提供
携帯番号: +86 13764045638 メール:service@parnassusdata.com

 

 

 

 

 

 

[概要]
バックアップを取得していないDatafileを誤って削除した場合の復旧方法。
(前提条件:アーカイブモード)


[詳細]
アーカイブモードで運用中に作成されたデータ・ファイルで、作成した時点か
ら現在までのすべてのオフライン REDO ログ (アーカイブファイル) 及び 
オンライン REDO ログが存在する場合、バックアップがない場合も復旧するこ
とが可能です。

 <手順>

  1. 物理的に存在しないdatafileに対して空のdatafileを作成

      SVRMGR> alter database create datafile 'データ・ファイル名';

  2. メディア回復を実行

      SVRMGR> recover datafile 'データ・ファイル名' ;

  3. DatafileをONLINEにする

      SVRMGR> alter database datafile 'データ・ファイル名' online;


 <<実行例>>  ※ 確認用に v$datafile_headerの出力も記載しています。

 0. エラー発生

   SQL> select * from test_tab;
   select * from test_tab
               *
   エラー行: 1: エラーが発生しました。
   ORA-00376: ファイル: 6を読み込むことはできません。
   ORA-01110: データ・ファイル: 6 :
    /home/app/oracle/product/8.0.5/dbs/test1.dbf

   SQL> select name,status,error,recover from v$datafile_header 
     2> where file#=6;
   NAME                                                         STATUS
   ------------------------------------------------------------ -------
   ERROR                                                            REC
   ---------------------------------------------------------------- ---
                                                                OFFLINE
   FILE NOT FOUND


 1. 物理的に存在しないdatafileに対して空のdatafileを作成

   SQL> alter database create datafile 
     2>'/home/app/oracle/product/8.0.5/dbs/test1.dbf'; 

   データベースが変更されました。

      SQL> select name,status,error,recover from v$datafile_header 
        2> where file#=6;
      NAME                                                       STATUS
      --------------------------------------------------------- -------
      ERROR                                                         REC
      ------------------------------------------------------------- ---
      /home/app/oracle/product/8.0.5/dbs/test1.dbf              OFFLINE
                                                                    YES

      SVRMGR>!ls -l /home/app/oracle/product/8.0.5/dbs/test1.dbf
      -rw-rw----   1 ora805     dba        12288  3月 28日  13:49 /home
      /app/oracle/product/8.0.5/dbs/test1.dbf


 2. メディア回復を実行

   SVRMGR> recover datafile 
        2>'/home/app/oracle/product/8.0.5/dbs/test1.dbf' ;  --- 2
   媒体回復が完了しました。

      SVRMGR>  select name,status,error,recover from v$datafile_header
           2> where file#=6;
      NAME
       STATUS  ERROR              REC
      -----------------------------------------------------------------
      ------- ------------------ ---
      /home/app/oracle/product/8.0.5/dbs/test1.dbf
       OFFLINE                    NO
      1行選択されました。
 

 3. DatafileをONLINEにする

   SVRMGR>  alter database datafile 
        2>'/home/app/oracle/product/8.0.5/dbs/test1.dbf' online; 
   文が処理されました。

      SVRMGR> select name,status,error,recover from v$datafile_header 
           2> where file#=6;
      NAME
       STATUS  ERROR              REC
      -----------------------------------------------------------------
       ------- ------------------ ---
      /home/app/oracle/product/8.0.5/dbs/test1.dbf
       ONLINE                     NO
      1行選択されました。

      SVRMGR>!ls -l /home/app/oracle/product/8.0.5/dbs/test1.dbf
      -rw-rw----   1 ora805     dba         104448  3月 28日  13:53 /ho
      me/app/oracle/product/8.0.5/dbs/test1.dbf


[補足事項]
DB停止中にデータ・ファイルを削除した場合、起動時には以下のようなエラー
が発生します。

   SVRMGR> startup
   Oracleインスタンスが起動しました。
   全システム・グローバル領域                         4857944バイト
   Fixed Size                                          49240バイト
   Variable Size                                     4325376バイト
   Database Buffers                                   409600バイト
   Redo Buffers                                        73728バイト
   データベースがマウントされました。
   ORA-01157: ????????: 6???????????????????????????
   ORA-01110: ????????: 6 : /home/app/oracle/product/8.0.5/dbs/test1.dbf

この場合にも同様の方法にてリカバリが可能です。

   SVRMGR> alter database create datafile '/home/app/oracle/product/8.0
   .5/dbs/test1.dbf';
   文が処理されました。
   SVRMGR> recover datafile '/home/app/oracle/product/8.0.5/dbs/test1.dbf';
   媒体回復が完了しました。
   SVRMGR> alter database open;
   文が処理されました。