关闭

DB2快速入门—DB2 11的安装与使用

标签: 数据库DB2IBM
4178人阅读 评论(0) 收藏 举报
分类:

DB2快速入门—DB2 11的安装与使用

1.准备

DB2是IBM开发的关系型数据库,目前在银行等领域使用较多。
DB2 11是最新版本数据库,Express C是提供的免费版本,提供了大部分功能和特性。

DB2 11 Express C For Linux免费版官网下载地址:
http://www.ibm.com/analytics/us/en/technology/db2/db2-trials.html#db2-trials

SUSE Linux 11 SP4 操作系统:本文采用虚拟机方式安装和实验,DB2 11支持Ubuntu、Redhat等多种发行版,建议下载最新的版本,SUSE必须11 SP4以上版本才能安装DB2 11.

VMware Workstation 11.1.0版本

2.DB2安装方式选择

DB2 11安装支持:图形界面向导方式安装(最简单,但是需要图形界面支持)、响应文件静默安装(也就是命令+配置文件方式)、有效文件安装(拷贝有效的安装文件、手动设置,该方式仅支持部分DB2组件的安装)、db2_install命令行方式(该方式从V10开始淘汰,暂时仍然附带)

考虑到一般环境的安装情况,采用响应文件方式安装,该方式限制少,支持各种DB2组件安装。
linux上采用root用户安装,非root用户安装对DB2功能限制较多,暂不考虑。

3.具体安装过程

SUSE Linux采用默认安装即可,安装完成以后(注意安装光盘仍然需要挂载到虚拟机上),需要安装VMware Tool,以方便进行使用共享文件夹、文件鼠标自由移动拖拽、全屏等高级功能;

安装VMware Tools出现错误:

Before you can compile modules, you need to have the following installed...
make
gcc
kernel headers of the running kernel
Searching for GCC...
The path "" is not valid path to the gcc binary.
Would you like to change it? [yes]

Searching for a valid kernel header path...
The path "" is not a valid path to the 3.0.101-63-default kernel headers.
Would you like to change it? [yes]

原因:没有安装GCC和kernel header,这是由于采用了本地解压tar编译安装,需要这些工具和头文件;如果采用便宜好的rpm包就不需要这些了

解决:

#zypper install gcc    
#gcc  -v  

显示gcc版本号,即为gcc安装成功

#zypper se  kernel

发现:kernel-default*包、kernel-firmware程序包都已经安装,但是源码包没有安装;
这里误导了我,以为自己已经安装好了kernel headers相关的包,始终在寻找其他原因,但是其实头文件是在源码包中,必须安装源码包

#yast2 -i  kernel-source

或者

#zypper install  kernel-source

安装完成生成该目录:/lib/modules/3.0.101-63-default/build/include

重新安装vmware tools并重启:
注意有时候需要考虑linux操作系统内核版本和vm-tools版本,这里没有,(尝试过将vmware workstation 11.1.0升级到11.1.4,vmware tools也从9.9.2升级到9.9.5,无法解决上述问题)

#cd /media/VMware Tools
#cp VMwareTools-9.9.5-3735633.tar.gz /root
#cd /root
#tar xvfz VMwareTools-9.9.5-3735633.tar.gz
#cd  vmware-tools-distrib
#./vmware-install.pl  -d   这里加上参数,采用默认安装,不需要一步步交互确认
#reboot  安装完重启即可

DB2 11安装:
设置虚拟机共享目录,将windows主机存放的DB2 11安装包的目录设置为共享目录:E:\软件库\,并连接;登录SUSE虚拟机,拷贝安装包,进行安装
共享目录挂载在linux系统的/mnt/hgfs目录下。

#cd /mnt/hgfs/软件库
#cp v11.1_linuxx64_expc.tar.gz  /root
#cd /root
#tar xvfz  v11.1_linuxx64_expc.tar.gz 
#cd expc

检查安装先决条件满足:

#./db2prereqcheck -v 11.1.0.0

提示:
DBT3507E db2prereqcheck 实用程序未能找到以下程序包或文件:”gcc-c++”。

需要安装gcc++组件,挂载上suse linux sp4的安装光盘:

#zypper se gcc
#zypper install gcc-c++
#./db2prereqcheck -v 11.1.0.0

所有添加都满足,检查完成

编译配置样本响应文件

#cp /root/expc/db2/linuxamd64/samples/db2expc.rsp .
#vim db2expec.rsp

重点配置内容如下:开启配置项(去掉前面的星号)以及设置合适的值:(以下选项必须开启,注意前面的星号,否则可能提示 用户名等错误)
【一般配置】

LIC_AGREEMENT  = ACCEPT

【实例创建配置】
很多选项,例如实例名、实例用户名和组、目录都采用默认的即可
配置实例用户的密码:

DB2_INST.NAME = db2inst1
DB2_INST.GROUP = db2iadm1
DB2_INST.PASSWORD  =  password1
DB2_INST.PORT_NUMBER = 50000
DB2_INST.AUTHENTICATION = SERVER

【受保护的用户创建设置】

DB2_INST.FENCED_USERNAME = db2sdfe1
DB2_INST.FENCED_GROUP_NAME = db2fsdm1
DB2_INST.FENCED_PASSWORD = password2

【管理服务器创建设置】

DAS_USERNAME = dasusr1
DAS_GROUP_NAME = dasadm1
DAS_PASSWORD = password3

保存好响应文件,检查其有效性:

#cd /root/expc
#./db2setup -c -r db2expc.rsp

出错:

The host name "linux-suse11-sp4" is invalid. Specify a valid host name.
DBI1463E The response file validation failed. Log file:

本来以为主机名过长或者有特殊字符,#hostname suse11 以后仍然不行,经查:
在/etc/hosts里面添加主机DNS映射即可:

127.0.0.1          localhost suse11

DBI1702E The specified service name or port number conflicts with
existing values in the TCP/IP services file.

这个问题很明显,是因为实例端口已经被用,查看/etc/services文件可以看见50000端口被占用:

#vim db2expc.rsp

设置:

DB2_INST.PORT_NUMBER = 50001

修改后检查,提示成功:

#./db2setup -c -r db2expc.rsp

设置英文安装环境:

#export  LANG=en_US.UTF-8
#./db2setup -r db2expc.rsp

等安装成功,估计2-3分钟,提示:The execution completed successfully.

4.安装完成以后进行验证:

查看相关db2进程:

# ps -ef | grep db2

查看当前机器db2安装路径:

#db2ls 

【备注】以下所有操作都是使用linux用户:db2inst1

数据库实例操作:(数据库实例是创建和管理数据库的逻辑容器,进行数据库相关操作是在实例中)
数据库实例必须用创建时配置的实例用户名进行登录:在上述响应文件中,我们创建了db2inst1,因此DB2安装完成后自动创建了db2inst1的数据库实例和db2inst1的linux用户,密码是password1,默认的实例目录是在/home/db2inst1

切换root用户到实例用户db2inst1

#su - db2inst1

查看db2实例进程:

~ps -ef | grep db2
~db2

查询当前实例名

~db get instance 

启动当前实例:

~db2start

查询当前实例下所有的数据库:因为没有创建,查询为空

~db2 list db directory

创建一个数据库(在默认位置创建默认配置的数据库):

~db2 create database testdb

查询当前实例下的数据库:

~db2 list db database testdb

连接到testdb数据库:

~db2  connect to testdb

查看当前数据库的配置信息(例如编码等):

~db2 get db cfg | more

创建示例的表:求职简历表 job_resume,保存求职者的简历文件信息

字段名 解释 数据类型
joberno 求职者编号 唯一, char(6) not null
resume_format 简历格式标识 varchar(10) not null
resume 简历文件 clob(1m)

~db2 connect to testdb

查看当前连接的活动数据库:

~db2 list active databases

进入命令行操作:

~db2

进入db2命令行:(反斜杠\前面必须空一格,否则无法起到换行作用)

db2 => create table job_resume(joberno char(6) not null primary key,  \
resume_format varchar(10) not null,  \
resume clob(1m)) 

查看当前数据库的表格:

db2=>list tables

查看表格的模式定义:

db2=>describe table job_resume

退出命令行操作:

db2=>quit

删除测试数据库:需要先停止数据库连接和应用

~db2 drop database testdb

出错:

SQL1035N The operation failed because the specified database cannot be
connected to in the mode requested. SQLSTATE=57019

删除测试数据库:需要先停止数据库连接和应用

~db2 list applications
~db2 force applications  all
~db2 drop database testdb
~db2 list db directory

5.卸载DB2数据库

卸载脚本在:/opt/ibm/db2/V11.1/install/db2_deinstall

以root用户登录:执行
卸载数据库:

#/opt/ibm/db2/V11.1/install/db2_deinstall -a

出错:提示必须先卸载或者移除该安装副本所管理的所有实例
The deinstallation process cannot continue while there are DB2 instances related to the current DB2 copy.

解决:卸载实例
查询当前副本管理的所有实例列表:

#/opt/ibm/db2/V11.1/instance/db2ilist

逐一删除实例:本文只有db2inst1一个实例,删除

#/opt/ibm/db2/V11.1/instance/db2idrop db2inst1

出错:提示该实例仍然是活动状态,也就是有应用连接,必须先停止
The DB2 installer detects that one or more DB2 instances "db2inst1" are still active. Stop the active instances and rerun the command again.

停止实例再删除实例:

#su - db2inst1
~db2stop  force
~su - root
#/opt/ibm/db2/V11.1/instance/db2idrop db2inst1

再次执行卸载脚本:
卸载数据库:

#/opt/ibm/db2/V11.1/install/db2_deinstall -a

再次提示das服务开启,需要关闭并删除:
The DB2 installer detects the DAS is using the current DB2 copy to be uninstalled.

切换到dasusr1用户:

# su - dasusr1
~db2admin stop
#su - root
~/opt/ibm/db2/V11.1/instance/dasdrop 

再次执行卸载脚本:
卸载数据库:

#/opt/ibm/db2/V11.1/install/db2_deinstall -a
2
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:35638次
    • 积分:674
    • 等级:
    • 排名:千里之外
    • 原创:32篇
    • 转载:3篇
    • 译文:0篇
    • 评论:4条
    文章分类
    最新评论