Linux下安装、配置、卸载IBM DB2及常用命令
一、 安装DB2
Ø 创建用户组和用户
1. 以root用户登录需要安装DB2的服务器
2. 创建用户组和用户
# groupdel db2grp
# groupdel db2fgrp
# groupdel dasadm
# groupadd db2grp
# groupadd db2fgrp
# groupadd dasadm
# useradd -m -g db2grp -d/home/db2inst -s /bin/bash db2inst
# useradd -m -g db2fgrp -d/home/db2fenc -s /bin/bash db2fenc
# useradd -m -g dasadm -d/home/dasusr -s /bin/bash dasusr
3. 设置用户密码
# passwd db2inst
New password:db2inst
Re-enter newpassword:db2inst
Password changed
# passwd db2fenc
……
# passwd dasusr
……
Ø 解压安装包
# tar –xvfv9.7_linuxx64_server.tar.gz
在同级目录下生成server目录
Ø 执行DB2安装脚本
1. 进入server目录
# cd /server
2. 运行DB2安装脚本
# ./db2_install
linux-1104-55:/home/administrator/bin/ese# ./db2_install
Default directory forinstallation of products - /opt/ibm/db2/V9.7
***********************************************************
Do you want to choose adifferent directory to install [yes/no] ?
no
Specify one of the followingkeywords to install DB2 products.
ESE
CLIENT
RTCL
ESE
3. 安装License
# cp db2ese_c.lic/opt/ibm/db2/V9.7/
# cd /opt/ibm/db2/V9.7/adm
# ./db2licm –a/opt/ibm/db2/V9.7
Ø 创建DAS和数据库实例
# cd/opt/ibm/db2/V9.7/instance
1. 创建DAS
# ./dascrt – u dasusr
-udasusr表示指定DAS用户名。
2. 创建数据库实例
# ./db2icrt –p 50001 –udb2fenc db2inst
-p50001 参数指定DB2实例对外服务端口,必须使用端口50001
-udb2fenc 表示指定此实例使用的fence用户名
Db2inst表示指定此实例名和所有者名。
3. 设置数据库实例自动启动
# su – db2inst
Db2inst@linux:~> db2iauto–on db2inst
二、 配置DB2
Ø 添加新实例
1. 添加一个新用户 dhrep
# useradd -m -g root -d/home/dhrep -s /bin/bash dhrep
# passwd dhrep
# usermod -G db2grp,dasusrdhrep
2. 切换到 root 用户为dhrep建立实例,并设置自启动
# su - root
# cd /opt/ibm/db2/V9.7/instance
# ./db2icrt -a SERVER -udhrep drehp *(实例名长度不能超过八位)
# ./db2iauto –on dhrep
这样就为dhrep用户创建了一个名为dhrep实例,而这个实例的管理员也就是dhrep.
切换到dhrep用户下就可以启动和管理dhrep实例了
# su - dhrep
# db2start
Ø 配置DB2服务器参数
1. DB2实例端口配置
查找DB2配置文件中的端口配置
# db2 get dbm cfg | grepSVCENAME
如出现如下说明端口没有配置
TCP/IP Service name (SVCENAME) =
SSL service name (SSL_SVCENAME) =
使用以下命令把dhrep实例的端口添加进去
# db2 update dbm cfg usingSVCENAME 50000
2. DB2实例协议配置
# db2set DB2COMM=TCPIP
3. 验证是否配置成功
重启实例
# db2stop
# db2start
获取端口配置信息
# db2 get dbm cfg | grepSVCENAME
结果:
TCP/IP Service name (SVCENAME) = 50000
SSL service name (SSL_SVCENAME) =
# db2set –all
结果:
[i] DB2COMM=tcpip
查看50000端口状态
# netstat -an | grep 50000
结果:
tcp 0 00.0.0.0:50000 0.0.0.0:* LISTEN
出现以上三条结果,说明服务器配置已经成功,60032端口正在被监听.
三、 附录
Ø DB2常用命令
1. 启动实例(db2inst1): db2start
2. 停止实例(db2inst1): db2stop
3. 列出所有实例(db2inst1) db2ilist
5. 列出当前实例: db2 getinstance
4. 察看示例配置文件: db2 get dbmcfg|more
5. 更新数据库管理器参数信息: db2 update dbmcfg using <para_name> <para_value>
6. 创建数据库: db2 createdb test
7. 察看数据库配置参数信息: db2 get db cfg for <database_name>|more
8. 更新数据库参数配置信息:
db2 update db cfg for<database_name> using <para_name> <para_value>
10.删除数据库: db2 drop dbtest
11.连接数据库: db2 connectto test
12.列出所有表空间的详细信息: db2 list tablespaces showdetail
13.查询数据: db2select * from tb1
14.删除数据: db2 deletefrom tb1 where id=1
15.创建索引: db2 create index idx1 on tb1(id)
16.创建视图: db2 create view view1as select id from tb1
17.查询视图: db2 select* from view1
18.节点编目:
db2 catalog tcpip node [node_name]remote [server_ip] server [server_port]
19.察看端口号: db2 get dbmcfg|grep SVCENAME
20.测试节点的附接: db2 attach to node_name
21.导出数据文件: db2move<db name>export
22.导入数据文件: db2move <db name>import/load[大数据量时]
23.导出表结构: db2look-d 库名 -e -z 用户名 -l -o exoa.sql
24.导入表结构: db2-tvf 文件名.sql
25.导出表中数据:
export to [path(例:D:\TABLE1.ixf)] of ixfselect [字段(例: * orcol1,col2,col3)] from TABLE1
export to [path(例:D:\TABLE1.del)] of delselect [字段(例: * orcol1,col2,col3)] from TABLE1;
26.导入表中数据:
import from [path(例:D:\TABLE1.ixf)] of ixfinsert into TABLE1;
load from [path(例:D:\TABLE1.ixf)] of ixfinsert into TABLE1;
load from [path(例:D:\TABLE1.ixf)] of ixfreplace into TABLE1; // 装入数据前,先删除已存在记录
loadfrom [path(例:D:\TABLE1.ixf)]of ixf restart into TABLE1; // 当装入失败时,重新执行
Ø DB2卸载
1.Remove DB[首先删除数据库]
#su - db2inst1
#db2 list db directory
#db2 drop db <db name>
2.Remove Instance【删除实例】
#su - root
#cd <db2 dir>/instance
#./db2ilist
#./db2idrop -f <instance name>
3.Remove das【删除das】
#su - root
#cd <db2 dir>/instance
#./daslist
#./dasdrop <das user>
4.Uninstall【卸载】
#su - root
#cd <db2 dir>/install
#./db2_deinstall -a
5.Remove user (db2inst1,db2fenc1,dasusr1)【删除用户】
#userdel -r <username>