Oracle控制文件多元化


控制文件多元化:就是复制多个控制文件并存放到不同的磁盘。
 
1、使用SPFILE多元化控制文件
 
1)查看控制文件信息和spfile 信息
05:55:48 SQL> select name from v$controlfile;
NAME
------------------------------------------------------------------------------------------------------ ------------------------------------------------
/u01/app/Oracle/oradata/lx02/control01.ctl
05:56:45 SQL> show parameter contro
NAME                                TYPE        VALUE
------------------------------------ ----------- ------------------------------
control_file_record_keep_time        integer    7
control_files                        string      /u01/app/oracle/oradata/lx02/c
ontrol01.ctl
05:56:49 SQL> show parameter spfile;
NAME                                TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                              string      /u01/app/oracle/product/10.2.0
/db_1/dbs/spfilelx02.ora
05:57:00 SQL>
 
2)修改control_files 参数
05:57:55 SQL> alter system set control_files=
05:58:01  2    '/u01/app/oracle/oradata/lx02/control01.ctl','/disk1/lx02/oradata/control02.ctl'  scope=spfile;
System altered.
 
3)关闭instance ,拷贝controlfile
05:58:29 SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
05:59:02 SQL> !
[oracle@oracle ~]$ cp /u01/app/oracle/oradata/lx02/control01.ctl /disk1/lx02/oradata/control02.ctl
 
4)startup 启动实例
05:59:44 SQL> select name from v$controlfile;
NAME
--------------------------------------------
 
/u01/app/oracle/oradata/lx02/control01.ctl
/disk1/lx02/oradata/control02.ctl
 
2、使用PFILE多元化控制文件
 
1)关闭实例,修改init 文件
06:01:16 SQL> startup pfile=$ORACLE_HOME/dbs/initlx02.ora
ORACLE instance started.
Total System Global Area  176160768 bytes
Fixed Size                  1218364 bytes
Variable Size              88082628 bytes
Database Buffers          83886080 bytes
Redo Buffers                2973696 bytes
Database mounted.
Database opened.
06:01:43 SQL> show parameter spfile;
NAME                                TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                              string
06:02:15 SQL> select name from v$controlfile;
NAME
----------------------------------------------------------------
/u01/app/oracle/oradata/lx02/control01.ctl
06:02:21 SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
[oracle@oracle ~]$ cd $ORACLE_HOME/dbs
[oracle@oracle dbs]$ vi initlx02.ora
control_files =  $ORACLE_BASE/oradata/lx02/control01.ctl,/disk1/lx02/oradata/control02.ctl,/disk2/lx02/oradata/control03 .ctl
 
2)拷贝controlfile
[oracle@oracle dbs]$ cp $ORACLE_BASE/oradata/lx02/control01.ctl /disk1/lx02/oradata/control02.ctl
[oracle@oracle dbs]$ cp $ORACLE_BASE/oradata/lx02/control01.ctl  /disk2/lx02/oradata/control03.ctl
 
3)startup
06:07:59 SQL> startup pfile=$ORACLE_HOME/dbs/initlx02.ora
ORACLE instance started.
Total System Global Area  176160768 bytes
Fixed Size                  1218364 bytes
Variable Size              88082628 bytes
Database Buffers          83886080 bytes
Redo Buffers                2973696 bytes
Database mounted.
Database opened.
06:08:21 SQL> show parameter spfile
NAME                                TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                              string
06:08:30 SQL> select name from v$controlfile;
NAME
------------------------------------------------------------------------------------------------------ ------------------------------------------------
/u01/app/oracle/oradata/lx02/control01.ctl
/disk1/lx02/oradata/control02.ctl
/disk2/lx02/oradata/control03.ctl
06:08:39 SQL> create spfile from pfile;
File created.
 
多元化控制文件后,多个控制文件互为镜像,内容总是保持完全一致。装载Oracle数据库时,系统会读取并打开control_files 参数多对应的所有控制文件。
需要注意:多元化了控制文件后,如果某个控制文件丢失或损坏,数据库将无法加载。
如果要改变数据库名称或数据库的永久参数,必须重新建立控制文件。

相关内容