如何识别 DB2 端口号

Posted

技术标签:

【中文标题】如何识别 DB2 端口号【英文标题】:How to identify DB2 port number 【发布时间】:2012-01-04 18:52:32 【问题描述】:

我必须使用端口号在 java 中建立 DB2 连接。 DB2中是否有任何命令或任何方式可以获得DB2端口号?

在进行 DB2 连接时,我没有使用默认端口 50000,因为此端口可以在 DB2 安装期间更改。 请建议任何 DB2 命令或任何其他替代方法。

【问题讨论】:

如果您使用的是 linux 机器,您可以尝试 netstat -pn | grep -i db 列出 DB2 正在侦听的所有端口。 我认为 Windows 也会有类似的东西。 【参考方案1】:

转到 DB2 命令提示符。

发出命令获取db2实例

命令:db2 获取实例

发出命令查找 TCP/IP 服务名称

命令:db2 get dbm cfg | grep SVCE

示例

db2 获取 dbm 配置文件 | grep SVCE

TCP/IP 服务名称 (SVCENAME) = db2c_db2inst9 TCP/IP 服务名称是“db2c_db2inst9

使用 TCP/IP 服务名在 /etc/services 文件中查找端口号

命令:grep TCP/IPservicename /etc/services

TCP/IPservicename 更改为当前服务名称。

示例

grep db2c_db2inst9 /etc/services

db2c_db2inst9 50090/tcp

DB2 实例在端口号 50090

上运行

【讨论】:

这对我有用,只是使用:db2 get dbm cfg。然后往下看,我看到了我的端口,它是 50000。【参考方案2】:

在 Linux/Unix DB2 服务器上,打开 shell 终端并使用实例所有者登录。执行以下命令:

        db2 "get dbm cfg"|grep -i svce

就像 Ian Bjorhvde 的回答一样,您显示了 TCP/IP 服务名称, SVCENAME 可以在文件 /etc/service 中查看。

【讨论】:

这仅适用于当前实例。如果需要更改每个实例以获取服务名称,并在服务文件中匹配它。【参考方案3】:

这将给出机器上安装的所有 db2 实例的端口(对于 Linux 或 AIX 系统)

netstat -aan | grep -i db2

【讨论】:

就我而言,它在 AIX 上不返回任何内容。字符串 'db2' 与正在侦听的端口无关。【参考方案4】:

您的服务器中可能有不同的实例,这意味着 DB2 正在侦听不同的端口。 首先,您必须列出服务器中的实例

db2ilist

您将获得一组实例名称。对于每一个,您都必须获取端口名称

窗户

set DB2INSTANCE=instname
db2 get dbm cfg

Linux

export DB2INSTANCE=instname
db2 get dbm cfg

如果不更改实例,则只会获取当前实例的服务名称。 从客户端获取该信息的另一种方法是通过配置助手 (db2ca)。在高级视图中,您右键单击一个实例,然后您将获得该实例的详细信息:端口号、服务名称等。

【讨论】:

【参考方案5】:

在 Windows DB2 服务器上,打开 DB2 命令窗口并执行命令

db2 get database manager configuration | findstr /i svce

这应该提供一些输出,例如:

 TCP/IP Service name                          (SVCENAME) = db2c_DB2
 SSL service name                         (SSL_SVCENAME) =

SVCENAME 是 DB2 正在侦听的端口。要将此名称解析为实际端口号,您需要参考位于%SystemRoot%\system32\drivers\etc\services 的服务文件。

【讨论】:

这仅适用于当前实例。有必要附加到服务器中的每个实例,以便了解“服务”文件中定义的 DB2 实例的所有端口。 @DurgadasKamath 需要详细说明吗? 在 DB2 命令编辑器中,该命令给了我一个错误,但“获取数据库管理器配置”(没有前导“db”并且没有管道命令)有效。在那里我可以手动搜索 svcename。

以上是关于如何识别 DB2 端口号的主要内容,如果未能解决你的问题,请参考以下文章

更改Linux下的DB2端口号

如何查看自己数据库的端口号

Rac 如何修改默认监听端口号

TCP/应用层如何识别目的端口号?

如何用java程序获得本机的端口号?

4-2:TCP协议之详解端口号