7 x 24 在线支持!
Oracle バックアップのないデータ・ファイルのリカバリ方法について (アーカイブログモード)
ORACLEデータベース によくあるエラ の解決策
	プロのOracle Databaseの復旧サービスを提供
携帯番号: +86 13764045638 メール:[email protected]
[概要]
バックアップを取得していない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;
   文が処理されました。
 沪公网安备 31010802001377号
沪公网安备 31010802001377号