数据库的连接


远程连接:

DB2服务端,主要噢诶之通信协议和IP端口号,远程连接的通信协议一般都是TCPIPIP端口号是针对实例的,每个实例有一个SVCENAME参数指定端口号。

DB2客户端,要通过catalog命令进行编目。编目就是将服务端的一些配置信息在客户端记录一下,如IP、端口号等。对IP和端口号的登记操作叫做节点编目(node catalog),而对数据库信息登记叫做数据库编目(database catalog

 

案例:服务端是AIX机器,IP192.186.90.9,实例端口号为50000,改实例包含testdb数据库。客户端是远程一台PC,要访问testdb

 

1.首先在DB2服务端配置:

db2set db2comm=tcpip

Db2 update dbm cfg using svcename 50000

Db2stop

Db2start

(重启才生效)

2.然后在DB2客户端编目:

编目节点:db2 catalog tcpip node node_9 remote

编目数据库:db2 catalog db testdb as testdb at node node_9

使操作生效:db2 terminate

查看节点信息:db2 list node directory

查看数据库信息:db2 list db directory

3.在客户端远程连接数据库

Db2 connect to testdb user db2inst1 using password

 

常见的数据库连接问题

 

1.通信协议错误。以下几步分析原因:

a) 检查网络是否正常。

b) 是否存在防火墙问题。

c) 检查服务器db2diag.log 日志,并确认实例端口(SVCENAME参数)和db2comm 注册变量是否正确。

d) 检车客户端节点编目和数据库编目是否正确。

2.数据库连接编码问题

a) 客户端访问数据库时,如果客户端代码页与服务器数据库代码页不兼容,连接时会出现字符转换问题。这是可在客户端设置db2codepage注册变量。

b) 国内常用的代码页是1208/3186/8191208UTF-8编码集。8191208兼容,13861208兼容,8191386不相容。

c) 设置命令 db2set db2codepage=1386,db2 terminate,然后重新连接。

3.实例目录被删除或破坏,重新编目。重建实例不会删除数据库。

Db2 catalog db testdb on /testdbcatalog

4.删除数据库目录,重建库失败。<案例>

某客户要删除并重建数据库,但删除时没有采用drop database 命令而是直接删除数据库目录,重新建库时报错SQL1005N错误:数据库已经存在了。

通过 Db2 ? SQL1005N  查看报错信息。

这个错误有3中原因:

(1)需要创建的数据库别名已经存在于系统数据库目录和本地数据库目录,需要drop掉。

Db2 drop database database_alias

(2)需要创建的数据库别名存在系统数据库目录,不在本地数据库目录,需要uncatalog 别名。

Db2 uncatalog database your_database_alias

(3)存在于本地数据库目录,不在系统数据库目录中。需要先编目到系统数据库目录,然后删除数据库。

Db2 catalog database your_database_alias

Db2 drop database your_database_alias

 

如果使用这三种方法都没有成功,可以先创建一个空的数据库目录SQL0000X欺骗DB2,然后按照第(3)种方法catalog db db_name on <db_path>,然后执行drop database命令。

 

所以切记:删除数据库一定要使用drop database 命令,不要直接删除数据库目录。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值