oracle rac remove service

SQL> select NAME,FAILOVER_METHOD,FAILOVER_TYPE from dba_services where name=’testservice’

NAME                                     FAILOVER_METHOD                                                  FAILOVER_TYPE
—————————————- ———————————————————————-
testservice                              BASIC                                                                                  SESSION

SQL> show parameter service

NAME                                 TYPE        VALUE
———————————— ———–        ——————————
service_names               string                 testservice_PRECONNECT, rac.world
SQL>

[oracle@node2 ~]$ 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
ora.rac.db     application        ONLINE    ONLINE    node2
ora….c1.inst application        ONLINE    ONLINE    node1
ora….c2.inst application        ONLINE    ONLINE    node2
ora….vice.cs application       ONLINE    ONLINE    node1
ora….ac1.srv application       ONLINE    ONLINE    node1
//remove the service “testservice”
[oracle@node2 ~]$ srvctl remove service -d rac -s testservice
testservice PREF: rac1 AVAIL: rac2
Remove service testservice from the database rac? (y/[n]) y
PRKP-1024 : The service testservice is still running.

//看来需要先将service给停掉才可以

[oracle@node2 ~]$ srvctl stop service -d rac -s testservice
[oracle@node2 ~]$ 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
ora.rac.db     application         ONLINE    ONLINE    node2
ora….c1.inst application         ONLINE    ONLINE    node1
ora….c2.inst application        ONLINE    ONLINE    node2
ora….vice.cs application       OFFLINE   OFFLINE
ora….ac1.srv application       OFFLINE   OFFLINE

//stop the service
[oracle@node2 ~]$ srvctl remove service -d rac -s testservice
testservice PREF: rac1 AVAIL: rac2
Remove service testservice from the database rac? (y/[n]) y

//之前与service相关的两个服务消失了
xxxx.cs
xxxx.srv

(你可以测试,当启动、关闭xxxx.srv服务时,可以关联xxxx.cs的状态)
[oracle@node2 ~]$ 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
ora.rac.db     application        ONLINE    ONLINE    node2
ora….c1.inst application        ONLINE    ONLINE    node1
ora….c2.inst application        ONLINE    ONLINE    node2

//xxxx.srv的个数取决于在创建service时选择的instance个数,例如

//添加一个service,名字叫service2,rac1作为pre_list成员,rac2作为avail_list成员,TAF policy配置为PRECONNECT
[oracle@rac1 ~]$ srvctl add service -d rac -s service2 -r “rac1” -a “rac2” -P BASIC

如果是-r参数变成 -r “rac1,rac2″则会在创建两个xxx.srv结尾的resource

[oracle@node2 ~]$ srvctl add service -d rac -s service3 -r “rac1,rac2” -a “rac2” -P BASIC
[oracle@node2 ~]$ 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
ora.rac.db     application        ONLINE    ONLINE    node2
ora….c1.inst application        ONLINE    ONLINE    node1
ora….c2.inst application        ONLINE    ONLINE    node2
ora….ice3.cs application       OFFLINE   OFFLINE
ora….ac1.srv application       OFFLINE   OFFLINE
ora….ac2.srv application       OFFLINE   OFFLINE

//启动这两个resource
[oracle@node2 ~]$ crs_start ora.rac.service3.rac1.srv
Attempting to start `ora.rac.service3.rac1.srv` on member `node1`
Start of `ora.rac.service3.rac1.srv` on member `node1` succeeded.
[oracle@node2 ~]$ crs_start ora.rac.service3.rac2.srv
Attempting to start `ora.rac.service3.rac2.srv` on member `node2`
Start of `ora.rac.service3.rac2.srv` on member `node2` succeeded.
[oracle@node2 ~]$ 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
ora.rac.db     application        ONLINE    ONLINE    node2
ora….c1.inst application       ONLINE    ONLINE    node1
ora….c2.inst application      ONLINE    ONLINE    node2
ora….ice3.cs application       ONLINE    ONLINE    node1
ora….ac1.srv application      ONLINE    ONLINE    node1
ora….ac2.srv application      ONLINE    ONLINE    node2

//remove the service “service3”
先把service3停掉
[oracle@node2 ~]$ srvctl stop service -d rac -s service3
[oracle@node2 ~]$ 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
ora.rac.db     application        ONLINE    ONLINE    node2
ora….c1.inst application        ONLINE    ONLINE    node1
ora….c2.inst application        ONLINE    ONLINE    node2
ora….ice3.cs application       OFFLINE   OFFLINE
ora….ac1.srv application      OFFLINE   OFFLINE
ora….ac2.srv application      OFFLINE   OFFLINE

删除service,删除service可能无法搞定全部的相关resource,下面的例子就是还剩下一个resource offline,没有删除掉
可以考虑crs_unregister来清除

[oracle@node2 ~]$ srvctl remove service -d rac -s service3 -f
[oracle@node2 ~]$ 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
ora.rac.db     application        ONLINE    ONLINE    node2
ora….c1.inst application       ONLINE    ONLINE    node1
ora….c2.inst application       ONLINE    ONLINE    node2
ora….ac2.srv application      OFFLINE   OFFLINE
[oracle@node2 ~]$ crs_unregister ora.rac.service3.rac2.srv
[oracle@node2 ~]$ 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
ora.rac.db     application    ONLINE    ONLINE    node2
ora….c1.inst application    ONLINE    ONLINE    node1
ora….c2.inst application    ONLINE    ONLINE    node2

–EOF–