1、DB2安装
本次安装的服务器系统是Linux,版本是Redhat6.3[uname -a 结果:Linux pss-seat2 2.6.32-279.el6.x86_64 #1 SMP Wed Jun 13 18:24:36 EDT 2012 x86_64 x86_64 x86_64 GNU/Linux]。安装的DB2版本是V10.1,采用的是使用命令行安装,即使用db2_install命令,而非使用db2setup的界面安装。
具体安装步骤如下:
《1》查看并设置系统语言
在linux系统中使用root账户输入命令:locale进行查看,结果如下:
LANG=zh_CN.GB18030
LC_CTYPE="zh_CN.GB18030"
LC_NUMERIC="zh_CN.GB18030"
LC_TIME="zh_CN.GB18030"
LC_COLLATE="zh_CN.GB18030"
LC_MONETARY="zh_CN.GB18030"
LC_MESSAGES="zh_CN.GB18030"
LC_PAPER="zh_CN.GB18030"
LC_NAME="zh_CN.GB18030"
LC_ADDRESS="zh_CN.GB18030"
LC_TELEPHONE="zh_CN.GB18030"
LC_MEASUREMENT="zh_CN.GB18030"
LC_IDENTIFICATION="zh_CN.GB18030"
LC_ALL=
设置LC_ALL的值:export LC_ALL=en_US,export LANG=en_US在进行查看结果如下:
LANG=zh_CN.GB18030
LC_CTYPE="en_US"
LC_NUMERIC="en_US"
LC_TIME="en_US"
LC_COLLATE="en_US"
LC_MONETARY="en_US"
LC_MESSAGES="en_US"
LC_PAPER="en_US"
LC_NAME="en_US"
LC_ADDRESS="en_US"
LC_TELEPHONE="en_US"
LC_MEASUREMENT="en_US"
LC_IDENTIFICATION="en_US"
LC_ALL=en_US
注意:上面操作的目的是为了便于输入英文。因为要是中文在安装选择时容易陷入死循环。
重复出现:Do you want to install the Application Cluster Transparency Feature? [yes/no]
《2》查看Redhat的SELinux值
系统初始安装时,该值设置为enforcing,此时安装时会出现错误编号为1的错误,设置其为disabled。
具体设置步骤:进入/etc/selinux下更改config文件的内容[cd /etc/selinux,vi config]
注意:该值要是设置为enforcing会出现错误1的错误。
碰到的错误:
错误编号 |
1 |
错误描述 |
|
解决方案 |
1、cd /etc/selinux;2、vi config;3、将该文件中的SELINUX=enforcing改为SELINUX=disabled。 |
错误编号 |
2 |
错误描述 |
|
解决方案 |
这个警告不影响DB2的安装,是C++编译时使用的包 |
《3》安装DB2
这里仅是安装DB2数据库,不含数据库实例。安装文件名为:v10.1_linuxx64_ese.tar。
①将安装文件拷贝到合适的目录,确定该目录的空间大于10G。这里拷入/opt/db2(自己创建的)。
②解压:tar -xvf v10.1_linuxx64_ese.tar,会在当前目录生出ese目录,里面含有安装文件。
③进行安装:cd /ese;执行安装命令: ./db2_install 若无错误则出现下面的信息,并根据提示输入相应的信息。
DBI1324W Support of the db2_install command is deprecated. For more information, see the DB2 Information Center.
Default directory for installation of products - /opt/ibm/db2/V10.1
***********************************************************
Install into default directory (/opt/ibm/db2/V10.1) ? [yes/no] (作者注:输入yes)
yes
Specify one of the following keywords to install DB2 products.
ESE
CLIENT
RTCL
Enter "help" to redisplay product names.
Enter "quit" to exit.(作者注:输入ESE---单机版)
***********************************************************
ESE
***********************************************************
Do you want to install the Application Cluster Transparency Feature? [yes/no](作者注:输入no)
no
DB2 installation is being initialized.
Total number of tasks to be performed: 45
之后会出现45个task开始和结束的信息,知道看到
The execution completed successfully.
说明DB2数据库已经安装完毕。
二、实例的创建
《1》查看hosts中的值
这个问题很隐蔽,一定要注意,之前安装时总是报错误1。更改该文件之前执行命令:cat /etc/hosts结果如下:
而我们安装的服务器IP是:172.27.18.30,hostname:pss-seat1。
更改后[注意最后一行]:
更改步骤:
cd /etc; vi hosts;在最后一行加上安装机器的ip地址,空格,hostname。
《2》创建实例
①创建用户组
/usr/sbin/groupadd db2iadm1
/usr/sbin/groupadd db2fadm1
/usr/sbin/groupadd dasadm1(没有要求,一般不建)
②创建用户,并设置组。
/usr/sbin/useradd -m -g db2iadm1 -d /home/db2inst1 db2inst1 -s /bin/bash[实例用户]
/usr/sbin/useradd -m -g db2fadm1 -d /home/db2fenc1 db2fenc1 -s /bin/bash[受防护用户]
以上语句也可以分步骤执行
cat /etc/group [查看db2iadm1的GID]
/usr/sbin/useradd -d /home/db2inst1 db2inst1 -s /bin/bash usermod -g 1000 db2inst1[这里1000是db2iadm1的GID] /usr/sbin/useradd -d /home/db2fenc1 db2fenc1 -s /bin/bash usermod -g 999 db2fenc1 [这里999是db2fadm1 的GID] |
若是创建第二个实例,则1>就不用再建,直接执行第二步即可。
/usr/sbin/useradd -m -g db2iadm1 -d /home/db2inst2 db2inst2[实例用户] /usr/sbin/useradd -m -g db2fadm1 -d /home/db2fenc2 db2fenc2[受防护用户] |
③更改目录权限并为用户设置密码
chown db2inst1 /home/db2inst1
chown db2fenc1 /home/db2fenc1
passwd db2inst1 设置密码,以便使用DATASTUDIO连接数据库
passwd db2fenc1
④创建用户的.profile文件
su - db2inst1
cd ~
touch .profile
⑤创建实例
su - root
cd /opt/ibm/db2/V10.1/instance[进入DB2安装目录]
./db2icrt -u db2fenc1 db2inst1[./db2icrt -a server -u db2fenc1 db2inst1]
当然这里也可以指定端口,不用DB2自己寻找的端口,命令如下:
./db2icrt -p 60000 -u db2fenc1 db2inst1[此时默认-a SERVER]
进入/etc下可以在文件services中最下面看到类似下面的字样说明创建成功!
启动db2实例(这里登录到系统后首先执行su – db2inst1
db2start[启动成功会出现下面的字符串]
⑥配置实例
配置连接方式为tcpip:
su - db2inst1 (修改TCP/IP变量)
db2set db2comm=tcpip
db2 update dbm cfg using SVCENAME DB2_db2test [注意: DB2_db2ins1是db2实例创建的时候自动写在/etc/services的映射,这里也可以直接更改成你想要的端口]
⑦其他设置
设置Oracle兼容性开关
db2set DB2_COMPATIBILITY_VECTOR=ORA
启动db2实例(这里登录到系统后首先执行su – db2inst1)
db2start
若能启动说明创建成功!且进入/etc下可以在文件services中最下面看到类似下面的字样。
碰见的问题:
错误编号 |
1 |
错误描述 |
Operating system information: Linux 2.6.32-279.el6.x86_64.#1 SMP Wed Jun 13 18:24:36 EDT 2012 x86_64
ERROR: DBI1702E The specified service name or port number conflicts with existing values in the TCP/IP services file. Explanation: The service name or port number conflicts with existing values in the services file. The service name might already be used with a different port number, or the port number might already be used with a different service name. |
解决方案 |
1、cd /etc;2、vi hosts ;3、添加一行:IP地址+空格+hostname |
备注 |
若出现该错误说明找不到合适的端口,陷入无限循环监听可用端口。 |
三、数据库的创建(承接上面,仍是db2inst1用户下)
①db2 "CREATE db seatmap USING CODESET UTF-8 TERRITORY CN";
②db2 connect to seatmap;
③执行创建的sql语句,其中包括缓冲池、表空间、schema、序列、表结构以及索引、约束等。在命令行中输入db2 -tvf seatmap.sql 。
④插入必要的静态数据 db2 -tvf seatmap_staticData.sql 。