今天重新安装了一套oracle rac,有了一个新发现,就是两个实例的编号到底由谁指定。
我的rac环境是两个节点分别命名为node1、node2,环境变量设置如下:
node1:
export ORACLE_BASE=/u01/app
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORA_CRS_HOME=$ORACLE_BASE/crs_1
export ORACLE_SID=racdb1
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin:$ORA_CRS_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
node2:
export ORACLE_BASE=/u01/app
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORA_CRS_HOME=$ORACLE_BASE/crs_1
export ORACLE_SID=racdb2
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin:$ORA_CRS_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
在node2上安装完cluster和database软件后,查看crs状态如下:
[oracle@node1 ~]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....E1.lsnr application ONLINE ONLINE node1
ora.node1.gsd application ONLINE ONLINE node1
ora.node1.ons application ONLINE ONLINE node1
ora.node1.vip application ONLINE ONLINE node1
ora....E2.lsnr application ONLINE ONLINE node2
ora.node2.gsd application ONLINE ONLINE node2
ora.node2.ons application ONLINE ONLINE node2
ora.node2.vip application ONLINE ONLINE node2
这个时候一切看起来是那么正常。
接下来在node2使用dbca配置asm实例、创建数据库racdb后,查看crs状态如下:
[oracle@node1 ~]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....SM2.asm application ONLINE ONLINE node1
ora....E1.lsnr application ONLINE ONLINE node1
ora.node1.gsd application ONLINE ONLINE node1
ora.node1.ons application ONLINE ONLINE node1
ora.node1.vip application ONLINE ONLINE node1
ora....SM1.asm application ONLINE ONLINE node2
ora....E2.lsnr application ONLINE ONLINE node2
ora.node2.gsd application ONLINE ONLINE node2
ora.node2.ons application ONLINE ONLINE node2
ora.node2.vip application ONLINE ONLINE node2
ora.racdb.db application ONLINE ONLINE node1
ora....b1.inst application ONLINE ONLINE node2
ora....b2.inst application ONLINE ONLINE node1
这个时候我们看到数据库实例1和asm实例1都安装在node2上了,而实例2却安装在node1上了,为了进一步确认我登录到数据库racdb进行查询,结果如下:
SQL> select INST_ID,INSTANCE_NAME,HOST_NAME from gv$instance;
INST_ID INSTANCE_NAME HOST_NAME
---------- ---------------- ----------------------------------------------------------------
1 racdb1 node2.ocean.com
2 racdb2 node1.ocean.com
为什么会出现这种情况呢?在安装之前两个节点已经分别在环境变量中设定好实例名,为什么oracle没有按照环境变量中设定的进行分配?
经过多方查询得知,原因是在安装rac数据库时节点实例和ASM实例的编号是由oracle自动进行分配的,当我们在第一个节点即node1上进行安装时,实例的编号和节点的编号是对应的,当我们在第二个节点上安装时,实例的编号和节点的编号是相反的,也就是说实例1会安装在node2上,实例2会安装在node1上。
我的rac环境是两个节点分别命名为node1、node2,环境变量设置如下:
node1:
export ORACLE_BASE=/u01/app
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORA_CRS_HOME=$ORACLE_BASE/crs_1
export ORACLE_SID=racdb1
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin:$ORA_CRS_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export ORACLE_BASE=/u01/app
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORA_CRS_HOME=$ORACLE_BASE/crs_1
export ORACLE_SID=racdb2
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin:$ORA_CRS_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
[oracle@node1 ~]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....E1.lsnr application ONLINE ONLINE node1
ora.node1.gsd application ONLINE ONLINE node1
ora.node1.ons application ONLINE ONLINE node1
ora.node1.vip application ONLINE ONLINE node1
ora....E2.lsnr application ONLINE ONLINE node2
ora.node2.gsd application ONLINE ONLINE node2
ora.node2.ons application ONLINE ONLINE node2
ora.node2.vip application ONLINE ONLINE node2
这个时候一切看起来是那么正常。
接下来在node2使用dbca配置asm实例、创建数据库racdb后,查看crs状态如下:
[oracle@node1 ~]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....SM2.asm application ONLINE ONLINE node1
ora....E1.lsnr application ONLINE ONLINE node1
ora.node1.gsd application ONLINE ONLINE node1
ora.node1.ons application ONLINE ONLINE node1
ora.node1.vip application ONLINE ONLINE node1
ora....SM1.asm application ONLINE ONLINE node2
ora....E2.lsnr application ONLINE ONLINE node2
ora.node2.gsd application ONLINE ONLINE node2
ora.node2.ons application ONLINE ONLINE node2
ora.node2.vip application ONLINE ONLINE node2
ora.racdb.db application ONLINE ONLINE node1
ora....b1.inst application ONLINE ONLINE node2
ora....b2.inst application ONLINE ONLINE node1
这个时候我们看到数据库实例1和asm实例1都安装在node2上了,而实例2却安装在node1上了,为了进一步确认我登录到数据库racdb进行查询,结果如下:
SQL> select INST_ID,INSTANCE_NAME,HOST_NAME from gv$instance;
INST_ID INSTANCE_NAME HOST_NAME
---------- ---------------- ----------------------------------------------------------------
1 racdb1 node2.ocean.com
2 racdb2 node1.ocean.com
为什么会出现这种情况呢?在安装之前两个节点已经分别在环境变量中设定好实例名,为什么oracle没有按照环境变量中设定的进行分配?
经过多方查询得知,原因是在安装rac数据库时节点实例和ASM实例的编号是由oracle自动进行分配的,当我们在第一个节点即node1上进行安装时,实例的编号和节点的编号是对应的,当我们在第二个节点上安装时,实例的编号和节点的编号是相反的,也就是说实例1会安装在node2上,实例2会安装在node1上。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29457434/viewspace-1124960/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29457434/viewspace-1124960/