2017-07-26 186 views
-1

是否可以通过查询目录元数据来查找DB2数据库的实例名称?例如,我们可以使用SELECT tbname, column_name FROM SYSIBM.SYSCOLUMNS找到表格的列。是否有类似的查询可以获取实例名称?使用SQL获取DB2实例名称

我需要这个,因为我正在运行查询来获取数据库中剩余的可用空间,跨越多个实例。我宁愿让查询本身告诉我实例的名称。

在Linux上运行DB2 10.5。

+1

什么Db2平台/版本? – mustaccio

回答

1

对于DB2 LUW,您可以使用ENV_INST_INFO。实例名称在列INST_NAME

SELECT INST_NAME FROM SYSIBMADM.ENV_INST_INFO 
+0

'select inst_name FROM sysibmadm.env_inst_info'返回一个我认识的名称,但不是我需要的名称。假设我的JDBC URL是'jdbc:db2://hostname.company.com:portNumber/InstanceName'。我需要InstanceName。上面返回的INST_NAME是我在IDE中看到的名称(IBM Data Studio),名称为“树中的第2级”。 (对不起 - 不知道该怎么称呼它。)我想要的InstanceName是在树中的第3级。 – radumanolescu

+0

您不连接到实例,而是连接到数据库。 –

+0

在这种情况下,我想要数据库名称,因为实例名称在所有环境中都是相同的。 – radumanolescu

0

根据您的DB2服务器版本和平台,您可以使用MON_GET_INSTANCE表函数(有关详细信息和示例,请参阅IBM DB2知识中心)。对于实例名称,您可以使用PDLOGMSGS_LAST24HOURS

+0

该文档似乎没有说实例名称被返回。另外,我没有运行该功能的权限,因此我无法确认或反驳您的陈述。不过谢谢你的回答。 https://www.ibm.com/support/knowledgecenter/en/SSEPGG_10.5.0/com.ibm.db2.luw.sql.rtn.doc/doc/r0060770.html – radumanolescu

+0

另请参见PDLOGMSGS_LAST24HOURS(返回列INSTANCENAME) – mao

+0

'选择* FROM sysibmadm.pdlogmsgs_last24hours'运行,但对我的数据库没有任何返回 – radumanolescu