TNSNAMES格式URL含可用主机仍报ORA-01033,故障排查求助
ORA-01033错误:多地址JDBC连接未自动故障转移的解决办法
你的JDBC连接URL存在格式问题——第二个ADDRESS节点被放置在ADDRESS_LIST的外部,这导致Oracle JDBC驱动无法将其识别为故障转移的备选地址。当host1不可用时,驱动不会自动切换到host2,最终触发ORA-01033错误。
错误URL中,(ADDRESS = (PROTOCOL = tcp)(HOST = host2.test.net)(PORT = 1521))位于ADDRESS_LIST的闭合括号之后,不在故障转移地址池范围内。
修正后的正确JDBC连接URL
jdbc:oracle:thin:@(DESCRIPTION=(TRANSPORT_CONNECT_TIMEOUT=2)(RETRY_COUNT=3)(ADDRESS_LIST=(FAILOVER = on)(ADDRESS = (PROTOCOL = tcp)(HOST = host1.test.net)(PORT = 1521))(ADDRESS = (PROTOCOL = tcp)(HOST = host2.test.net)(PORT = 1521)))(CONNECT_DATA = (SERVICE_NAME = test)))
说明
将两个ADDRESS节点全部纳入ADDRESS_LIST内部后,配合FAILOVER = on的配置,Oracle JDBC驱动会在尝试连接第一个地址失败时,自动重试备选的host2地址,实现预期的故障转移效果。
内容的提问来源于stack exchange,提问作者thekoolestkid
相关产品推荐
相关产品推荐

