有没有办法将JDBC连接的主机和端口连接到Oracle数据库服务器?
我知道,我可以解析网址。但我们使用故障转移,我想知道,我实际连接的服务器。由于我们的格式不同,URL的解析是静态的,容易出错。
无法在连接元数据中找到它。
使用'select * from global_name'我可以获得servicename。但我还没有找到一种获取主机和端口的方法,我们已连接到。
有什么想法吗?
答案 0 :(得分:3)
以下是您可以从Connection获得的一些信息:
Connection dbConnection = null;
try {
dbConnection = dataSource.getConnection();
DatabaseMetaData dbMetaData = dbConnection.getMetaData();
getLogger().debug("DB Product Name = " + dbMetaData.getDatabaseProductName());
getLogger().debug("DB Product Version= " + dbMetaData.getDatabaseProductVersion());
getLogger().debug("DB Driver Name = " + dbMetaData.getDriverName());
getLogger().debug("DB Driver Version = " + dbMetaData.getDriverVersion());
getLogger().debug("DB Username = " + dbMetaData.getUserName());
getLogger().debug("DB URL = " + dbMetaData.getURL());
} catch (Exception e) {
getLogger().debug("Failed to recover DatabaseMetaData: "+e.getMessage(), e);
} finally {
if (dbConnection != null) {
try {
dbConnection.close();
} catch (Exception ex) {
getLogger().error("Failed to close the DB connection: "+ex.getMessage(), ex);
}
}
}
如果您需要更多/不同的信息,请检查DatabaseMetaData。 输出示例:
DB Product Name = Oracle
DB Product Version= Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options
DB Driver Name = Oracle JDBC driver
DB Driver Version = 11.2.0.2.0
DB Schema = XXXXX
DB URL = jdbc:oracle:thin:@XXX.XXX.XXX.XXX:11010:MYSID
答案 1 :(得分:2)
不确定端口(实际上是侦听器上的端口),但对于主机,您可以尝试:
select utl_inaddr.get_host_name, utl_inaddr.get_host_address from dual;
db端还有其他选项(例如查询v $ instance),请参阅here。例如,您可能使用的SID:
select sys_context('userenv','instance_name') from dual;
希望有所帮助。另请注意,我使用utl_inaddr,但仅用于记录和电子邮件/警报。
编辑:
另外,请注意,欺骗Oracle会话信息存在一些问题,部分原因是我注意到我只使用它来为警报和日志添加上下文。我不假装知道所有的输入/输出,但基本上这个问题涉及假装成某人(或某处)的客户。由于您通过Java应用程序控制连接,因此不应该关注,但如果您愿意,请参阅here了解更多信息。
答案 2 :(得分:1)
这应该为您提供正在运行的实例的主机名:
select host_name from v$instance
答案 3 :(得分:0)
尝试以下一项:
<textarea [(ngModel)]="sometext"></textarea>
文档:https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions165.htm