19c TAF 配置及测试
一、添加services_taf:
[root@ora19crac1 ~]# su - oracle
Last login: Tue Mar 3 18:06:26 CST 2020 on pts/1
[oracle@ora19crac1 ~]$ srvctl add service -d woo -s server_taf -r "woo1,woo2" -P BASIC
二、启动server_taf
[oracle@ora19crac1 ~]$ srvctl start service -d woo -s server_taf
三、检查server_taf 运行状态
[oracle@ora19crac1 ~]$ srvctl config service -d woo
Service name: server_taf
Server pool:
Cardinality: 2
Service role: PRIMARY
Management policy: AUTOMATIC
DTP transaction: false
AQ HA notifications: false
Global: false
Commit Outcome: false
Failover type:
Failover method:
Failover retries:
Failover delay:
Failover restore: NONE
Connection Load Balancing Goal: LONG
Runtime Load Balancing Goal: NONE
TAF policy specification: BASIC
Edition:
Pluggable database name:
Hub service:
Maximum lag time: ANY
SQL Translation Profile:
Retention: 86400 seconds
Replay Initiation Time: 300 seconds
Drain timeout:
Stop option:
Session State Consistency: DYNAMIC
GSM Flags: 0
Service is enabled
Preferred instances: woo1,woo2
Available instances:
CSS critical: no
Service uses Java: false
四、检查刚才创建的服务
SQL> select name,service_id from dba_services where name ='server_taf';
NAME SERVICE_ID
--------------- ----------
server_taf 3
五、检查服务配置
SQL> col name format a15
SQL> col failover_method format a11 heading 'METHOD'
SQL> col failover_type format a10 heading 'TYPE'
SQL> col failover_retries format 9999999 heading 'RETRIES'
SQL> col goal format a10
SQL> col clb_goal format a8
SQL> col AQ_HA_NOTIFICATIONS format a5 heading 'AQNOT'
SQL> select name, failover_method, failover_type, failover_retries,goal, clb_goal,aq_ha_notifications
2 from dba_services where service_id = 3;
NAME METHOD TYPE RETRIES GOAL CLB_GOAL AQNOT
--------------- ----------- ---------- -------- ---------- -------- -----
server_taf 0 NONE LONG NO
六、修改故障转移参数策略
[oracle@ora19crac1 ~]$ srvctl modify service -d woo -s server_taf -m BASIC -e SELECT -q TRUE -j LONG
[oracle@ora19crac1 ~]$ srvctl config service -d woo
Service name: server_taf
Server pool:
Cardinality: 2
Service role: PRIMARY
Management policy: AUTOMATIC
DTP transaction: false
AQ HA notifications: true
Global: false
Commit Outcome: false
Failover type: SELECT
Failover method: BASIC
Failover retries:
Failover delay:
Failover restore: NONE
Connection Load Balancing Goal: LONG
Runtime Load Balancing Goal: NONE
TAF policy specification: BASIC
Edition:
Pluggable database name:
Hub service:
Maximum lag time: ANY
SQL Translation Profile:
Retention: 86400 seconds
Replay Initiation Time: 300 seconds
Drain timeout:
Stop option:
Session State Consistency: DYNAMIC
GSM Flags: 0
Service is enabled
Preferred instances: woo1,woo2
Available instances:
CSS critical: no
Service uses Java: false
七、再次检查服务,我们可以看到值都有了
SQL> col name format a15
SQL> col failover_method format a11 heading 'METHOD'
SQL> col failover_type format a10 heading 'TYPE'
SQL> col failover_retries format 9999999 heading 'RETRIES'
SQL> col goal format a10
SQL> col clb_goal format a8
SQL> col AQ_HA_NOTIFICATIONS format a5 heading 'AQNOT'
SQL> select name, failover_method, failover_type, failover_retries,goal, clb_goal,aq_ha_notifications
2 from dba_services where service_id = 3;
NAME METHOD TYPE RETRIES GOAL CLB_GOAL AQNOT
--------------- ----------- ---------- -------- ---------- -------- -----
server_taf BASIC SELECT 0 NONE LONG YES
八、检查服务是否有注册到监听
[oracle@ora19crac1 ~]$ lsnrctl services
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 19-MAR-2020 16:58:22
Copyright (c) 1991, 2019, Oracle. All rights reserved.
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
Services Summary...
……
Service "server_taf" has 1 instance(s).
Instance "woo1", status READY, has 1 handler(s) for this service...
Handler(s):
"DEDICATED" established:0 refused:0 state:ready
LOCAL SERVER
Service "woo" has 1 instance(s).
Instance "woo1", status READY, has 1 handler(s) for this service...
Handler(s):
"DEDICATED" established:0 refused:0 state:ready
LOCAL SERVER
……
The command completed successfully
十、测试
SQL> col host_name format a11;
SQL> select instance_name,host_name from v$instance;
INSTANCE_NAME HOST_NAME
---------------- -----------
woo2 ora19crac2
十一、新开一个窗口关闭这个实例
SQL> shut abort
ORACLE instance shut down.
十二、查询可以正常进行,但是会有短暂的锁住现象
SQL> col host_name format a11;
SQL> select instance_name,host_name from v$instance;
INSTANCE_NAME HOST_NAME
---------------- -----------
woo2 ora19crac2