欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Oracle控制文件多元化

程序员文章站 2022-05-16 22:58:05
...

多元化控制文件后,多个控制文件互为镜像,内容总是保持完全一致。装载Oracle数据库时,系统会读取并打开control_files 参数多对

控制文件多元化:就是复制多个控制文件并存放到不同的磁盘。

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 参数多对应的所有控制文件。
需要注意:多元化了控制文件后,如果某个控制文件丢失或损坏,数据库将无法加载。
如果要改变数据库名称或数据库的永久参数,必须重新建立控制文件。