oracle controlfile backup and recovery

來源:互聯網
上載者:User

備份:

alter database backup controlfile to 'xxxxxxx' reuse;
alter database bakcup controlfile to trace as 'xxxxxxx';
RMAN備份控制檔案

恢複執行個體:

1.控制檔案損壞後利用二進位備份恢複(異常斷電)

    

 備份控制檔案:
alter database backup controlfile to '/home/oracle/control.ctl ' reuse;
插入測試資料:
SQL> insert into t1 values(1);
SQL> commit;
類比斷電:
SQL> shutdown abort;
類比控制檔案故障:
rm -rf /database/oradata/skyread/control01.ctl
rm -rf /database/oradata/skyread/control02.ctl
rm -rf /database/oradata/skyread/control03.ctl
再次開啟資料庫:
SQL> startup;
ORA-00205: error in identifying control file, check alert log for more info
報00205錯誤
把備份檔案複製到資料庫控制檔案所在位置:
cp /home/oracle/control.ctl /database/oradata/skyread/control01.ctl
cp /home/oracle/control.ctl /database/oradata/skyread/control02.ctl
cp /home/oracle/control.ctl /database/oradata/skyread/control03.ctl
SQL> startup force mount
Total System Global Area           5049942016 bytes
Fixed Size                            2090880 bytes
Variable Size                      1375733888 bytes
Database Buffers                   3657433088 bytes
Redo Buffers                         14684160 bytes
Database mounted.

   

檢查資料檔案,資料檔案頭,記錄檔以及控制檔案的scn資訊,由於是機器斷電,所以這裡fuzzy的狀態是YES

SQL> select file#,status,fuzzy,CHECKPOINT_CHANGE# from v$datafile_header;
               FILE# STATUS  FUZ   CHECKPOINT_CHANGE# -------------------- ------- --- --------------------                    1 ONLINE  YES         122694280130                    2 ONLINE  YES         122694280130                    3 ONLINE  YES         122694280130                    4 ONLINE  YES         122694280130                   18 ONLINE  YES         122694280130                   26 ONLINE  YES         122694280130                   31 ONLINE  YES         122694280130

SQL> select group#,sequence#,members,archived,status,first_change# from v$log;
              GROUP#            SEQUENCE#              MEMBERS ARC STATUS                  FIRST_CHANGE# -------------------- -------------------- -------------------- --- ---------------- --------------------                    1                    1                    1 NO  CURRENT                  122694212304                    2                    2                    1 YES INACTIVE                 122693905385                    5                    3                   1 YES INACTIVE                 122694191761                    4                    4                    1 YES INACTIVE                 122694190542                    3                    5                    1 YES INACTIVE                 122694168156

  CONTROLFILE_CHANGE#是備份時的控制檔案SCN,這裡資料檔案的檢查點肯定是大於當時備份的控制檔案,所以資料開啟的時候,資料檔案,記錄檔,控制檔案的檢查點資訊是不一致的,要進行介質恢複到一致,才能開啟,以上V$LOG,V$DATAFILE都是和備份的控制檔案的檢查點一致的。但是v$datafile_header記錄的是最新的,就是資料庫關閉前的。所以如果開啟的時候做會做檢查,檢查資料檔案頭的檢查點計數和與現在控制檔案的檢查點技術是否相等,如果相等,進行第二次檢查,也就是檢查資料檔案頭開始的SCN和控制檔案結束的SCN是否相等,如果相等,就不需要進行恢複,不相等,就需要進行恢複。這裡明顯是不相等的,所以需要recovery。 SQL> select checkpoint_change#,controlfile_change#,resetlogs_change# from v$database; 
  CHECKPOINT_CHANGE#  CONTROLFILE_CHANGE#    RESETLOGS_CHANGE# -------------------- -------------------- --------------------         122694212305        
 
122694259161  
       122693676208

介質恢複資料庫:提示需要應用redo01.log SQL> recover database using backup controlfile; ORA-00279: change 122694280130 generated at 05/03/2013 11:25:37 needed for thread 1 ORA-00289: suggestion : /database/oradata/arch/1_1_814447469.dbf ORA-00280: change 122694280130 for thread 1 is in sequence #1

Specify log: {<RET>=suggested | filename | AUTO | CANCEL} /database/oradata/skyread/redo01.log Log applied. Media recovery complete. 重設記錄檔開啟資料庫: SQL> alter database open resetlogs; Database altered.


2.控制檔案損壞後利用trace檔案重建控制檔案(順利關機) 備份控制檔案為文字格式設定 SQL> alter database backup controlfile to trace as '/home/oracle/controlfile.sql' reuse; Database altered. 乾淨關閉資料庫並破壞所有控制檔案 SQL> shutdown immediate;

mv /database/oradata/skyread/control01.ctl /database/oradata/skyread/control01.ctl.bak mv /database/oradata/skyread/control02.ctl /database/oradata/skyread/control02.ctl.bak mv /database/oradata/skyread/control03.ctl /database/oradata/skyread/control03.ctl.bak

開啟資料庫出錯 SQL> startup; ORACLE instance started.
Total System Global Area 5049942016 bytes Fixed Size                  2090880 bytes Variable Size            1375733888 bytes Database Buffers         3657433088 bytes Redo Buffers               14684160 bytes ORA-00205: error in identifying control file, check alert log for more info

在nomount模式用/home/oracle/controlfile.sql中的語句重建控制檔案,注意這裡用的是NORESETLOGS,這裡因為我們是乾淨關閉資料做的測試,相當於資料檔案和記錄檔都是沒有損壞的,這裡是基於資料檔案頭和記錄檔頭的資訊構建出控制檔案,所以這個控制檔案和資料檔案頭和記錄檔頭都是一致的,既然是一致的,那麼都不需要recover,直接開啟資料庫即可。 注意:這裡如果是用二進位備份控制檔案進行恢複,還是需要recover的,因為你備份的二進位檔案和當前的資料檔案頭資訊一般是不一致的。 CREATE CONTROLFILE REUSE DATABASE "SKYREAD" NORESETLOGS FORCE LOGGING ARCHIVELOG     MAXLOGFILES 20     MAXLOGMEMBERS 5     MAXDATAFILES 1000     MAXINSTANCES 8     MAXLOGHISTORY 2337 LOGFILE   GROUP 1 '/database/oradata/skyread/redo01.log'  SIZE 512M,   GROUP 2 '/database/oradata/skyread/redo02.log'  SIZE 512M,   GROUP 3 '/database/oradata/skyread/redo03.log'  SIZE 512M,   GROUP 4 '/database/oradata/skyread/redo04.log'  SIZE 512M,   GROUP 5 '/database/oradata/skyread/redo05.log'  SIZE 512M DATAFILE   '/database/oradata/skyread/system01.dbf',   '/database/oradata/skyread/tbs_test.dbf',   '/database/oradata/skyread/sysaux01.dbf',   '/database/oradata/skyread/users01.dbf',   '/database2/oradata/skyread/TBS_MRPMUSIC01.dbf',   '/database/oradata/skyread/sf01.dbf',   '/database2/oradata/skyread/undotbs02' CHARACTER SET UTF8;

SQL> alter database open; Database altered

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.