把資料庫控制檔案備份到跟蹤檔案

haozg_oracle發表於2012-05-04
                              ==============================================
                                   試驗一:把資料庫控制檔案備份到跟蹤檔案
                              ==============================================
    
    
  如果控制檔案被意外的刪除可以通過跟蹤檔案來建立,避免麻煩複雜的手工建立
   (1) 備份跟蹤檔案
       SQL> alter database backup controlfile to trace;
       資料庫已更改。
      
   (2) 檢視跟蹤檔案的位置
       SQL> show parameter user_dump_dest;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
user_dump_dest                       string      D:\ORACLE\PRODUCT\10.2.0\ADMIN
                                                 \TEST\UDUMP
   (3) 確定跟蹤檔案的名稱
SQL> select a.spid from v$process a,v$session b
  2  where a.addr=b.paddr and b.username='SYS';
SPID
------------
3008
跟蹤檔案的名稱如下:test_ora_212.trc,test是例項名,212是伺服器程式對應的作業系統程式號。
上面的命令查詢到作業系統程式號。根據這個號去找相應的跟蹤檔案。這個跟蹤檔案原來是不存在的,只要執行了上面的備份
備份命令後才生成的。

(4) 檢視跟蹤檔案中與建立控制檔案相關的資訊,把這些資訊作為命令指令碼儲存。
(5) 然後down掉資料庫,刪除控制檔案。因為在資料庫開的時候是不能刪除控制檔案的。
(6) 把上面儲存的指令碼在nomount狀態下執行,系統就會根據控制檔案引數control_files的值來建立控制檔案。
    注意: 跟蹤檔案裡提供了兩種建立控制檔案的指令碼,一種是 RESETLOGS;另一種是NORESETLOGS。
          如果用第一種,那麼在開啟資料庫的時候要加引數 RESETLOGS。
          ALTER DATABASE OPEN RESETLOGS;
          如果用第二種不需要加引數 RESETLOGS。
   
(7) 跟蹤檔案建立好後shutdown。 然後根據建立控制檔案指令碼的型別來開啟資料庫。

注意:只要有一個控制檔案的備份就可以恢復由於控制檔案損壞導致的資料庫失敗。由於控制檔案不能用記事本開啟直接編輯,
      所以只要把控制檔案備份複製到資料庫控制檔案的相應多個位置上。然後執行命令:
      alter database backup controlfile to trace noresetlogs;
這樣就會生成一個新的跟蹤檔案,這個檔案的日期最大,然後編輯這個文字跟蹤檔案,去掉註釋資訊,得到建立控制檔案的指令碼。
示例如下:

STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "TEST" NORESETLOGS  ARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 'F:\TEST\TEST\REDOLOGFILE\REDO01.LOG'  SIZE 50M,
  GROUP 2 'F:\TEST\TEST\REDOLOGFILE\REDO02.LOG'  SIZE 50M,
  GROUP 3 'F:\TEST\TEST\REDOLOGFILE\REDO03.LOG'  SIZE 50M
DATAFILE
  'F:\TEST\TEST\DATAFILESYSTEM01.DBF',
  'F:\TEST\TEST\DATAFILEUNDOTBS01.DBF',
  'F:\TEST\TEST\DATAFILESYSAUX01.DBF',
  'F:\TEST\TEST\DATAFILEUSERS01.DBF',
  'F:\SY\DF_SY.DBF'
CHARACTER SET ZHS16GBK
;
RECOVER DATABASE
ALTER SYSTEM ARCHIVE LOG ALL;
ALTER DATABASE OPEN;
所以備份控制檔案是很重要的事情,尤其是在資料庫的配置發生了變化時一定要備份控制檔案。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23062014/viewspace-722723/,如需轉載,請註明出處,否則將追究法律責任。

相關文章