当前位置: 首页 > news >正文

如何配置Data Guard环境中的应用连接_客户端TAF与服务漂移Service Trigger

TAF配置不生效主因是TNSNAMES.ORA中未正确定义FAILOVER_MODE参数,需显式设置TYPE(SESSION/SELECT)、METHOD(BASIC)、RETRIES、DELAY及ADDRESS_LIST顺序;srvctl服务需配合DB_ROLE_CHANGE触发器或Broker手动启用,JDBC须配置TnsAdmin并使用≥12.1驱动。Oracle客户端TAF配置不生效,连接没切换?检查TNSNAMES.ORA里FAILOVER_MODE是否写对了很多人配完data guard后发现主库挂了,应用连不上——不是taf没起作用,而是客户端根本没按taf方式发起连接。关键在tnsnames.ora中服务名定义里必须显式声明failover_mode,且参数值要匹配实际需求。常见错误现象:ORA-01033: ORACLE initialization or shutdown in progress或直接超时,而不是自动切到备库;用tnsping能通,但SQL*Plus连不上主库时没触发重连。TYPE必须是SELECT或SESSION(前者只对查询生效,后者才支持会话级故障转移)METHOD推荐用BASIC(客户端直连,不依赖监听器转发),PRECONNECT虽快但占资源、难调试RETRIES和DELAY别设太激进(比如RETRIES=2 DELAY=1),容易在主库瞬断时误判为宕机确认ADDRESS_LIST里至少有两个地址,且顺序合理:主库放前面,备库放后面示例片段:DG_SERVICE = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = primary-host)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = standby-host)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl_dg) (FAILOVER_MODE = (TYPE = SESSION) (METHOD = BASIC) (RETRIES = 3) (DELAY = 5) ) ) )Service Trigger没触发,srvctl add service加的service状态一直是OFFLINEData Guard里靠srvctl管理的服务(如orcl_app)不会自动随角色切换而启停,必须配合Broker或自定义脚本监听DB_ROLE_CHANGE事件。否则即使主备切换完成,服务仍卡在原节点,客户端连的是空壳。使用场景:RAC+DG环境,想让应用连接始终落在当前PRIMARY上,且不改连接串。必须用srvctl add service -r指定首选实例(即当前主库所在实例),并用-a指定可用实例(备库实例可选,但仅当启用Fast-Start Failover时才有意义)服务启动后,检查crsctl stat res -t | grep service,若状态非ONLINE,大概率是数据库没注册该service——执行ALTER SYSTEM REGISTER或等监听器自动刷新(默认60秒)Broker开启时,ENABLE服务后需手动EDIT DATABASE ... SET PROPERTY ServiceName=...,否则Broker不接管不要依赖START命令一次启动:先srvctl start service,再srvctl enable service,顺序反了会失效Java应用连TAF服务,事务中断后不重试,Connection.isValid()返回true但执行SQL报ORA-03113JDBC驱动默认不解析TAF元数据,即使TNS配置正确,Connection对象也不知道自己已漂移到新实例。结果就是连接看似活着,一发SQL就崩——因为旧事务上下文在原实例上已丢失。 通义听悟 阿里云通义听悟是聚焦音视频内容的工作学习AI助手,依托大模型,帮助用户记录、整理和分析音视频内容,体验用大模型做音视频笔记、整理会议记录。

http://www.jsqmd.com/news/772825/

相关文章:

  • 从D435i的深度图反推:如何让OpenCV SGBM的输出更接近工业级传感器效果?
  • Windows微信智能批量消息发送工具:5大功能提升沟通效率300%
  • 小龙虾养成记:小龙虾和爱马仕(OpenClaw vs Hermes)源码对比与选型指南
  • LangGraph 错误处理与超时控制全指南
  • 甘蔗切梢器电液比例位置控制系统联合仿真【附代码】
  • 红色沙漠代码 镜像
  • 别再傻傻用普通FFT了!用MATLAB手把手教你实现ZOOM-FFT频谱细化(附完整代码)
  • 如何用AD8232心电传感器在30分钟内搭建专业级心率监测系统
  • 实测绍兴3家GEO公司:服务规范与效果可验证性复盘(2026) - 花开富贵112
  • 从零搭建一个拼多多CPS返利小程序:我的踩坑记录与避坑指南
  • 大语言模型价值观对齐技术:SFT与RLHF实践对比
  • 避坑指南:IST8310磁力计I2C通信失败的7个常见原因及排查方法
  • VMware Workstation 虚拟机创建客户端系统,出现此主机不支持64位客户机操作系统问题解决
  • 3个步骤掌握AI Toolkit:从零到一的完整AI开发指南
  • 基于Hugging Face Spaces免费部署永不离线AI助手:HuggingClaw实战指南
  • 实测绍兴3家GEO公司|服务规范与效果如何验证?(2026) - 花开富贵112
  • 3个简单步骤:使用OpenCore Legacy Patcher让旧Mac免费升级最新macOS
  • TIDAL音乐下载终极指南:如何用tidal-dl-ng轻松保存高品质无损音乐
  • 如何利用宝塔面板进行数据迁移_使用宝塔整机备份功能
  • D3.js:数据可视化的终极利器
  • 我开源了一款本地音乐播放器 —— Yeah Music,欢迎大家体验
  • 【Docker 工程实践】AI 服务容器化部署全流程
  • Synology Video Info Plugin:三步安装,让群晖Video Station影视信息更丰富
  • LangGraph 重构个人知识库问答系统(稳定 + 可扩展版)
  • 5个实战技巧:高效使用WebAssembly进行浏览器端图像处理
  • 怎么在 CloudCone VPS 上设置自动快照备份防止数据丢失
  • 月之暗面获20亿美元融资估值破200亿,成国内大模型创业累计融资最多企业
  • 从MII到RGMII:你的嵌入式网卡PCB面积是怎么省下来的?一个硬件老鸟的笔记
  • 看完100个失败私域直播案例,90%的人死在预热前
  • 用GD32F470的ADC+DMA实现高精度电流采样,附梁山派开发板实测波形