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

Linux下命令安装DB2 9.7 express免费版数据库的步骤(已经实践过并补充有关问题)

2014-07-11 19:08 435 查看
可以使用图形界面,也可以使用手工安装的方式。我们先介绍最简单的安装方法。

1.从IBM网站下载DB2 9.7 express C版本:文件名db2exc_971_LNX_x86.tar.gz。

2.在LINUX下解压缩及解包
#gzip -d db2exc_971_LNX_x86.tar.gz

#tar -xvf db2exc_971_LNX_x86.tar

3.进入相关目录,运行安装文件
#xhost +
#cd expc
#./db2setup
先允许所有用户使用xwindows界面。
在当前目录中要找到db2setup文件,然后执行它。
如果权限不够,先运行chmod +x db2setup

4.根据图形界面安装
可以选择安装位置或内容等。
过程中需要对其中的三个DB2用户的名字和密码进行设置,并记录下来。注意DB2没有自己独立的用户管理系统,因此这几个用户实际就是LINUX的用户。
最后完成安装。

5.验证安装成功。
[root@bogon expc]# su - db2inst1
[db2inst1@bogon ~]$ db2 create database test
DB20000I The CREATE DATABASE command completed successfully.
[db2inst1@bogon ~]$
其中db2inst1为安装过程中创建的三个用户之一,为实例的管理者用户。
创建数据库成功表明安装成功。

更多的初始配置见DB2手工安装。

########################################################

DB2 for linux手动安装步骤

第一步下载db2数据包
当前最新版本为9.7,从IBM网站下载免费的Express C版本。
db2exc_971_LNX_x86.tar.gz 及语言包db2exc_nlpack_971_LNX_x86.tar.gz(后者可选)。

第二步上传安装文件
把下载下来的包ftp上传到待安装的LINUX机器上

第三步解包db2exc_971_LNX_x86.tar.gz
# gzip -d db2exc_971_LNX_x86.tar.gz
# tar -xvf db2exc_971_LNX_x86.tar

第四步安装
解包以后会有目录名为expc,进入找到db2_install和db2setup文件,前者为手动安装,后者为图形界面安装。
#cd expc
#./db2_install
设定安装目录等以后,耐心等待安装任务完成。
默认安装路径是/opt/ibm/db2 /V9.7,可检查之。

第五步注册license
本安装无须这一步。
对于企业版等版本,需要注册license才能使用。
对于V8.1 ESE版,注册license的文件一般是:/opt/DB2_V81_PE_LNX_32_NLV/db2/license/db2ese.lic,否则需要自己找一下db2ese.lic,
根据实际情况执行
#/opt/IBM/db2/V8.1/adm/db2licm -a /opt/334_ESE_LNX26_32_NLV/db2/license/db2ese.lic
若提示:
DBI1402I License added successfully.
DBI1426I This product is now licensed for use as specified in
the License Acceptance and License Information
documents pertaining to the licensed copy of this
product. USE OF THE PRODUCT CONSTITUTES ACCEPTANCE OF
THE TERMS OF THE IBM LICENSE ACCEPTANCE AND LICENSE
INFORMATION DOCUMENTS, LOCATED IN THE FOLLOWING
DIRECTORY: /opt/IBM/db2/V8.1/license/zh_CN.utf8
表明注册成功

第六步 创建DB2运行所需要的用户组和用户
注意DB2并没有独立的用户管理系统,必须借用OS用户来提供安全性认证,所以这里需要创建 LINUX用户和组。
# groupadd -g 901 db2grp
# groupadd -g 902 db2fgrp
# groupadd -g 903 db2agrp# useradd -g db2grp -u 801 -d /home/db2inst1 -m -s /bin/sh db2inst1
# useradd -g db2fgrp -u 802 -d /home/db2fenc -m -s /bin/sh db2fenc
# useradd -g db2agrp -u 803 -d /home/db2das -m -s /bin/sh db2das
这里的默认用户名是:
DAS用户 dasusr1 组名: dasadm1
管理实例的用户 db2inst1 组名:db2iadm1
受防护用户 db2fenc1 组名: db2fadm1
但是DB2用户可以任意起名。

第七步添加密码
# passwd db2inst1
Changing password for db2inst1.
New password:[输入新密码]
Re-enter new password:[再次输入新密码]
Password changed
创建完成后,执行如下命令,检查用户组和用户是否创建成功。
# more /etc/group |grep db2
# more /etc/passwd |grep db2
如果结果中包含那三个用户和组,则创建成功。正确的结果应该是:
# more /etc/group |grep db2
dialout:x:16:db2inst1,db2fenc,db2das
video:x:33:db2inst1,db2fenc,db2das
db2grp:!:901:
db2fgrp:!:902:
db2agrp:!:903:
# more /etc/passwd |grep db2
db2inst1:x:801:901::/home/db2inst1:/bin/sh
db2fenc:x:802:902::/home/db2fenc:/bin/sh
db2das:x:803:903::/home/db2das:/bin/sh
注:如果所创建的用户密码忘记,可以用root用户登录后,用passwd XXX(用户名) 来重置密码。

第八步创建实例。
b1. 进入/opt/ibm/db2/V9.7/instance目录
# cd /opt/ibm/db2/V9.7/instance
2. 执行以下命令
# ./dascrt -u db2das
# ./db2icrt -u db2inst1 db2inst1

注:这里可能运行失败,此时可以用root执行上面语句。
这里dascrt创建的是DB2 adminstration server,每台服务器只有一个这种server,为进行DB2管理(比如运行控制中心)所必须,同时指定其管理用户是db2das。
db2icrt 创建的是实例,其名字一般和管理用户名一样,这里均为db2inst1。
3 启动DB2

注:此时可能会出现   -bash: db2: command not found 问题,原因在于db2的命令没有在linux中注册,也即需要配置db2的环境变量。

  db2中配置环境变量的方法如下:

   
【修改Linux的PATH方法有三(添加用户的路径到PATH): 

方法一: 直接在命令行中输入:#PATH=$PATH:/etc/apache/bin。这种方法只对当前会话有效,也就是说每当登出或注销系统后,PATH设置就会恢复原有设置。 

方法二: 修改/etc/profile文件。在/etc/profile文件的适当位置添加PATH=$PATH:/etc/apache/bin (注意:=即等号两边不能有任何空格)。这种方法最好,除非你手动强制修改PATH的值。否则将不会被改变。 

方法三: 修改用户目录下的.bash_profile:vi ~/.bash_profile,把用户想添加的路径添加到PATH后面。这种方法只针对用户起作用。 

注意:若采用修改profile文件的方法改变PATH,则必须重新登录才能生效,以下方法可简化工作: 如果修改了/etc/profile,那么编辑结束后执行source profile 或执行点命令:./profile,PATH的值就会立即生效了。这个方法的原理是再执行一次/etc/profile shell脚本,注意如果用sh /etc/profile是不行的,因为sh是在子shell进程中执行的,即使PATH改变了也不会反映到当前环境中,但是source是在当前shell进程中执行的,所以我们能看到PATH的改变

在公积金中,我是在root用户下,执行vi  /etc/profile ,然后在最后加入一行

export JAVA_HOME=/usr/
cc6e
java/jdk1.6.0_45
export JRE_HOME=/usr/java/jdk1.6.0_45/jre
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH:$HOME/bin

PATH=$PATH:/home/db2inst1/sqllib/bin:/home/db2inst1/sqllib/adm:/home/db2das/das/bin



切换到db2das用户,执行db2admin启动DB2管理服务器。
$ db2admin start
切换到db2inst1用户,执行db2start启动数据库实例。
$ db2start

第九步 配置DB2
1 设置DB2自启动。
使用root用户执行以下命令:
# cd /opt/ibm/db2/V9.7/instance
# ./db2iauto -on db2inst1
设置对db2inst1在 LINUX启动时自动启动。

2 配置网络
切换到db2inst1用户。
# su - db2inst1
修改DB2的服务端口为50000,这里默认端口就是50000。
$ db2 update dbm cfg using SVCENAME 50000
DB20000I The UPDATE DATABASE MANAGER CONFIGURATION command completed
successfully.
修改DB2连接方式为TCPIP,然后可通过JDBC、ODBC等访问本DB2服务器上的数据库,安装了DB2客户端的其它机器也可访问数据库。
$ db2set DB2COMM=TCPIP
至此,安装过程结束。
  注:

    当时跳过此步,导致了 [jcc][t4][2043][11550][3.57.82]
异常 java.net.ConnectException:打开端口 5,000 上服务器 /192.168.101.56 的套接字时出错,消息为:Connection refused: connect。 ERRORCODE=-4499, SQLSTATE=08001

第十步 创建和访问数据库,安装验证
1 启动与关闭数据库实例
做任何事情之前,首先要启动数据库实例
切换到 db2inst1用户,执行db2start启动数据库实例。
$ db2start
SQL1063N DB2START processing was successful.
若需要,可运行下面的命令来关闭数据库实例
首先在db2inst1用户下强制关闭实例上的所有应用程序。
$ db2 force applications all
关闭数据库实例。
$ db2stop
SQL1064N DB2STOP processing was successful.
2 创建数据库
$ su - db2ins1
$ db2 create database test1
DB20000I The CREATE DATABASE command completed successfully.
数据库创建成功了。

--------------------------------------------------------------------------------------------------

3 远程访问数据库

笔者是在VMWARE虚拟机上安装 RHEL5.4和DB2的,在主机上也安装了DB2 ESE for windows V9.7,经实验这样配置后主机可以访问到虚拟机上的DB2数据库。方法是在主机上运行db2cmd,然后运行:

C:\Documents and Settings\Administrator>db2 catalog tcpip node bogon remote 192.

168.211.132 server 50000

DB20000I CATALOG TCPIP NODE 命令成功完成。

DB21056W 直到刷新目录高速缓存之后,目录更改才生效。

C:\Documents and Settings\Administrator>db2 catalog database test1 as test_1 at

node bogon

DB20000I CATALOG DATABASE 命令成功完成。

DB21056W 直到刷新目录高速缓存之后,目录更改才生效。

C:\Documents and Settings\Administrator>db2

? Copyright IBM Corporation 1993,2007

DB2 客户机 9.7.0 的命令行处理器

可从命令提示符处发出数据库管理器命令和 SQL 语句。例如:

db2 => connect to sample

db2 => bind sample.bnd

要获得一般帮助,输入:?。

要获得命令帮助,输入:? command,其中 command 可以是

数据库管理器命令的前几个关键字。例如:

? CATALOG DATABASE 用于关于 CATALOG DATABASE 命令的帮助

? CATALOG         用于关于所有 CATALOG 命令的帮助。

要退出 db2 交互方式,在命令提示符处输入

QUIT。在非交互方式下,所有命令都必须以“db2”作前缀。

要列出当前命令选项设置,输入 LIST COMMAND OPTIONS。

要获取更详细的帮助,请参阅 Online Reference Manual。

db2 => !db2set

DB2INSTOWNER=WWW-A448048D8D7

DB2PORTRANGE=60000:60003

DB2INSTPROF=C:\DOCUMENTS AND SETTINGS\ALL USERS\APPLICATION DATA\IBM\DB2\DB2COPY

1

DB2COMM=TCPIP

db2 => connect to test_1 user db2inst1

输入 db2inst1 的当前密码:

数据库连接信息

数据库服务器        = DB2/LINUX 9.7.1

SQL 授权标识        = DB2INST1

本地数据库别名      = TEST_1

db2 =>

#####################################################

DB2 for linux卸载

由于某种原因,要卸载DB2再重新安装,一定要完全卸载DB2,否则不能重新安装或安装后的DB2不可用。

因为卸载步骤比较复杂,我建议在虚拟机上安装该软件的朋友,应该先做一个快照,然后方可进行,出错就恢复快照,重新来过。在主机上卸载则最好先做一个备份,以防万一。

为了操作方便,可以同时打开几个Shell,分别属于不同用户,配合完成下面的操作。

1、在linux上卸载DB2的一般过程:

a.删除所有数据库。可以使用“控制中心”或drop database命令删除数据库。笔者卸载而未删除数据库,结果是重新安装后无法建立同名数据库。

b.停止DB2管理服务器。

c.停止 DB2实例。

d.除去DB2管理服务器。

e.除去DB2实例。

f.除去DB2产品。

2、停止DB2管理服务器:

必须要停止DB2管理服务器才能在linux上卸载DB2。

a.作为DB2管理服务器所有者登陆。

b. 用db2admin stop命令停止DB2管理服务器。

3、停止DB2实例:

必须要停止DB2实例才能在linux上卸载DB2。

a.作为具有root用户权限的用户登陆。

b. 输入/opt/ibm/db2/V9.7/bin/db2ilist命令,获取系统上的所有DB2实例的名称。

c.注销。

d.作为想要停止的实例的所有者登陆。

e.进入该用户的主目录下,运行脚本:. sqllib/db2profile

d.输入db2 force application all命令来停止所有数据库应用程序。

e.输入db2stop命令来停止DB2数据库管理器。

f.输入db2 terminate来确认DB2数据库管理器已停止。

g.对每一个要删除的实例重复以上步骤。

4、删除DB2管理服务器:

必须删除DB2管理服务器才能卸载DB2。

a.作为DB2管理服务器所有者登陆。

b.进入该用户的主目录下,运行脚本:. das/dasprofile.

c.注销。

d.作为root登陆,通过输入命令/opt/ibm/db2 /V9.7/instance/dasdrop除去DB2管理服务器。

5、删除DB2实例:

一旦删除系统上的实例,该实例下的所有DB2数据库都将不可用。

a.通过输入/opt/ibm/db2 /V9.7/instance/db2idrop db2instname删除实例。

6、卸载DB2产品

以root身份登陆,到DB2版本产品CD-ROM上的根目录或DB2安装文件(通常就是tar解包文件)下找到 db2_deinstall命令,

运行db2_deinstall -a命令可以删除所有DB2产品。

可能需要输入DB2安装路径,这里是/opt/ibm/db2/V9.7

然后也可以在LINUX中删除DB2用户,这并非必须,重新安装仍可使用它们。

下面是英文的简要说明:

Following are the steps to remove DB2 from Unix/Linux:

1.Remove DB[首先删除数据库]

(1)su - db2inst1

(2)db2 list db directory

(3)db2 drop db <db name>

2.Remove Instance【删除实例】

(1)su - root

(2)cd <db2 dir>/instance

(3)./db2ilist

(4)./db2idrop -f <instance name>

3.Remove das【删除das】

(1)su - root

(2)cd <db2 dir>/instance

(3)./daslist

(4)./dasdrop <das user>

4.Uninstall【卸载】

(1)su - root

(2)cd <db2 dir>/install

(3)./db2_deinstall -a

5.Remove user ( db2inst1,db2fenc1,dasusr1)【删除用户】

userdel -r <username>

please lookinto the file /etc/passwd before and after you deleted users
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息