2017-07-26 120 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