设为首页 收藏本站
查看: 1007|回复: 0

[经验分享] db2新建实例+客户端配置连接(转)

[复制链接]

尚未签到

发表于 2016-11-16 04:58:33 | 显示全部楼层 |阅读模式
  本实验分为上下两部分,第一部分:创建一个DB2实例;第二部分,进行了DB2网络通信配置(Server验证模式)的详解,演示了使用DB2命令行客户端(windows环境下),连接远端数据库的配置过程,这其中涉及到服务器端的配置、客户端的编目节点目录和编目数据库的内容。
第一部分:新建实例
1、欲使用db2icrt命令来创建实例,却发现找不到该命令:
[db2inst1@localhost ~]$ db2icrt
-bash: db2icrt: command not found
2、查找该命令工具的路径,并尝试执行,发现权限不足,需要在root用户下执行该命令:
[db2inst1@localhost ~]$ find /opt/ibm/ -name db2icrt
/opt/ibm/db2/V9.7/instance/db2icrt
[db2inst1@localhost ~]$ /opt/ibm/db2/V9.7/instance/./db2icrt -h
-bash: /opt/ibm/db2/V9.7/instance/./db2icrt: Permission denied
3、切换到root用户,使用-h来查看帮助:
[iyunv@localhost instance]# su - db2inst2
[db2inst2@localhost ~]$ su - root
Password:
[iyunv@localhost ~]# cd /opt/ibm/db2/V9.7/instance
[iyunv@localhost instance]# ./db2icrt -h
DBI1001I Usage:
 
 db2icrt [-h|-?]
        [-d]
        [-a AuthType]
        [-p PortName]
        [-s InstType]
        -u FencedID InstName
4、发现需要指定FencedID和InstName参数,而这两个参数,实际上就是要指定两个用户名,FencedID用户主要管理用户定义的函数(UDF)和受防护存储过程。而InstName是新实例的名称,也是我们新实例的管理员的用户名。下面我们,分别新建这两个用户:
 [iyunv@localhost ~]# useradd inst2Fence
[iyunv@localhost ~]# passwd inst2Fence
Changing password for user inst2Fence.
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
 
 [iyunv@localhost ~]# useradd db2inst2
[iyunv@localhost ~]# passwd db2inst2
Changing password for user db2inst2.
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
 
5、现在是最关键的步骤,使用如下命令来创建实例,客户验证的方式采用server(-a参数),指定端口号为55555(-p参数),结果因Fenced用户名过长,创建失败:
[iyunv@localhost instance]#./db2icrt -a server -p 55555 -s ese -u inst2Fence db2inst2
 
ERROR: The length of the fenced user name inst2Fence is invalid. It mustnot be longer than 8.
 
我们再创建一个名字较短的用户,以满足要求:
[iyunv@localhost instance]# ./db2icrt -a server -p 55555 -s ese -u Fence2 db2inst2
DBI1070I Program db2icrt completed successfully.
 
6、切换用户登陆,查看下系统当前的默认实例:
[iyunv@localhost instance]# su - db2inst2
[db2inst2@localhost ~]$ db2 get instance
 
 The current database manager instance is: db2inst2
 
查看所有实例:
[db2inst2@localhost ~]$ db2ilist
db2inst2
db2inst1
 
        总结:
1、创建实例使用的是db2icrt命令,由于版本的原因,默认是找不到该命令工具的路径。2、在创建实例之前,需要先创建好FencedID用户和InstName用户。
 
第二部分
        此部分实验,演示了如何使用命令行客户端如何与db2服务器进行通信。
首先,在服务端需要配置好服务名、监听端口、通信协议,并且需要创建一个数据库,供客户端连接:
1、配置服务名
1.1、查看一下服务名,发现创建实例时指定的-p参数(端口名或端口号),成为了服务名:
[db2inst2@localhost ~]$ db2 get dbm cfg | grep SVC
 TCP/IP Service name                         (SVCENAME) = 55555
 SSL service name                        (SSL_SVCENAME) =
1.2、指定实例的服务名为db2c_db2inst2:
[db2inst2@localhost ~]$ db2 update dbm cfg using SVCENAME db2c_db2inst2
DB20000I The UPDATE DATABASE MANAGER CONFIGURATION command completed
successfully.
[db2inst2@localhost ~]$ db2 get dbm cfg | grep SVC     
 TCP/IP Service name                         (SVCENAME) = db2c_db2inst2
 SSL service name                        (SSL_SVCENAME) =
2、指定监听客户端请求的端口,修改service文件:
[iyunv@localhost instance]# vi /etc/services
db2c_db2inst2 55555/tcp
3、确认好通信协议是tcpip:
[db2inst2@localhost ~]$ db2set
DB2COMM=tcpip
4、重启db2实例(运行db2stop和db2start两条命令),查看监听是否开启:
[iyunv@localhost instance]# netstat -a | grep db2c_db2inst2
tcp       0     0 *:db2c_db2inst2            *:*                        LISTEN     
5、新建一个数据库,供客户端连接:
db2 => create database demo
DB20000I The CREATE DATABASE command completed successfully.
 
 
        以下部分是在客户端进行配置的操作过程:
1、编目节点目录:
回到我们的客户端机器,打开windows的开始菜单,选择“IBM DB2”--“命令行工具”--“命令窗口”:
db2 => catalog TCPIP node n1 remote 192.168.102.163 server db2c_db2inst2
DB20000I CATALOG TCPIP NODE命令成功完成。
DB21056W 只有在刷新目录高速缓存以后,目录更改才会生效。
 
如何才能够“刷新”呢?使用如下命令,来查看帮助:
db2 => ? DB21056W
DB21056W直到刷新目录高速缓存之后,目录更改才生效。
解释:
若启用了目录高速缓存(DBM CFG dir_cache),数据库、节点和DCS目录文件都高速缓存在内存中。直到刷新该目录高速缓存之后,目录更改才开始生效。参阅“管理指南”中的dir_cache配置参数以获取有关目录高速缓存的描述。
 
用户响应:
 
要刷新CLP的目录高速缓存,发出db2TERMINATE。要刷新另一个应用程序的目录信息,停止该应用程序,然后重新启动它。要刷新该数据库的目录信息,停止(db2stop)该应用程序,然后重新启动(db2start)它。
 
查看帮助后,发现使用terminate即可:
db2 => terminate
DB20000I TERMINATE命令成功完成。
 
D:\Program Files\IBM\SQLLIB\BIN>
 
2、在客户端上编目数据库,可以给数据库名在本地取一个“别名”,以防止不同实例下的数据库出现同名的情况:
db2 => catalog database demo as demo2 at node n1 authentication server
DB20000I CATALOG DATABASE命令成功完成。
DB21056W 只有在刷新目录高速缓存以后,目录更改才会生效。
db2 => terminate
DB20000I TERMINATE命令成功完成。
 
3、连接到数据库时出错,提示找不到服务:
db2 => connect to demo2 user db2inst2 using passwd
SQL1337N 找不到服务"db2c_db2inst2"。
 
4、分析:建立节点时,指定的最后一个参数可能有问题,因为我们新建实例的时候,指定的是端口号;与之对应得,客户端的在进行节点编目时也应该指定端口号,而不是服务名:
删除数据库编目和节点目录,为重新配置,做准备:
db2 => uncatalog db demo2
DB20000I UNCATALOG DATABASE命令成功完成。
DB21056W 只有在刷新目录高速缓存以后,目录更改才会生效。
db2 => uncatalog node n1
DB20000I UNCATALOG NODE命令成功完成。
DB21056W 只有在刷新目录高速缓存以后,目录更改才会生效。
db2 => terminate
DB20000I TERMINATE命令成功完成。
 
D:\Program Files\IBM\SQLLIB\BIN>db2
 
5、重建节点目录和数据库编目:
db2 => catalog TCPIP node n1 remote 192.168.102.163 server 55555
DB20000I CATALOG TCPIP NODE命令成功完成。
DB21056W 只有在刷新目录高速缓存以后,目录更改才会生效。
db2 => terminate
DB20000I TERMINATE命令成功完成。
 
db2 => catalog database demo as demo2 at node n1 authentication server
DB20000I CATALOG DATABASE命令成功完成。
DB21056W 只有在刷新目录高速缓存以后,目录更改才会生效。
db2 => terminate
DB20000I TERMINATE命令成功完成。
 
6、成功登陆
db2 => connect to demo2 user db2inst2 using passwd
 
  数据库连接信息
 
 数据库服务器        = DB2/LINUX 9.7.1
 SQL授权标识        = DB2INST2
 本地数据库别名      = DEMO2
 
db2 => list node directory
 
 节点目录
 
 目录中的条目数= 2
 
节点1条目:
 
 节点名                         = N1
 注释                           =
 目录条目类型                   = LOCAL
 协议                           = TCPIP
 主机名                         = 192.168.102.163
 服务名称                       = 55555
 
节点2条目:
 
 节点名                         = NDE5C9F6
 注释                           =
 目录条目类型                   = LOCAL
 协议                           = TCPIP
 主机名                         = 192.168.102.163
 服务名称                       = db2c_db2inst1
 
总结:1、在本实验中,端口号和通信协议是服务器配置的重要参数,服务名的作用没有体现出来(使用图形化工具配置时,服务名作用十分重要);
2、客户端的配置,比较关键的步骤是节点目录和数据库编目的创建。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-300810-1-1.html 上篇帖子: 迁移至WebSphere+DB2中遇到的问题 下篇帖子: db2数据库迁移到mssql记录之一
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表