RAC环境中的SERVICE_NAMES参数(一)

RAC环境中的各个节点的SERVICE_NAMES参数的设置可以不同。

 

 

由于SERVICE_NAMES是动态参数,修改这个参数可以不关闭实例随时进行,使得这个参数的设置可以在各个实例上个性化的设置。

SQL> SELECT INSTANCE_NUMBER, INSTANCE_NAME, HOST_NAME
  2  FROM V$INSTANCE;

INSTANCE_NUMBER INSTANCE_NAME    HOST_NAME
--------------- ---------------- -----------------------------------------
              1 testrac1         racnode1

SQL> SELECT INSTANCE_NUMBER, INSTANCE_NAME, HOST_NAME
  2  FROM GV$INSTANCE;

INSTANCE_NUMBER INSTANCE_NAME    HOST_NAME
--------------- ---------------- -----------------------------------------
              1 testrac1         racnode1
              3 testrac3         racnode3
              2 testrac2         racnode2

这是一个3节点的RAC环境。默认情况下各个节点的SERVICE_NAMES初始化参数是一致的:

SQL> SELECT INST_ID, NAME, VALUE
  2  FROM GV$SYSTEM_PARAMETER
  3  WHERE NAME = 'service_names';

   INST_ID NAME                           VALUE
---------- ------------------------------ ------------------------------
         1 service_names                  testrac
         3 service_names                  testrac
         2 service_names                  testrac

不过完全可以修改这个参数使得SERVICE_NAMES参数在各个实例上都不相同,比如将各个实例上的SERVICE_NAMES修改为对应的SID

SQL> ALTER SYSTEM SET SERVICE_NAMES = 'testrac1' SCOPE = MEMORY SID = 'testrac1';

系统已更改。

SQL> ALTER SYSTEM SET SERVICE_NAMES = 'testrac2' SCOPE = MEMORY SID = 'testrac2';

系统已更改。

SQL> ALTER SYSTEM SET SERVICE_NAMES = 'testrac3' SCOPE = MEMORY SID = 'testrac3';

系统已更改。

SQL> SELECT INST_ID, NAME, VALUE
  2  FROM GV$SYSTEM_PARAMETER
  3  WHERE NAME = 'service_names';

   INST_ID NAME                           VALUE
---------- ------------------------------ ------------------------------
         1 service_names                  testrac1
         3 service_names                  testrac3
         2 service_names                  testrac2

初始化参数SERVICE_NAMES的名称是复数形式,说明这个参数支持多个值。为了使得各个实例拥有自己唯一的SERVICE_NAME验证名称,并不需要牺牲RAC实例共同的服务名:

SQL> ALTER SYSTEM SET SERVICE_NAMES = 'testrac,testrac1' SCOPE = MEMORY SID = 'testrac1';

系统已更改。

SQL> ALTER SYSTEM SET SERVICE_NAMES = 'testrac,testrac2' SCOPE = MEMORY SID = 'testrac2';

系统已更改。

SQL> ALTER SYSTEM SET SERVICE_NAMES = 'testrac,testrac3' SCOPE = MEMORY SID = 'testrac3';

系统已更改。

SQL> SELECT INST_ID, NAME, VALUE
  2  FROM GV$SYSTEM_PARAMETER
  3  WHERE NAME = 'service_names';

   INST_ID NAME                           VALUE
---------- ------------------------------ ------------------------------
         1 service_names                  testrac,testrac1
         3 service_names                  testrac,testrac3
         2 service_names                  testrac,testrac2

这样可以通过服务名TESTRAC指向全部3个实例,也可以通过SID对应的服务器指向单独的实例。

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/4227/viewspace-626778/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/4227/viewspace-626778/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值