在使用srvctl建立service時,需要注意TAF策略選項必須通過dbms_service包來配置。下面例子示範了如何建立一個服務felix_ora:
1.建立之前查看系統現有的service:
SQL> show parameter service
NAME TYPE VALUE
------------------------------------ -----------------------------------------
service_names string felix
SQL>
2.使用srvctl建立felix_ora服務;
[oracle@felix1 ~]$ srvctl add service -d felix -s felix_ora -r felix1 -a felix2 -P BASIC
[oracle@felix1 ~]$
[oracle@felix1 ~]$ srvctl config service -d felix-a
felix_ora PREF: felix1 AVAIL: felix2 TAF: BASIC
[oracle@felix1 ~]$ srvctl status service -d felix
Service felix_ora is not running.
[oracle@felix1 ~]$
3.確認服務建立成功,以下標紅部分說明服務已經作為一項CRS Resource註冊到CRS中,但是目前沒有啟動。
[oracle@felix1 ~]$ crs_stat -t -v
Name Type R/RA F/FT Target State Host
----------------------------------------------------------------------
ora.felix.db application 0/0 0/1 ONLINE ONLINE felix1
ora....x1.inst application 0/5 0/0 ONLINE ONLINE felix1
ora....x2.inst application 0/5 0/0 ONLINE ONLINE felix2
ora...._ora.cs application 0/0 0/1 OFFLINE OFFLINE
ora....ix1.srv application 0/0 0/0 OFFLINE OFFLINE
ora....SM1.asm application 0/5 0/0 ONLINE ONLINE felix1
ora....X1.lsnr application 0/5 0/0 ONLINE ONLINE felix1
ora.felix1.gsd application 0/5 0/0 ONLINE ONLINE felix1
ora.felix1.ons application 0/3 0/0 ONLINE ONLINE felix1
ora.felix1.vip application 0/0 0/0 ONLINE ONLINE felix1
ora....SM2.asm application 0/5 0/0 ONLINE ONLINE felix2
ora....X2.lsnr application 0/5 0/0 ONLINE ONLINE felix2
ora.felix2.gsd application 0/5 0/0 ONLINE ONLINE felix2
ora.felix2.ons application 0/3 0/0 ONLINE ONLINE felix2
ora.felix2.vip application 0/0 0/0 ONLINE ONLINE felix2
[oracle@felix1 ~]$
4.佈建服務自動啟動
[oracle@felix1 ~]$ srvctl enable service -d felix-s felix_ora
PRKP-1018 : Service felix_ora already enabled.
[oracle@felix1 ~]$
5.啟動這個服務
[oracle@felix1 ~]$ srvctl start service -d felix -s felix_ora
[oracle@felix1 ~]$
[oracle@felix1 ~]$ srvctl status service -d felix -s felix_ora
Service felix_ora is running on instance(s) felix1
[oracle@felix1 ~]$
6.確認服務狀態;
[oracle@felix2 ~]$ crs_stat -t -v
Name Type R/RA F/FT Target State Host
----------------------------------------------------------------------
ora.felix.db application 0/0 0/1 ONLINE ONLINE felix1
ora....x1.inst application 0/5 0/0 ONLINE ONLINE felix1
ora....x2.inst application 0/5 0/0 ONLINE ONLINE felix2
ora...._ora.cs application 0/0 0/1 ONLINE ONLINE felix1
ora....ix1.srv application 0/0 0/0 ONLINE ONLINE felix1
ora....SM1.asm application 0/5 0/0 ONLINE ONLINE felix1
ora....X1.lsnr application 0/5 0/0 ONLINE ONLINE felix1
ora.felix1.gsd application 0/5 0/0 ONLINE ONLINE felix1
ora.felix1.ons application 0/3 0/0 ONLINE ONLINE felix1
ora.felix1.vip application 0/0 0/0 ONLINE ONLINE felix1
ora....SM2.asm application 0/5 0/0 ONLINE ONLINE felix2
ora....X2.lsnr application 0/5 0/0 ONLINE ONLINE felix2
ora.felix2.gsd application 0/5 0/0 ONLINE ONLINE felix2
ora.felix2.ons application 0/3 0/0 ONLINE ONLINE felix2
ora.felix2.vip application 0/0 0/0 ONLINE ONLINE felix2
[oracle@felix2 ~]$
說明已經全部啟動了;
建立的服務會自動添加到初始化參數檔案中:
SQL> show parameter service
NAME TYPE VALUE
------------------------------------ -----------------------------------------
service_names string felix, felix_ora
SQL>
7.修改service的TAF配置,需要使用dbms_service.modify_service
begin
dbms_service.modify_service(service_name => 'felix_ora',
failover_method =>dbms_service.failover_method_basic,
failover_type =>dbms_service.failover_type_select,
failover_retries => 180,
failover_delay => 5);
end;
/
PL/SQL procedure successfully completed.
8.確認以生效
Set lines 1000 pages 1000
col name for a50
col clb_goal for a15
col FAILOVER_METHOD for a15
col failover_type for a20;
SQL> selectname,failover_method,failover_type,clb_goal from dba_services;
NAME FAILOVER_METHOD FAILOVER_TYPE CLB_GOAL
----------------------------------------------------------------- -------------------- ---------------
SYS$BACKGROUND SHORT
SYS$USERS SHORT
seeddataXDB LONG
seeddata.regress.rdbms.dev.us.oracle.com LONG
felixXDB LONG
felix LONG
taf_server LONG
taf_srvctl LONG
felix_ora BASIC SELECT LONG
9 rows selected.
[oracle@felix1 ~]$ srvctl config service -d felix -a
felix_ora PREF: felix1 AVAIL: felix2 TAF: BASIC
[oracle@felix1 ~]$
【參考大話RAC--張曉明】