实现:在客户端远程连接服务器端的db2(db2之间的互连)
本文假定如下:
客户端为windows/linux/unix,客户端也已经安装了db2或者客户端
服务器端为windows/linux/unix
客户端ip:192.168.42.147,服务器端ip为192.168.42.102
步骤:
-
在客户端建立服务器端数据库的节点
在客户端命令行执行
Db2 catalog tcpip node test remote 192.168.42.102 server 50000
注:test为在客户端定义的节点,名字可以任意
192.168.42.102为客户端的ip
50000为DB2使用的端口
查找服务器端DB2使用的端口,
如果服务器端为linux,可以访问/etc/services文件,如果你的实例名为db2inst1,找到如下行
db2inst1 50000/tcp
如果服务器端为windows,查看X:/WINNT/System32/drivers/etc/services
-
绑定节点和客户端的数据库
执行下面的命令db2 catalog db coshine at node test
注:coshine为服务器端中你想要连接的数据库名
Test就是步骤一种定义的节点
-
使绑定生效
执行db2 terminate
-
设定客户端db2codepage(代码页设置)即字符编码
先在服务器端查询db2codepage,执行db2set –all
[i] DB2_EXTENDED_OPTIMIZATION=ON
[i] DB2_DISABLE_FLUSH_LOG=ON
[i] AUTOSTART=YES
[i] DB2_STRIPED_CONTAINERS=ON
[i] DB2_HASH_JOIN=Y
[i] DB2COMM=tcpip
[i] DB2CODEPAGE=819
[i] DB2_PARALLEL_IO=*
可以看到服务器端的DB2CODEPAGE为819,所以客户端也必须设置为这个数字
执行db2set db2codepage=819
-
进行连接
执行db2 connect to coshine user user_name using password
注释
Db2codepage:即db2数据库的编码方式
db2codepage=1386(简体中文)
db2country=86(中国)
一个数据库一旦建立,他的代码页就没有办法改,
db2set DB2CODEPAGE=1386只能改变代码页环境,不能改变数据库的代码页
如果不能连接:检查如下是否正确
-
确保可以ping通服务器端:ping 192.168.42.102
-
确保服务器端的db2已经启动:db2start
-
确保客户端DB2COMM设置为tcpip
先查看db2comm设置:db2set –all
如果没有设置这个注册表,执行db2set db2comm=tcpip
-
将SVCENAME设置成/etc/services中的端口号或者服务名了吗?
执行db2 get dbm cfg查看,找到SVCENAME,如果当前值不是服务器端的端口号或者服务名,进行更新设置
执行:db2 update dbm cfg SVCENAME db2inst1
注:db2inst1为服务名,这个在/etc/services文件中db2inst1 50000/tcp
一致