在DB2中从客户端访问服务器端的数据库时,不能直接用connect命令,而必须先建立通信node,再在node的基础上建立数据库连接。在命令行的具体操作如下:
->db2 catalog tcpip node ABC remote serverName server 50000
->db2 catalog db databaseName at node ABC
->db2 connect to databaseName user Uid using Pwd
说明:
catalog tcpip node ABC 中的ABC是由你任意起的一个结点名,结点名不能跟已有的结点名重复
catalog db databaseName at node ABC 中的ABC指的是你在前面起的那个结点名
serverName 服务器名称(远程数据库)
databaseName 数据库名称
Uid 用户名
Pwd 密码
另外,如果客户端已经跟同一个服务器建立了node,那么如果你想连接该服务器上的另一个数据库时,不需要再另建node,直接用同一个node即可。另外,建立node时服务器名称后的端口不一定是50000,要看DB工程师当时的设置。
相关指令:
db2 list db directory 列出可访问的db
db2 list node directory 列出可访问的结点
其他一些重要的DB2命令
1. 查看本地节点目录
命令窗口中输入:db2 list node directory
2. 编目一个TCP/IP节点
命令窗口:db2 catalog tcpip node <node_name> remote <hostname|ip_address> server <svcname|port_number> ostype <OS2|AIX|WIN95|NT|HPUX|SUN|MVS|OS400|VM|VSE|SCO|SGI|LINUX|DYNIX>
3. 取消节点编目
db2 uncatalog node <node_name>
4. 查看系统数据库目录
db2 list database directory
5. 查看本地数据库目录
db2 list database directory on <盘符>
在本地数据库目录中有而系统数据库目录中没有的数据库不能访问,可以在控制中心中选中<数据库>右键单击选择添加,然后输入需要添加的数据库名称或者点击刷新按钮选择数据库,加入数据库后即可以访问。
6. 编目数据库
db2 catalog database <db_name> as <db_alias> at node <node_name>
7. 取消数据库编目
db2 uncatalog database <db_name>
8. 测试远程数据库的连接
db2 connect to <db_alias> user <user_id> using <password
Windows下DB2端口查看/修改/分配
1. 端口查看
1. 在DB2命令行中, 运行: DB2 GET DBM CFG |FIND "SVCENAME", 将会获得如下输出:
TCP/IP Service name (SVCENAME) = db2c_DB2
2. 打开c:/windows/system32/drivers/etc/services, 查看1中找到的服务名称对应的端口号, 如:
db2c_DB2 50000/tcp
2. 端口修改
直接修改ttc/Services中的对应端口. 然后db2stop, db2start即可.
可通过telnet ip:port 检查是否已启动.
3. 为新建的Instance分配端口
1. 增加Service: 编辑etc/services文件, 增加Service名称及端口, 如增加:
db2c_MYINST 50006/tcp
2. 分配端口:
db2 UPDATE DBM CFG USING SVCENAME db2c_MYINST
Linux/unix 下DB2端口查看
db2 get dbm cfg | grep -i service
通过上一句命令的输出(如db2c_db2inst1)在/etc/services文件中找对应的端口号 grep db2c_db2inst1 /etc/services
这是你将会看到这么一行从上一句的输出 db2c_db2inst1 50000/tcp
其中50000就是db2占用端口号