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/