TAF即透明应用程序故障转移,是Oracle RAC提供的客户端或服务器端连接故障切换机制,服务端配置TAF可以让所有连接到对应服务的客户端自动获得故障转移能力,无需逐个修改客户端配置。下面详细介绍Oracle 11g RAC下TAF服务端的配置实现过程。

TAF服务端配置前置条件
配置前需要确认RAC集群所有节点运行正常,OCR和 Voting Disk状态无异常,且已经创建好用于业务连接的数据库服务,可以通过以下命令检查集群服务状态:
-- 检查RAC集群服务状态 srvctl status service -d 数据库名
TAF服务端配置步骤
1. 创建或修改带TAF属性的服务
可以使用srvctl命令创建新的服务并指定TAF参数,也可以修改已有服务的TAF配置,核心参数包括TAF的故障转移类型、方法、重试次数和重试间隔。
-- 创建新服务并配置TAF,假设数据库名为orcl,服务名为orcl_taf srvctl add service -d orcl -s orcl_taf -r "节点1,节点2" -P BASIC -e SESSION -m BASIC -w 5 -z 3 -- 参数说明: -- -d 数据库名 -- -s 服务名 -- -r 首选运行节点列表 -- -P 负载均衡策略,BASIC为基础负载均衡 -- -e 故障转移类型,SESSION为会话级故障转移,SELECT为查询级故障转移 -- -m 故障转移方法,BASIC为连接时故障转移,PRECONNECT为预连接故障转移 -- -w 故障转移重试间隔,单位秒 -- -z 故障转移重试次数
2. 启动配置好的TAF服务
服务创建完成后需要手动启动,同时可以设置服务随数据库自动启动,避免集群重启后服务未运行。
-- 启动TAF服务 srvctl start service -d orcl -s orcl_taf -- 设置服务随数据库自动启动 srvctl enable service -d orcl -s orcl_taf
3. 验证服务TAF配置
可以查询数据库字典视图确认TAF参数是否生效,也可以通过客户端连接测试故障切换效果。
-- 查询服务的TAF配置信息 SELECT service_name, failover_method, failover_type, failover_retries, failover_delay FROM dba_services WHERE service_name = 'orcl_taf';
TAF故障转移效果验证
使用配置好的服务名连接数据库,查询当前连接的实例名,然后手动关闭当前连接的节点实例,观察连接是否自动切换到其他节点。
-- 连接TAF服务后查询当前实例名 SELECT instance_name FROM v$instance; -- 关闭当前实例(在对应节点执行) srvctl stop instance -d orcl -i 实例名 -o immediate -- 再次查询实例名,确认已经切换到其他运行节点 SELECT instance_name FROM v$instance;
配置注意事项
- TAF的故障转移类型选择:如果业务只有普通DML操作,选择SESSION类型即可;如果业务有长查询需要故障后继续返回结果,选择SELECT类型。
- 故障转移重试次数和间隔需要根据业务网络情况调整,避免重试过于频繁或等待时间过长。
- 修改已有服务的TAF配置后,需要重启服务才能生效,重启前建议通知业务侧做好连接重连准备。
- 如果RAC集群扩缩容节点,需要同步更新服务的首选节点列表,保证TAF切换范围覆盖所有可用节点。
Oracle_11g_RACTAFfailover服务端配置修改时间:2026-06-02 17:34:13