本人最近在学习在linux下搭建测试环境,第一天安装db2后配置客户端连接ping server总是ping不通,2天啊,整整纠结我两天,数据库卸载安装了3次,换了2台电脑,还好最后终于搞定。
数据库安装步骤:
1.下载db2文件
2.解压tar -zxvf db2安装包
3.cd到解压的文件夹中去,我的是server
4.运行安装文件./db2_install
5.使用root用户添加3个组合3个用户
[root@localhost expc]# groupadd -g 2000db2iadm1
[root@localhost expc]# groupadd-g 2001db2fadm1
[root@localhost expc]# useradd-m -g db2iadm1 -d /home/db2inst1 db2inst1
[root@localhost expc]# useradd-m -g db2fadm1 -d /home/db2fenc1 db2fenc1
[root@localhost expc]#passwddb2inst1
[root@localhost expc]#passwd db2fenc1
6.安装db2 的licence,可惜我没有,只能到期卸载重装,此步忽略。
7.创建实例和样本数据库
db2和oracle不一样,oracle只能创建一个实例,而DB2可以创建多个实例,每个实例下可以创建多个数据库
cd 到安装路径下:cd /opt/ibm/db2/V10.5/instance
给予用户这个文件夹所有文件的读写权限:chmod -R 775 *
创建数据库实例: ./db2icrt -u db2fenc1 db2inst1(数据库实例名为db2inst1,与之前的用户名相同)
切换用户: su -db2inst1
当前路径下创建样本数据库:db2sampl
启动数据库管理器:db2start
尝试是否能成功连接到样本数据库: db2 connect to sample
8.创建DAS管理服务器
为了远程客户端能够用控制中心来控制数据库服务器,需要在数据库服务器上安装 das,当然,如果只是远程连接而不是远程管理,可以不用装,这里我安装了一下。
[root@localhost expc]# groupadd -g 2002db2asgrp
[root@localhost expc]# useradd-m -g db2asgrp -d /home/db2as db2as
[root@localhost expc]#passwddb2as
[db2as@localhost~]$ su -db2as #这里测试新建用户
[db2as@localhost~]$ su#这里进入root权限
[root@localhost~]# cd /opt/ibm/db2/V10.1/instance/
[root@localhost instance]# ./dascrt -u db2as
DBI1070I Program dascrt completed successfully.
[root@localhost instance]#su -db2as
[db2as@localhost~]$ db2admin start
SQL4409W The DB2 Administration Server is already active.
9.设置端口号
root用户登录
编辑services文件:vim /etc/services
在文件最后一行添加db2监听端口:db2inst1 50000/tcp
10.db2基本配置
切换到用户db2inst1:cd db2inst1
db2set DB2_EXTENDED_OPTIMIZATION=ON
db2set DB2_DISABLE_FLUSH_LOG=ON
db2set AUTOSTART=YES
db2set DB2_STRIPED_CONTAINERS=ON(这个变量在v10.5已经不再使用,所以可以忽略)
db2set DB2_HASH_JOIN=Y
db2set DB2COMM=tcpip (设置db2连接方式,如果不设置会导致无法连接数据库服务器)
db2set DB2_PARALLEL_IO=*
db2set DB2CODEPAGE=819 (设置实例下的字符集,一定要设置,但是要根据自己的项目字符集定义)
设置完成后,可以通过名称查看是否设置成功:db2set -all
11:将SVCENAME设置成/etc/services中的端口号或者服务名(端口号50000或者服务名:db2inst1)
db2inst1用户输入命令: db2 get dbm cfg|grepSVCENAME
得到结果为:
TCP/IP Service name (SVCENAME) =
SSL service name (SSL_SVCENAME)=
则要更新svcename,输入命令: db2 update dbm cfg using SVCENAME db2inst1(这里用的是服务名),也可用端口号,如:db2 update dbm cfg using SVCENAME 50000
再次查看结果:db2 get dbm cfg|grepSVCENAME
结果为:
TCP/IP Service name (SVCENAME) = db2inst1或者50000
SSL service name (SSL_SVCENAME)=
此时所有关于db2的服务端的配置全部配置完成,此时用dbcisualizer连接时如果ping server还是ping不通,记住一定是防火墙的问题,跟db2毫无关系。附带red hat防火墙设置命令:
此类型系统包括red hat的各类衍生及相关不版本,包括RHEL、CentOS、Fedora等等。
防火墙配置文件: /etc/sysconfig/iptables
服务操作命令 : /etc/init.d/iptables service iptables {start|stop...}
临时改变命令 : iptables iptables-save iptables-restore等
经常配到/etc/init.d/路径下没有iptables,则请百度,使用其他命令。
12.防火墙修改后再重启db服务,db2stop,db2start