如何解决从tnsnames.ora获取数据库服务器IP
我正在开发一个Web应用程序,该应用程序将部署在各个应用程序服务器上,每个服务器都连接到不同的Oracle DB。数据库连接在每个应用程序服务器的tnsnames.ora文件中指定。 另外,每个tns名称条目都使用多个数据库IP地址来处理故障转移。
ABCD =
(DESCRIPTION =
(ADDRESS_LIST =
(FAILOVER = on)
(LOAD_BALANCE = off)
(ADDRESS = (PROTOCOL = TCP)(HOST = 1.2.3.4)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 1.2.3.5)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 1.2.3.10)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = abcd)
(FAILOVER_MODE =
(TYPE = SELECT)
(METHOD = BASIC)
)
)
)
我正在尝试找到一种方法来获取应用服务器当前正在使用的数据库的IP地址。
我到处搜索,但找不到解决方案,坦率地说甚至都不知道它是否可行。
我可以执行:
netstat -a | findstr ":1521"
TCP 10.20.30.40:52707 Blah1:1521 ESTABLISHED
TCP 10.20.30.40:57022 Blah2:1521 ESTABLISHED
TCP 10.20.30.40:57024 Blah3:1521 ESTABLISHED
查找与端口1521建立的所有连接,Oracle DB使用该连接。然后,我应该可以执行nslookup来获取Blah1,Blah2和Blah3的IP地址。
我可能必须使用应用程序(ABC)使用的tns条目名称来解析tnsnames.ora文件;然后比较我从nslookup获得的IP,看看哪个匹配。
有内置的方法吗?有没有人遇到这种情况并设法解决呢? 如何确定应用程序连接到的是1.2.3.4还是1.2.3.5或1.2.3.10?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。