【问题标题】:Get DB2 instance name using SQL使用 SQL 获取 DB2 实例名称
【发布时间】:2017-07-27 00:56:52
【问题描述】:

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

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

在 Linux 上运行 DB2 10.5。

【问题讨论】:

  • 什么 Db2 平台/版本?

标签: db2 metadata db2-luw


【解决方案1】:

对于 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 级。
  • 您连接的不是实例,而是数据库。
  • 在这种情况下,我想要数据库名称,因为实例名称在我们所有的环境中都是相同的。
  • 将此标记为已回答并提出另一个问题。
【解决方案2】:

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

【讨论】:

  • 文档似乎没有说返回实例名称。另外,我没有运行该功能的权限,因此我无法确认或反驳您的说法。不过还是谢谢你的回答。 ibm.com/support/knowledgecenter/en/SSEPGG_10.5.0/…
  • 另见 PDLOGMSGS_LAST24HOURS(返回列 INSTANCENAME)
  • select * FROM sysibmadm.pdlogmsgs_last24hours 运行,但我的数据库没有返回任何内容
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-06
  • 2020-11-25
  • 1970-01-01
  • 1970-01-01
  • 2019-07-08
  • 1970-01-01
相关资源
最近更新 更多