这两种环境设置方法也不相同,下面讨论一下.
单实例service_names
只需要通过alter system set service_name='' scope=spfile;进行修改该参数即可,默认状况下该参数为db_unique_name.db_domain(如果domain已经设置)
RAC service_names
RAC与单实例不同,不能通过直接修改参数来设置service name.主要通过工具来创建:
DBCA
srvctl
[oracle@vmrac1 ~]$ srvctl add service -d JRPROD -s JRPROD_OLTP -r JRPROD1 -a JRPROD2 -P basic
[oracle@vmrac1 ~]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....D1.inst application ONLINE ONLINE vmrac1
ora....D2.inst application ONLINE ONLINE vmrac2
ora....OD1.srv application OFFLINE OFFLINE
ora....OLTP.cs application OFFLINE OFFLINE
ora.JRPROD.db application ONLINE ONLINE vmrac2
ora....B1.inst application ONLINE ONLINE vmrac1
ora....B2.inst application ONLINE ONLINE vmrac2
ora....DBST.db application ONLINE ONLINE vmrac1
ora....SM1.asm application ONLINE ONLINE vmrac1
ora....C1.lsnr application ONLINE ONLINE vmrac1
ora.vmrac1.gsd application ONLINE ONLINE vmrac1
ora.vmrac1.ons application ONLINE ONLINE vmrac1
ora.vmrac1.vip application ONLINE ONLINE vmrac1
ora....SM2.asm application ONLINE ONLINE vmrac2
ora....C2.lsnr application ONLINE ONLINE vmrac2
ora.vmrac2.gsd application ONLINE ONLINE vmrac2
ora.vmrac2.ons application ONLINE ONLINE vmrac2
ora.vmrac2.vip application ONLINE ONLINE vmrac2
[oracle@vmrac1 ~]$ srvctl start service -d JRPROD -s JRPROD_OLTP
[oracle@vmrac1 ~]$lsnrctl status
...
Service "JRPROD_OLTP" has 1 instance(s).
Instance "JRPROD1", status READY, has 2 handler(s) for this service...
...
此时已经多了一个监听service.
在节点1,vmrac1上查看service_names
SQL>show parameter service_names
NAME TYPE VALUE
-------------------------------- --------- ------------------------
service_names string JRPROD, JRPROD_OLTP
在节点2,vmrac1上查看service_names
SQL> show parameter service_names
NAME TYPE VALUE
------------------------------------- ---------- ------------------------------
service_names string JRPROD