Prayer

在一般中寻求卓越
posts - 1256, comments - 190, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

db2 查看 修改 端口号

Posted on 2019-03-25 11:41 Prayer 阅读(1026) 评论(0)  编辑 收藏 引用 所属分类: DB2

db2安装完成后,tcp/ip连接端口默认为50000,可通过下面的方法确认:

 

1、使用命令 db2 get dbm cfg |find "SVCENAME" 查找到TCP/IP 服务名

 

2、到系统配置文件里找到service name 对应的 port number
windows:查看 c:\windows\system32\drivers\etc\services                                                

aix:         查看 /etc/services

如下:

DB2_DB2              60000/tcp
DB2_DB2_1          60001/tcp
DB2_DB2_2          60002/tcp
DB2_DB2_END      60003/tcp

db2c_DB2             50000/tcp

 

3、使用 netstat -an 命令查找tcp/ip 服务的端口

 
4、修改端口号
   直接修改services文件中当前服务名对应的端口号
如:db2c_DB2 50000/tcp
然后重启数据库即OK  db2stop  db2start

5、另外附上一个关于linux系统下的查找方法(摘抄帖子):

In JDBC configurations for WPA, you have to specify the port that DB2 is listening on. I usually look for /etc/services or try one of 50000/50001 and it usually works. In SUSE Linux, both the solutions did not work and there was another process (Multithreaded routing toolkit aka mrt) was listening on port 50000.

So how do we find out the DB2 port in a reliable way? Read on...
Step 1: Set the DB2 environment.
$ . ~db2inst1/sqllib/db2profile

Step 2: Find the service name for DB2 instance. It basically involves running "db2 get dbm cfg" command and finding a line containing SVCENAME. 
$ svc=`db2 get dbm cfg | grep SVCENAME | cut -d= -f2 | awk '{print $1}'`

Step 3: Find the service name that you got from Step 2 in /etc/services or %SYSTEMROOT%\system32\drivers\etc\services. That is the port DB2 is listening on. $ grep $svc /etc/services

 

Hope you find this useful.




用sqoop做测试,发现端口号50000被占用了,所以就更改了一下DB2的端口号。


第一步,登录DB2数据库的实例用户,我这里是db2inst1

db2 get dbm cfg|grep SVCENAME

可以看到对应的SVCENAME的名称是什么。

clipboard.png


这里容易出现一个问题。按照网上有人说的,会将SVCENAME改为端口号,那个是错误的。一定要将这个名称和services中的名称统一。


第二步,退回到root用户,

vim /etc/services,找到对应的SVCENAME的名称所对应的端口号。

我这里直接编辑成50001

clipboard.png

第三步,先关数据库,再开就可以了。

db2stop

db2start


实际上没有复杂的步骤,只是好多人写的比较的乱,还不加解释说明,所以坑了些。



可以通过db2 get dbm cfg,查询数据库管理器配置参数,就可以查到端口号或端口名。

示例:

$ db2 get dbm cfg | grep -i svcTCP/IP Service name (SVCENAME) = 50000

50000就是端口号了。


如果查到的是端口名,可以通过网络服务配置文件来找到对应关系。

示例:

$ db2 get dbm cfg | grep -i svc

TCP/IP Service name (SVCENAME) = db2c_DB2

这时,就需要查找db2c_DB2对应的端口号了。

$ cat /etc/services | grep db2c_DB2

db2c_DB2 60000/tcp

这个60000就是端口号了。

如果DB2是装在windows的server上,那么就需要查找这个配置文件了,C:\WINDOWS\system32\drivers\etc\services格式:db2c_DB2 50000/tcp




只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理