1

我正在尝试使用负载平衡,其中我的 Oracle 10g 数据库中有 3 个 RAC 节点,例如 db1、db2、db3。我开发了一个带有 JDBC 连接的 Java 程序。此 JDBC 连接使用负载平衡。我的问题是我想打印这个 JDBC 连接命中的 RAC 节点(无论是 db1、db2 还是 db3)。任何人都可以提供任何 SQL 查询来了解当前 JDBC 连接命中的 RAC 节点吗?我想测试当我们通过 JDBC Thin 连接时是否成功使用了负载平衡。任何人都可以建议使用 JDBC Java 程序测试负载平衡的任何替代方法吗?

4

2 回答 2

3
select instance_name from v$instance
于 2013-01-16T07:03:40.710 回答
2

通常,您会通过执行类似的操作来测试负载平衡是否正常工作

SELECT inst_id, count(*)
  FROM gv$session
 WHERE <<something that identifies your connections>>
 GROUP BY inst_id

获取每个实例的会话数。<<something that identifies your connections>>可以是列上的谓词(MACHINE假设您的连接来自一个或多个应用服务器)、PROGRAM列、the OSUSER、theSCHEMANAME或任何其他标识您感兴趣的会话的东西。

如果您真的想从 Java 应用程序中单独获取此信息,您可以

SELECT DISTINCT inst_id
  FROM gv$mystat

无论哪种情况,您都可以使用该表查找哪些inst_id映射到哪个服务器。gv$instance

于 2013-01-16T01:59:12.547 回答