天天看點

重建控制檔案--Rebuild controlfile

  重建控制檔案時DBA需要知道,但是也許整個職業生涯都不會再生産系統上遇見。

    首先強調,備份是最安全,快捷,有效的恢複方式,一個DBA,如果沒有規劃好有效的備份,終有一天,他會被噩夢驚醒。

       夢醒之後,就是無奈的,繁雜的手工恢複。而且,恢複到什麼程度,就要看天,看命,反正不能看自己了,因為沒有備份,你已經将主動權完全交個别人。這裡就記錄一下controlfile的重建

     在其他正常的資料庫上建立controlfile trace

       trace 檔案路徑在user_dump_dest下

SQL> show parameter user_dump_dest  

NAME            TYPE         VALUE  

--------------  ------       ------------------------------------------------  

user_dump_dest  string       /home/oracle/admin/R10105/udump/ 

After navigating to the directory locate the latest trace file by date/time by issuing:   ls -ltr. 

% cd /home/oracle/admin/R10105/udump/  

% ls -ltr

一個完整的trace請參考附件

    你可以修改trace檔案的路徑等具體參數值,并提取其中的建立腳本  

STARTUP NOMOUNT 

CREATE CONTROLFILE REUSE DATABASE "R10105" NORESETLOGS  ARCHIVELOG 

    MAXLOGFILES 16 

    MAXLOGMEMBERS 3 

    MAXDATAFILES 100 

    MAXINSTANCES 8 

    MAXLOGHISTORY 454 

LOGFILE 

  GROUP 1 '/opt/oracle/oradata/R10105/redo01.log'  SIZE 10M, 

  GROUP 2 '/opt/oracle/oradata/R10105/redo02.log'  SIZE 10M, 

  GROUP 3 '/opt/oracle/oradata/R10105/redo03.log'  SIZE 10M 

-- STANDBY LOGFILE 

DATAFILE 

  '/opt/oracle/oradata/R10105/system01.dbf', 

  '/opt/oracle/oradata/R10105/undotbs01.dbf', 

  '/opt/oracle/oradata/R10105/sysaux01.dbf', 

  '/opt/oracle/oradata/R10105/users01.dbf', 

  '/opt/oracle/oradata/R10105/example01.dbf' 

CHARACTER SET AL32UTF8 

;

   注冊archivelog

-- ALTER DATABASE REGISTER LOGFILE '/home/oracle/flash_recovery_area/R10105/archivelog/2012_06_15/o1_mf_1_1_%u_.arc'; 

-- Recovery is required if any of the datafiles are restored backups, 

-- or if the last shutdown was not normal or immediate. 

RECOVER DATABASE 

-- All logs need archiving and a log switch is needed. 

ALTER SYSTEM ARCHIVE LOG ALL; 

-- Database can now be opened normally. 

ALTER DATABASE OPEN; 

-- Commands to add tempfiles to temporary tablespaces. 

-- Online tempfiles have complete space information. 

-- Other tempfiles may require adjustment. 

ALTER TABLESPACE TEMP ADD TEMPFILE '/opt/oracle/oradata/R10105/temp01.dbf' 

     SIZE 20971520  REUSE AUTOEXTEND ON NEXT 655360  MAXSIZE 32767M; 

-- End of tempfile additions. 

--

  其實重建控制檔案,就是相當于手動重建立庫,把現有的資料庫資源,逐一添加到controlfile中,最後注冊目前的archivelog檔案。

    同時,重建controlfile分為NORESETLOGS和RESETLOGS兩種,根據需求選擇相應的腳本。

    最後的最後,這一切,都是噩夢,還是做好有效備份,有備無患,才是王道!!

<a href="http://down.51cto.com/data/2360866" target="_blank">附件:http://down.51cto.com/data/2360866</a>

本文轉自 hsbxxl 51CTO部落格,原文連結:http://blog.51cto.com/hsbxxl/908251,如需轉載請自行聯系原作者