如何通过SQL查询获取DB2的服务器名、实例名及数据库名
DB2环境获取服务器名、实例名、数据库名的SQL方案
直接在DB2连接会话中执行对应SQL即可,返回结果与原有shell脚本采集的信息一致。
通用版本(适配DB2 9.7及以上所有LUW环境)
普通连接用户即可执行,无需额外权限,返回值为真实配置值不受别名影响:
SELECT SYS.HOST_NAME AS server_name, INST.INSTANCE_NAME AS instance_name, CURRENT DATABASE AS db_name FROM TABLE(SYSPROC.ENV_GET_SYSTEM_INFO()) AS SYS, TABLE(SYSPROC.ENV_GET_INSTANCE_INFO()) AS INST;
低版本兼容写法(适配DB2 9.7以前版本)
如果你的DB2版本不支持上述表函数,可以使用以下兼容写法:
SELECT CURRENT SERVER AS server_name, (SELECT VALUE FROM SYSIBMADM.DBMCFG WHERE NAME = 'instance_name') AS instance_name, CURRENT SERVER AS db_name FROM SYSIBM.SYSDUMMY1;
注意:低版本写法如果数据库配置了连接别名,返回的server_name和db_name会显示别名值,优先使用通用版本获取准确信息。
内容的提问来源于stack exchange,提问作者Jit Sarkar
相关产品推荐
相关产品推荐

