這裡先闡述一下資料庫的啟動過程:
1. 啟動執行個體/常式(nomount狀態)時,讀取參數檔案(文字檔PFILE 或伺服器參數檔案SPFILE),分配SGA、啟動後台進程、開啟警示檔案及後台進程追蹤檔案;
2. 裝載資料庫(mount 狀態)時,根據初始化參數control_file 的值定位並開啟控制檔案,從中得到資料檔案及重做日誌的資訊。
3. 開啟資料庫(open狀態)時,開啟所有資料檔案和重做記錄檔;至此,使用者可以正常訪問資料庫;
推薦閱讀:
Oracle教程:基於使用者管理的備份與恢複-控制檔案的備份與恢複
控制檔案用來記錄和維護資料庫的物理結構,裡面記載著資料庫開啟時需要已經定位的所有資料檔案和重做記錄檔,並且記載著同步和恢複資料庫時的記錄序號、檢查點及日誌記錄;如果控制檔案丟失,就像是人的大腦不能用了一般,只有醫生(dba)能夠處理,普通使用者不能正常訪問,那麼就失去了它作為資料庫的意義,除非恢複控制檔案或重建控制檔案(重建控制檔案的兩種情況是所有控制檔案損壞、改變資料庫名稱或資料庫的永久性參數);既然它的地位如此顯赫,那麼我們不得不重視,重視的體現就是多元化以及定期地或資料庫配置發生變化時及時備份;資料庫配置發生變化的命令有:
添加日誌
alter database [add|drop] logfile
添加日誌成員
alter datebase [add|drop] logfile member
添加日誌組
alter datebase [add|drop] logfile group
修改資料庫是否歸檔
alter datebase [noarchivelog|archivelog]
重新命名資料庫檔案
alter datebase rename file
建立資料表空間
create tablespace
添加資料檔案到相應資料表空間
alter tablespace [add|rename]datafile
修改資料表空間狀態
alter tablespace [read write|read only]
刪除資料表空間
drop tablespace
擷取控制檔案資訊視圖:
v$controlfile
備份控制檔案(建立控制檔案副本):
copy ‘E:\oracle\product\10.2.0\oradata\orcl\control01.ctl’ ‘e:\oracle\backup\control.ctl’;(冷備份|一致性備份)
或
alter database backup controlfile to ‘e:\oracle\backup\control.ctl’[reuse](熱備份|非一致性備份);
該命令會將當前控制檔案的所有資訊存放到控制檔案的副本中,通過該副本,既可以執行基於控制檔案的不完全恢複,也可以產生控制檔案的追蹤檔案;
備份控制檔案(備份到追蹤檔案):
該方案主要是為了建立控制檔案恢複控制檔案;
alter database backup controlfile to trace;
恢複控制檔案:
恢複控制檔案時,伺服器處理序和後台進程需要從控制檔案中讀取各種與備份相關的資訊。
當資料庫的控制檔案出現介質失敗時,會出現ORA-00205錯誤;
ORA-00205: error in identifying controlfile, check alert log for more info
Cause: The system could not find acontrol file of the specified name and size.
Action: Check that ALL control files areonline and that they are the same files that the system created at cold starttime.
1. 控制檔案組中的某個出現介質失敗
因為所有的控制檔案是互為鏡像,所以用其他控制檔案來恢複即可;如果出現介質失敗的磁碟也出現損壞,那麼在需要在nomount 狀態時修改control_files 參數,使之去掉有問題的控制檔案;
SQL> show parameter control_file
NAME TYPE VALUE
-------------------------------------------------------- ------------------------------
control_file_record_keep_time integer 7
control_files string E:\ORACLE\PRODUCT\10.2.0\ORADA
TA\ORCL\CONTROL01.CTL,E:\ORAC
LE\PRODUCT\10.2.0\ORADATA\ORCL
\CONTROL02.CTL, E:\ORACLE\PROD
UCT\10.2.0\ORADATA\ORCL\CONTRO
L03.CTL
說明當前有三個控制檔案互為鏡像;
SQL> shutdown immediate;
資料庫已經關閉。
已經卸載資料庫。
ORACLE 常式已經關閉。
接下來請看第2頁精彩內容: