Performing User-Managed Database-18.7、Performing Complete User-Managed Media Recovery

來源:互聯網
上載者:User

標籤:ffline   base   div   1.3   time   還原   status   reset   離線   

18.7、Performing Complete User-Managed Media Recovery
完畢一致性備份,把資料庫恢複到當前的scn是最好的結果。能夠恢複整個資料庫。恢複單個資料表空間。或恢複資料檔案。一致性恢複不須要resetlogs開啟資料庫,非一致性恢複須要resetlogs開啟資料庫。Backup and Recovery Basics提供了關於介質恢複的資訊。

18.7.1、Performing Closed Database Recovery
能夠在一個操作中恢複全部損壞的資料檔案。也能夠分開操作恢複每一個損壞的資料檔案。

18.7.1.1、Preparing for Closed Database Recovery
(1)關閉資料庫,檢查出現故障的介質裝置
(2)假設引起介質失敗的問題是暫時的,假設資料沒有損壞(比方,磁碟或控制器掉電),不須要介質恢複:僅僅需啟動資料庫。又一次開始操作。

假設不能修複,就進行下面步驟

18.7.1.2、Restoring Backups of the Damaged or Missing Files
(1)推斷哪些資料檔案須要恢複
(2)找到損壞的資料檔案的近期備份。只還原損壞的資料檔案:不要還原沒有損壞的資料檔案或不論什麼重做記錄檔。假設沒有不論什麼備份。只能建立一個資料檔案(有歸檔)
alter database create datafile ‘xxx‘ as ‘xxx‘ size xxx reuse
(3)使用作業系統命令把資料檔案還原到預設位置或新的位置。
alter database rename file ‘xxx‘ to ‘xxx‘;

18.7.1.3、Recovering the Database
(1)使用系統管理員許可權串連資料庫,啟動資料庫到mount
(2)查詢v$datafile獲得資料檔案名稱和狀態
(3)須要恢複的資料檔案必須是線上的,除了offline normal的資料表空間或read-only資料表空間
select ‘alter dabase datafile ‘ || name || ‘ online;‘ from  v$datafile;
(4)運行recover database,recover tablespace xxx,recover datafile ‘xxx‘等語句
(5)沒有自己主動地恢複,必須接受或拒絕每一個指出的日誌。假設自己主動地恢複,資料庫自己主動地應用日誌。


(6)介質恢複完畢,資料庫返回:Media recovery complete。


(7)alter database open

18.7.2、Performing Datafile Recovery in an Open Database
當資料庫處於開啟狀態時,出現介質失敗。不能被寫時返回錯誤。一般資料表空間的僅僅是損壞的資料檔案離線,不能查詢時返回錯誤,一般資料表空間的僅僅是損壞的資料檔案不會離線。
當資料庫處於開啟狀態時,該恢複過程不能用做system資料表空間的全然介質恢複。

假設system資料表空間的資料檔案損壞,資料庫自己主動關閉。

18.7.2.1、Preparing for Open Database Recovery
(1)資料庫處於開啟,發現須要恢複,把包括損壞的資料檔案的資料表空間離線。


(2)假設引起介質失敗的問題是暫時的,假設資料沒有損壞(比方。磁碟或控制器掉電),不須要介質恢複:僅僅需啟動資料庫,又一次開始操作。假設不能修複,就進行下面步驟

18.7.2.2、Restoring Backups of the Inaccessible Datafiles
(1)推斷哪些資料檔案須要恢複
(2)找到損壞的資料檔案的近期備份。

只還原損壞的資料檔案:不要還原沒有損壞的資料檔案或不論什麼重做記錄檔。假設沒有不論什麼備份,只能建立一個資料檔案(有歸檔)
alter database create datafile ‘xxx‘ as ‘xxx‘ size xxx reuse
SQL> alter database create datafile ‘/oracle/oradata/boss/testtbs04_01.dbf‘ as ‘/oracle/oradata/boss/testtbs04_01.dbf‘ size 10m reuse;
(3)使用作業系統命令把資料檔案還原到預設位置或新的位置。
alter database rename file ‘xxx‘ to ‘xxx‘;

18.7.2.3、Recovering Offline Tablespaces in an Open Database
(1)運行recover database,recover tablespace xxx,recover datafile ‘xxx‘等語句
(2)沒有自己主動地恢複,必須接受或拒絕每一個指出的日誌。假設自己主動地恢複,資料庫自己主動地應用日誌。
(3)介質恢複完畢,資料庫返回:Media recovery complete。


SQL> recover automatic tablespace testtbs04; 
(4)alter database open

類比1、建立資料表空間testtbs04,建立一個表,刪除相應的資料檔案,做關閉資料庫的恢複
(1)
SQL> create tablespace testtbs04
  2    datafile ‘/oracle/oradata/boss/testtbs04_01.dbf‘ size 10m
  3    autoextend on next 1m maxsize unlimited
  4    logging
  5    extent management local autoallocate
  6    blocksize 8k
  7    segment space management auto
  8    flashback on;

(2)
SQL> create table test04(id number, name varchar2(30)) tablespace testtbs04;
SQL> insert into test04 values(1, ‘xxxxx‘);
SQL> insert into test04 values(2, ‘yyyyy‘);
SQL> commit;

(3)
SQL> select group#,members,sequence#,archived,status,first_change# from v$log;

    GROUP#    MEMBERS  SEQUENCE# ARC STATUS           FIRST_CHANGE#
---------- ---------- ---------- --- ---------------- -------------
         1          1          0 YES UNUSED                       0
         2          1          0 YES UNUSED                       0
         3          1          1 NO  CURRENT                 697986

SQL> alter system switch logfile;
SQL> alter system switch logfile;
SQL> alter system switch logfile;
SQL> select group#,members,sequence#,archived,status,first_change# from v$log;

    GROUP#    MEMBERS  SEQUENCE# ARC STATUS           FIRST_CHANGE#
---------- ---------- ---------- --- ---------------- -------------
         1          1          2 YES INACTIVE                707835
         2          1          3 YES INACTIVE                707837
         3          1          4 NO  CURRENT                 707840
(4)
$ rm -rf testtbs04_01.dbf

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.

SQL> startup open;

SQL> col "檔案名稱" for a40;
SQL> col "資料表空間名" for a10
SQL> set linesize 150
SQL>
select
  ts.name "資料表空間名"
  , df.file# "檔案號"
  , df.checkpoint_change# "檢查點"
  , df.name "檔案名稱"
  , df.status "線上狀態"
  , rf.error "恢複原因"
  , rf.change# "系統變更號"
  , rf.time
  from v$tablespace ts,v$datafile df,v$recover_file rf
where ts.ts#=df.ts# and df.file#=rf.file#
order by df.file#;

SQL> select
  2    ts.name "資料表空間名"
  3    , df.file# "檔案號"
  4    , df.checkpoint_change# "檢查點"
  5    , df.name "檔案名稱"
  6    , df.status "線上狀態"
  7    , rf.error "恢複原因"
  8    , rf.change# "系統變更號"
  9    , rf.time
 10    from v$tablespace ts,v$datafile df,v$recover_file rf
 11  where ts.ts#=df.ts# and df.file#=rf.file#
 12  order by df.file#;

資料表空間名       檔案號     檢查點 檔案名稱                                   線上狀  恢複原因           系統變更號 TIME
---------- ---------- ---------- ---------------------------------------- ------- ------------------ ---------- ------------
TESTTBS02           8     652783 /oracle/oradata/boss/testtbs02_01.dbf    OFFLINE OFFLINE NORMAL              0
TESTTBS04          10     707840 /oracle/oradata/boss/testtbs04_01.dbf    ONLINE  FILE NOT FOUND              0

(5)
SQL> alter database create datafile ‘/oracle/oradata/boss/testtbs04_01.dbf‘ as ‘/oracle/oradata/boss/testtbs04_01.dbf‘ size 10m reuse;

SQL> select file#,name,status,CHECKPOINT_CHANGE#,recover from v$datafile_header where file#=10;

     FILE# NAME                                     STATUS  CHECKPOINT_CHANGE# REC
---------- ---------------------------------------- ------- ------------------ ---
        10 /oracle/oradata/boss/testtbs04_01.dbf    ONLINE              707602 YES

(6)
SQL> recover automatic tablespace testtbs04; 
Media recovery complete.

SQL> alter database open;

SQL> select * from test04;

        ID NAME
---------- ----------------------------------------
         1 xxxxx
         2 yyyyy

Performing User-Managed Database-18.7、Performing Complete User-Managed Media Recovery

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.