检查数据库物理文件安全时发现控制文件只在一个路径下有一份控制文件,对数据库安全有极大影响,因此需要对RAC环境的控制文件进行镜像副本的拷贝,记录操作过程如下。
1.查看控制文件个数和路径
SQL> show parameter control
SQL> select name from v$controlfile;
2.备份参数文件
SQL> create pfile='/home/oracle/pfile.ora' from spfile;
3.修改控制文件参数
SQL> alter system set control_files='+DATA/RACDB/CONTROLFILE/current.263.1163077137','+DATA' scope=spfile sid='*';
4.停库并把数据库起到nomount状态
srvctl stop database -d racdb
srvctl start database -d racdb -o nomount
5.检查control_files参数,确认添加控制问价参数生效
SQL> show parameter control
6.在其中一个节点上启动 RMAN,使用 restore 命令复制一份控制文件
rman target /
restore controlfile from '+DATA/RACDB/CONTROLFILE/current.263.1163077137';
恢复出第二个控制文件。
7.修改 control_files 参数,按照rman恢复控制文件的路径进行控制文件参数的修改
重新进入sqlplus(nomount状态)
sqlplus / as sysdba
alter system set control_files='+DATA/RACDB/CONTROLFILE/current.263.1163077137','+DATA/RACDB/CONTROLFILE/current.278.1194868417' scope=spfile sid='*';
8.关闭数据库,然后正常启动
srvctl stop database -d racdb
srvctl start database -d racdb
9.验证控制文件镜像副本是否添加成功
show parameter control_files
select name from gv$controlfile;
控制文件镜像副本就添加成功了,除了放在DATA盘路径下也可以放在FRA盘里面,保证至少三个位置存在控制文件更加安全。