您的位置:首页 > 运维架构 > Linux

virtualbox+centos下db2 9.7安装

2014-06-11 23:25 357 查看
写这个blog是为了记录自己安装db2的过程,同时也给在虚拟机下装db2的同学稍微提供点借鉴。当然,可能不是很全,但是同样作为初学者,我会尽量将我遇到的所有问题都写出来。

一.将db2 9.7安装包上传到虚拟机中

可以采用虚拟机的增强功能直接拖拽或者是文件共享的形式,也可以使用ftp形式上传到虚拟机中。如果需要ftp具体配置感兴趣的可以看一下我前面的第二篇blog,里面介绍了关于本地虚拟机简历ftp连接的过程,可以参考。

这里上传的文件有两个db2exc_975_LNX_x86.tar.gz和db2exc_nlpack_975_LNX_x86.tar.gz,(其中第二个为语言包,我刚查了一下,有人说是可选的,这里具体是否是必须,我自己安装过程中没有测试过)

在/tmp下创建一个db2目录:mkdir -p /tmp/db2。

将文件上传到该目录下。

二.解压安装包

(解压安装包这里我是在图形化界面做的,这里提供命令没有经过测试)

解压:

tar -zxvf db2exc_975_LNX_x86.tar.gz;

tar -zxvf db2exc_nlpack_975_LNX_x86.tar.gz

解压出来后,我的有两个目录nlpack:对应为db2exc_nlpack_975_LNX_x86.tar.gz解压所得;special_27924_linuxia32_expc:对应为db2exc_975_LNX_x86.tar.gz解压所得。

三.安装

安装文件在special_27924_linuxia32_expc目录下,其中db2安装有两种方式,一种是图形化界面安装,就像在windows下安装程序一样,还有一种是命令行安装(不知道是否也叫做静默安装,貌似不是,字面意思都不一样)。这里我误打误撞使用了命令行安装,发现真心方便,才知道原来在命令行下装db2是如此的简单(ibm果然牛掰),废话不多说,下面开始说明这两种方法(参考:http://blog.csdn.net/flcandclf/article/details/7634754):

在目录中,db2setup和db2_install都是可用于安装的文件,调用方式为./db2setup或者是./db2_install;区别在于,./db2setup会弹出视窗安装(如果没有装图形界面,不知道后果会怎样,没测试过);而./db2_install则为命令行安装。图形化界面的很简单,根据提示进行就可以了,唯一对第一次使用db2的人来说比较难懂的可能就是创建实例用户那,具体三个用户的作用下面会做简单说明,也可以参照:http://blog.csdn.net/flcandclf/article/details/7634768
的blog进行学习;下面重点说明命令行模式(这里没有测试过,只是参照了大神的blog,当时已经稀里糊涂的在命令行模式下装完了db2,参数都没有测试过,小伙伴们可以自己测试一下,如果有什么问题,留言回复,我可以及时修改错误):

1.db2_install命令常用参数(参考blog:http://blog.csdn.net/flcandclf/article/details/7634754,命令没有测试过):

-b :该选项指定root用户安装时的路径,linux默认为/opt/ibm/db2/V9.7,AIX系统默认路径为: /opt/IBM/db2/V9.7.

-l 指定安装日志文件路径和名称,root用户默认/tmp/db2_install.log.进程号。

-f NOTSAMP 不安装samp示例数据库

-L 安装语言包,可以同时安装多个语言包,比如:安装英语和汉语,-L EN –L CN

-p productShortName 指定要安装的DB2产品的名称。如:ESE,WSE或CLIENT等,产品名称可以在安装文件夹对应platform(系统平台如:AIX或linux等文件夹)下ComponentList.htm文件中找到。该参数必须与-n参数同时使用。

-n参数指示非交互安装方式。当指定了此参数时,还必须指定-b和–p

2.执行安装

lz当时就是简单的./db2_install,最后安装路径默认为/opt/ibm/db2/V9.7,使用了默认的日志路径和名称,最重要的是默认没有安装sample示例数据库,安装都配置完成后,lz使用db2 list db directory查看所有数据库中除了lz自己创建的rews数据库,并没有其他任何数据,还请大家注意。

这里小伙伴们可以根据自己的情况组合命令来定制安装数据库。

3.对新安装的db2进行配置

db2数据库必须的3个用户:

实例所有者,用户名为db2inst1,组名为db2iadm1;

受保护的用户,用户名为db2fenc1,组名为db2fadm1;

管理服务器用户,用户名为dasusr1,组名为dasadm1;详细了解可以参考(http://blog.csdn.net/flcandclf/article/details/7634768)

说明一下,图形化界面里面根据我以前的印象,创建组账号,添加db2用户帐号,创建实例这三步应该是不需要做的,这里可以根据实际情况省略,而命令模式创建的数据库则需要自己创建组及用户。

1)添加组帐号:(使用root用户执行下面命令)

#groupadd dasadm1;

#groupadd db2fadm1;

#groupadd db2iadm1;

2)添加db2用户帐号(使用root用户执行下面命令)

#useradd -m -d /home/db2inst1 -g db2iadm1 db2inst1;

#useradd -m -d /home/db2fenc1 -g db2fadm1 db2fenc1;

#useradd -m -d /home/dasusr1 -g dasadm1 dasusr1;

3)添加用户密码(使用root执行对应命令)

#passwd db2inst1(根据提示输入密码即可)

#passwd db2fenc1

#passwd dasusr1

4)创建实例db2inst1

#cd /opt/ibm/db2/V9.7/instance

#./db2icrt -u db2fenc1 db2inst1(注意前面的“./”)

扩展:查看所有实例:

#cd /opt/ibm/db2/V9.7/bin (转入到db2安装路径下的bin目录)

#./db2ilist(注意前面的“./”)

查看当前实例:

#su - db2inst1(切换到db2实例用户,注意“-”两边空格)

#db2 get instance

删除实例:

#cd /opt/ibm/db2/V9.7/instance

#./db2idrop db2inst1(可以使用-f参数强制删除实例,注意前面的“./”)

5)启动数据库服务

#su - db2inst1(切换到数据库实例用户)

#db2start

扩展:停数据库服务

#db2stop

6)设定监听端口

启动db2实例的时候,发现db2监听端口并没有随着db2实例启动而启动。可以根据下面配置进行设置,但是在你创建database的时候如果指明-p 参数,则响应的这里不需要设置。下面是设置db2监听端口:

先执行db2set-all来检查是否有 DB2COMM=TCPIP 一项,如果没有则应该执行“ db2set DB2COMM=TCPIP ”设置。

# db2set –all

# db2set DB2COMM=TCPIP

# db2 get dbm cfg | grep SVCENAME 检查配置 SVCENAME 的值,如果 SVCENAME为空值,则需要用下面的步骤设定该值;如果是一个端口号 ( 端口号应小于 65536),则不用读取/etc/services文件中的端口定义,如果该值是一个字符串(如:db2c_db2inst1),则在实例启动时会自动读取/etc/services 中的该字符串对应的端口号来监听。

# db2 update database manager configuration using svcename db2c_db2inst1(或者为端口号如:50001)--我们也可以通过这种方式修改DB2监听的端口号.

7)设置db2管理服务器(这里lz没有做,因为到目前,我貌似还没用到这个用户的功能)

①创建DB2 管理服务器。

# cd /opt/ibm/db2/V9.5/instance

# ./dascrt -u dasusr1

② 启动DB2 管理服务器

# su - dasusr1

# db2admin start

SQL4409W The DB2 Administration Server is already active. –启动完成,这时可以用命令netstat-an 查看DB2 管理服务器的监听端口523是否被监听。

说明:DB2 管理服务器启动完成后,可以通过客户端对服务器数据库进行管理,比如在windows机器上通过DB2控制中心访问远端服务器数据库

扩展:停止DB2管理服务器。

# su – dasusr1

# db2admin stop

到这里数据库服务应该是建立起来了,剩下的就是创建自己的数据库了

四.设置虚拟机网络,在本地使用DbVisualizer连接虚拟机中的数据库。

这里virtualbox网络方式为:仅主机(Host-Only)适配器,这里之所以采用这种方式是因为前面配置ftp时使用的是:网络地址转换(NAT),需要做端口转发,但是数据库50000端口可能只是用来监听连接的,当实现连接后会转交其他线程和其他端口处理,可能就是这里的原因导致一直报错,报错信息为:

连接数据库报错

Details:

Type: com.ibm.db2.jcc.am.DisconnectNonTransientConnectionException

Error Code: -4499

SQL State: 08001

所以这里采用网络连接方式为:仅主机(Host-Only)适配器,这种模式下,主机和虚拟机是通过虚拟网卡:VirtualBox Host-Only Network通信。该网卡默认ip为192.168.56.1,子网掩码为255.255.255.0。然后虚拟机里ip只要设置为192.168.56.*,就可以通过虚拟机ip访问到虚拟机中的数据库服务。

扩展:设置虚拟机ip地址(参考:http://www.cnblogs.com/coacaio/archive/2011/12/12/2284715.html)

#vi /etc/sysconfig/network-scripts/ifcfg-eth0(编辑配置文件)

参考配置如下:

DEVICE=eth0 #网卡0

BOOTPROTO=static #获取ip方式:静态

BROADCAST=192.168.56.255

HWADDR=08:00:27:50:C3:D2

ONBOOT=yes

TYPE=Ethernet

IPADDR=192.168.56.101 #ip地址

NETMASK=255.255.255.0 #子网掩码

NETWORK=192.168.56.0

:wq保存

#service network restart (重启网卡使配置生效)

到这里为止,主机上的数据库工具就可以通过192.168.56.101地址访问到创建的数据库了(注意别忘了创建数据库)

写了时间很长,该休息了,后面有些不详细的地方还请见谅~~如果有问题可以回复我~~~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: