Oracle11g RAC 增加控制文件(一)
测试环境为Oracle11g R2 两节点RAC ,默认情况下,RAC安装完毕后只有1个控制文件,为了安全考虑,必须多路镜像。
1:节点1查看当前参数文件及控制文件,备份参数文件(在做参数变更时,这一步是不能少的)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
[oracle@rac1 ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.2.0 Production on Tue Feb 11 15:32:18 2014 Copyright (c) 1982, 2010, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP, Data Mining and Real Application Testing options SQL> show parameter spfile NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ spfile string +DATA/racdb/spfileracdb.ora SQL> SQL> show parameter control_files NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ control_files string +DATA/racdb/controlfile/curren t.260.838213361 SQL> SQL> create pfile='/tmp/initRAC1.ora' from spfile; File created. SQL> exit Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP, Data Mining and Real Application Testing options [oracle@rac1 ~]$ //spfile启动的数据库,1个控制文件 |
2:节点2验证一下当前参数文件及控制文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
[oracle@rac2 ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.2.0 Production on Tue Feb 11 15:39:49 2014 Copyright (c) 1982, 2010, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP, Data Mining and Real Application Testing options SQL> SQL> show parameter spfile NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ spfile string +DATA/racdb/spfileracdb.ora SQL> show parameter control_files NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ control_files string +DATA/racdb/controlfile/curren t.260.838213361 SQL> |
3:数据库一致性关闭
1 2 3 4 5 |
[root@rac1 ~]# srvctl stop database -d racdb [root@rac1 ~]# [root@rac1 ~]# crs_stat -t |grep db ora.racdb.db ora....se.type OFFLINE OFFLINE [root@rac1 ~]# |
4:增加控制文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
[grid@rac1 ~]$ asmcmd ASMCMD> cd data/racdb/con* ASMCMD> pwd +data/racdb/CONTROLFILE ASMCMD> ls Current.260.838213361 ASMCMD> ASMCMD> cp Current.260.838213361 Current.261 copying +data/racdb/CONTROLFILE/Current.260.838213361 -> +data/racdb/CONTROLFILE/Current.261 ASMCMD> ASMCMD> ASMCMD> cp Current.260.838213361 Current.262 copying +data/racdb/CONTROLFILE/Current.260.838213361 -> +data/racdb/CONTROLFILE/Current.262 ASMCMD> ASMCMD> ls Current.260.838213361 Current.261 Current.262 ASMCMD> ASMCMD> exit [grid@rac1 ~]$ ------------------------------------- //注:如果在拷贝时,后面的数值都写上的话,那么会报类似如下的错误 ASMCMD> cp Current.260.838213361 Current.260.838213362 copying +data/racdb/CONTROLFILE/Current.260.838213361 -> +data/racdb/CONTROLFILE/Current.260.838213362 ASMCMD-08016: copy source->'+data/racdb/CONTROLFILE/Current.260.838213361' and target->'+data/racdb/CONTROLFILE/Current.260.838213362' failed ORA-15056: additional error message ORA-15046: ASM file name '+data/racdb/CONTROLFILE/Current.260.838213362' is not in single-file creation form ORA-06512: at "SYS.X$DBMS_DISKGROUP", line 410 ORA-06512: at line 3 (DBD ERROR: OCIStmtExecute) ASMCMD> ------------------------------------------------ |
5:节点1:数据库启动到nomount下,修改控制文件参数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
[oracle@rac1 ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.2.0 Production on Tue Feb 11 15:53:07 2014 Copyright (c) 1982, 2010, Oracle. All rights reserved. Connected to an idle instance. SQL> //数据库启动到nomount状态下 SQL> startup nomount; ORACLE instance started. Total System Global Area 835104768 bytes Fixed Size 2231088 bytes Variable Size 570426576 bytes Database Buffers 260046848 bytes Redo Buffers 2400256 bytes SQL> //修改参数 SQL> alter system set control_files='+data/racdb/CONTROLFILE/Current.260.838213361','+data/racdb/CONTROLFILE/Current.261','+data/racdb/CONTROLFILE/Current.262' scope=spfile; System altered. SQL> //重启数据库到nomount状态 SQL> shutdown abort; ORACLE instance shut down. SQL> startup nomount; ORACLE instance started. Total System Global Area 835104768 bytes Fixed Size 2231088 bytes Variable Size 570426576 bytes Database Buffers 260046848 bytes Redo Buffers 2400256 bytes SQL> //验证控制文件参数,已修改成功 SQL> show parameter control_files NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ control_files string +DATA/racdb/controlfile/curren t.260.838213361, +DATA/racdb/c ontrolfile/current.261, +DATA/ racdb/controlfile/current.262 SQL> //打开数据库 SQL> alter database mount; Database altered. SQL> SQL> alter database open; Database altered. SQL> |
6:节点2:由于节点1修改参数全局生效,所以,节点2直接启动即可
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
[oracle@rac2 ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.2.0 Production on Tue Feb 11 15:56:47 2014 Copyright (c) 1982, 2010, Oracle. All rights reserved. Connected to an idle instance. SQL> startup nomount; ORACLE instance started. Total System Global Area 835104768 bytes Fixed Size 2231088 bytes Variable Size 562037968 bytes Database Buffers 268435456 bytes Redo Buffers 2400256 bytes SQL> SQL> alter database open; alter database open * ERROR at line 1: ORA-01507: database not mounted SQL> show parameter control_files NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ control_files string +DATA/racdb/controlfile/curren t.260.838213361, +DATA/racdb/c ontrolfile/current.261, +DATA/ racdb/controlfile/current.262 SQL> alter database mount; Database altered. SQL> SQL> alter database open; Database altered. SQL> |
7:验证
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
[grid@rac1 ~]$ crsctl stat res -t -------------------------------------------------------------------------------- NAME TARGET STATE SERVER STATE_DETAILS -------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------- ora.DATA.dg ONLINE ONLINE rac1 ONLINE ONLINE rac2 ora.LISTENER.lsnr ONLINE ONLINE rac1 ONLINE ONLINE rac2 ora.OCR_VOTE.dg ONLINE ONLINE rac1 ONLINE ONLINE rac2 ora.OV.dg ONLINE ONLINE rac1 ONLINE ONLINE rac2 ora.asm ONLINE ONLINE rac1 ONLINE ONLINE rac2 ora.gsd ONLINE ONLINE rac1 ONLINE ONLINE rac2 ora.net1.network ONLINE ONLINE rac1 ONLINE ONLINE rac2 ora.ons ONLINE ONLINE rac1 ONLINE ONLINE rac2 -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- ora.LISTENER_SCAN1.lsnr 1 ONLINE ONLINE rac1 ora.cvu 1 ONLINE ONLINE rac1 ora.oc4j 1 ONLINE ONLINE rac1 ora.rac1.vip 1 ONLINE ONLINE rac1 ora.rac2.vip 1 ONLINE ONLINE rac2 ora.racdb.db 1 ONLINE ONLINE rac1 Open 2 ONLINE ONLINE rac2 Open ora.scan1.vip 1 ONLINE ONLINE rac1 [grid@rac1 ~]$ |
小结:
需要注意的是,用cp拷贝创建的控制文件,并未真正的放在我们指定的目录,我们看到的只是个Alias,如下:
1 2 3 4 5 6 7 8 9 |
[grid@rac1 ~]$ asmcmd ASMCMD> cd data/racdb/con* ASMCMD> ASMCMD> ls -l Type Redund Striped Time Sys Name CONTROLFILE UNPROT FINE FEB 11 16:00:00 Y Current.260.838213361 N Current.261 => +DATA/ASM/CONTROLFILE/Current.261.271.839260273 N Current.262 => +DATA/ASM/CONTROLFILE/Current.262.272.839260281 ASMCMD> |
它在cp时又创建了一个新的目录。