使用SQL获取DB2实例名称
是否可以通过查询目录元数据来查找DB2数据库的实例名称?例如,我们可以使用SELECT tbname, column_name FROM SYSIBM.SYSCOLUMNS
找到表格的列。是否有类似的查询可以获取实例名称?使用SQL获取DB2实例名称
我需要这个,因为我正在运行查询来获取数据库中剩余的可用空间,跨越多个实例。我宁愿让查询本身告诉我实例的名称。
在Linux上运行DB2 10.5。
对于DB2 LUW,您可以使用ENV_INST_INFO
。实例名称在列INST_NAME
:
SELECT INST_NAME FROM SYSIBMADM.ENV_INST_INFO
'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
您不连接到实例,而是连接到数据库。 –
在这种情况下,我想要数据库名称,因为实例名称在所有环境中都是相同的。 – radumanolescu
根据您的DB2服务器版本和平台,您可以使用MON_GET_INSTANCE表函数(有关详细信息和示例,请参阅IBM DB2知识中心)。对于实例名称,您可以使用PDLOGMSGS_LAST24HOURS
该文档似乎没有说实例名称被返回。另外,我没有运行该功能的权限,因此我无法确认或反驳您的陈述。不过谢谢你的回答。 https://www.ibm.com/support/knowledgecenter/en/SSEPGG_10.5.0/com.ibm.db2.luw.sql.rtn.doc/doc/r0060770.html – radumanolescu
另请参见PDLOGMSGS_LAST24HOURS(返回列INSTANCENAME) – mao
'选择* FROM sysibmadm.pdlogmsgs_last24hours'运行,但对我的数据库没有任何返回 – radumanolescu
什么Db2平台/版本? – mustaccio