ORACLE RAC 有些概念比较容易混淆
单实例的数据库一般有 数据库名称db_name,实例名称:instance_name:服务名称:service_names.一般情况下三个名称是一致的.
在RAC集群当中有些不一样.在规划上. 先说下RAC的布局. 每个节点上有 各自的监听,IP地址,实例, ASM实例和集群软件CRS,OCR
一般流程是 客户端通过VIP地址连接到-->其中节点上的监听器->实例-->ASM实例-->共享设备.
在下实验集群: 节点=NODE1 监听=listener_node1; 实例=myrac1 ;asm实例=+ams1 ; 数据库名称=myrac 服务名称=MYRAC
客户端的TRNSNAME.ORA 配置 一般使用服务名称=MYRAC.
而CRS集群上的 srvctl config -d database-name -s service-name 默认下不会把数据库服务名称MYRAC注册到OCR里.
就是CRS_STAT -T 不会显示MYRAC服务
把内部服务添加进去:
[Oracle@node1 ~]$ srvctl add service -d MYRAC -s MYRAC -r "MYRAC2" -a "MYRAC1" -P basic
PRKO-2120 : 不能使用 srvctl 管理内部数据库服务 MYRAC。
那好添加个OLTP名称进去
[oracle@node1 ~]$ srvctl add service -d MYRAC -s OLTP -r "MYRAC1" -a "MYRAC2" -P basic
[oracle@node1 ~]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....C1.inst application ONLINE ONLINE node1
ora....C2.inst application ONLINE ONLINE node2
ora....AC1.srv application ONLINE ONLINE node1
ora....OLTP.cs application ONLINE ONLINE node1
ora.MYRAC.db application ONLINE ONLINE node2
ora....SM1.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....SM2.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
在节点1上的实例把OLTP服务添加进去了
SQL> show parameter name
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_file_name_convert string
db_name string MYRAC
db_unique_name string MYRAC
global_names boolean FALSE
instance_name string MYRAC1
lock_name_space string
log_file_name_convert string
service_names string MYRAC, OLTP
在节点2上没有
SQL> show parameter name
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_file_name_convert string
db_name string MYRAC
db_unique_name string MYRAC
global_names boolean FALSE
instance_name string MYRAC2
lock_name_space string
log_file_name_convert string
service_names string MYRAC
为了更好的易懂性 必须对各个名称进行规划下 这样防止错误的发生
数据库名称= MYRAC_DB
实例名称 =MYRAC_Inst1
内部服务 =MYRAC_service
CRS服务 =MYRAC
节点名称 =NODE1
监听名称 =LISTENER1_NODE1