Oracle當中的控制檔案相當的重要,裡面規定了啟動和關閉Oracle資料庫的一些重要的參數,例如記錄檔和資料檔案的個數和位置等,所以對這個檔案一般要使用multiplex多工儲存,而且最好存在不同的分區以實現冗餘性,但是當多路中的一個控制檔案出現問題的時候,Oracle資料庫也將無法啟動或關閉,下面來簡要的介紹下配置方法
[oracle@jsb-ylw-5024 ~]$ sqlplus /nolog //啟動Oracle資料庫,並查看當前控制檔案的個數和儲存位置
SQL*Plus: Release 11.2.0.1.0 Production on Wed Sep 8 10:48:02 2010
Copyright (c) 1982, 2009, Oracle. All rights reserved.
SQL> conn /as sysdba
Connected to an idle instance.
SQL> startup
ORACLE instance started.
Total System Global Area 1620115456 bytes
Fixed Size 2213816 bytes
Variable Size 939526216 bytes
Database Buffers 671088640 bytes
Redo Buffers 7286784 bytes
Database mounted.
Database opened.
SQL> show parameter control; //可以看到當前存在兩個控制檔案
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_file_record_keep_time integer 7
control_files string /u01/oradata/yang/control01.ct
l, /u01/flash_recovery_area/ya
ng/control02.ctl
control_management_pack_access string DIAGNOSTIC+TUNING
SQL> shutdown immediate; //關閉資料庫
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> create pfile from spfile; //根據spfile產生pfile,若使用不同的參數檔案,則需要加路徑
File created.
SQL> !
[oracle@jsb-ylw-5024 ~]$ cp /u01/oradata/yang/control01.ctl /u01/oracle/control03.ctl //使用cp命令複製控制檔案
[oracle@jsb-ylw-5024 ~]$ grep -i 'control' /u01/oracle/dbs/inityang.ora //修改pfile的control_files值如下
*.control_files='/u01/oradata/yang/control01.ctl','/u01/flash_recovery_area/yang/control02.ctl','/u01/oracle/control03.ctl'
[oracle@jsb-ylw-5024 ~]$ exit
exit
SQL> startup pfile=$ORACLE_HOME/dbs/inityang.ora //使用pfile啟動oracle資料庫
ORACLE instance started.
Total System Global Area 1620115456 bytes
Fixed Size 2213816 bytes
Variable Size 939526216 bytes
Database Buffers 671088640 bytes
Redo Buffers 7286784 bytes
Database mounted.
Database opened.
SQL> show parameter control; //查看已經修改成功
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_file_record_keep_time integer 7
control_files string /u01/oradata/yang/control01.ct
l, /u01/flash_recovery_area/ya
ng/control02.ctl, /u01/oracle/
control03.ctl
control_management_pack_access string DIAGNOSTIC+TUNING
SQL> shutdown immediate; //關閉資料庫
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> create spfile from pfile; //根據pfile產生spfile
File created.
SQL> startup //使用spfile啟動Oracle
ORACLE instance started.
Total System Global Area 1620115456 bytes
Fixed Size 2213816 bytes
Variable Size 939526216 bytes
Database Buffers 671088640 bytes
Redo Buffers 7286784 bytes
Database mounted.
Database opened.
SQL> !
[oracle@jsb-ylw-5024 ~]$ mv /u01/oracle/control03.ctl /tmp/
[oracle@jsb-ylw-5024 ~]$ exit
exit
SQL> shutdown immediate;
ORA-00210: cannot open the specified control file
ORA-00202: control file: '/u01/oracle/control03.ctl'
ORA-27041: unable to open file
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3