在cx_Oracle中,我使用tnsnames.ora获得了一个Connection
对象
例:
conn = cx_Oracle.connect ('scott', 'tiger', 'DBNAME')
我试图从连接对象(= conn)获取IP,但我无法弄清楚如何做到这一点。
这实际上是不可能的。甚至OCI也不支持它。 OCI中有一个技巧可以将OCI Connection结构转换为旧的Oracle7连接上下文,并且此结构包含TCP套接字到数据库的“文件句柄”编号。从这个文件/套接字描述符,您可以获得IP。
如果你使用tnsnames.ora,你可以轻松地解析它。但是在Oracle RAC的情况下,您首先连接SCAN lister,这个将只发送重定向数据包到某个集群节点。将关闭与扫描侦听器的TCP连接,并根据从SCAN侦听器接收的信息打开新的TCP连接。