控制文件是一個小小的二進制文件,是Oracle數據庫的不可缺少的一部分,這個控制文件是用於記錄數據庫的狀態和物理結構。每個數據庫必須要至少一個控制文件,但是強烈的建議超過一個控制文件,每個控制文件的備份應該放在不同的磁盤上。
控制文件中的信息包括下列內容:
? 數據庫名稱取自初始化參數DB_NAME 所指定的名稱或CREATE DATABASE 語句中所用的名稱。
? 當創建數據庫時會記錄數據庫標識符。
? 創建數據庫時還會記錄創建數據庫的時間戳。
? 當在數據庫中添加、重命名或刪除數據文件或重做日志時,會更新相關數據文件和聯機重做日志文件的名稱和位置。
? 當添加或刪除表空間時會更新表空間信息。
? 在日志切換過程中會記錄重做日志歷史信息。
? 歸檔日志的位置和狀態會在歸檔時記錄。
? 備份的位置和狀態由“恢復管理器” (Recovery Manager) 實用程序記錄。
? 在進行日志切換時記錄當前日志序列號。
? 在建立檢查點時記錄檢查點信息。
控制文件中包含以下條目:
? 數據庫名稱和標識符
? 創建數據庫的時間戳
? 表空間的名稱
? 數據文件和重做日志文件的名稱和位置
? 當前重做日志的序列號
? 檢查點信息
? 還原段的開始和結尾
? 重做日志歸檔信息
? 備份信息
下面介紹如何給一個數據庫添加多路控制文件:
方法一:
1:修改參數文件
2:停止數據庫
3:復制控制文件
4:啟動數據庫
5:驗證,查看v$controlfile
Sql>alter system set control_files='/u01/app/oracle/oradata/PROD/control01.ctl','/u01/app/oracle/oradata/PROD/control02.ctl','/u01/app/oracle/oradata/PROD/control03.ctl' scope=spfile;
(千萬要注意點號,沒有括號哦 在vi裡的一行同一個字母不能拆分開,最好是主動的換行)
Sql>shutdown immediate;
$cp control01.ctl control03.ctl
Sql>startup;
SQL> select * from v$controlfile;
SQL>shutdown immediate
SQL>startup
方法二:
1, create pfile from spfile;
2, shutdown immediate
3, 修改參數文件initPROD.ora cd $ORACLE_HOME/dbs vi initPROD.ora
*.control_files='/u01/app/oracle/oradata/PROD/DISK1/control01.ctl','/u01/app/oracle/oradata/PROD/DISK2/control02.ctl','/u
01/app/oracle/oradata/PROD/DISK3/control03.ctl'
4,拷貝控制文件多路復用到新的磁盤地址:[oracle@vmoel5u4 DISK2]$ cp ./control02.ctl /u01/app/oracle/oradata/PROD/DISK3/control03.ctl
5,重新創建spfile 並且啟動數據庫:sqlplus / as sysdba create spfile from pfile startup
6,查看下是否添加成功: SQL> show parameter control