首先下载db2 express c 10.1
这里下载:https://www.ibm.com/developerworks/cn/downloads/im/udbexp/
linux64位大小为522M, 文件名为db2_v1012_linuxx64_expc.tar.gz
拷贝到~/Downloads/java_soft
进入到该目录,解压缩:
tar -xzf db2_v1012_linuxx64_expc.tar.gz(此步会将文件解压到当前目录下的expc目录下)
cd expc
sudo ./db2_install -b /opt/ibm/db2/v10.1
我的是固态硬盘,大约不到2分钟就装好了。输入db2ls会列出系统中已安装的所有db2版本
cyper@cyper-pc:~$ db2ls
Install Path Level Fix Pack Special Install Number Install Date Installer UID
---------------------------------------------------------------------------------------------------------------------
/opt/ibm/db2/v10.1 10.1.0.2 2 Sat Jan 5 20:52:54 2013 CST 0
cyper@cyper-pc:~$ db2ls -q -b /opt/ibm/db2/v10.1/
Install Path : /opt/ibm/db2/v10.1
Feature Response File ID Level Fix Pack Feature Description
---------------------------------------------------------------------------------------------------------------------
BASE_CLIENT 10.1.0.2 2 Base client support
JAVA_SUPPORT 10.1.0.2 2 Java support
SQL_PROCEDURES 10.1.0.2 2 SQL procedures
BASE_DB2_ENGINE 10.1.0.2 2 Base server support
DB2_DATA_SOURCE_SUPPORT 10.1.0.2 2 DB2 data source support
SPATIAL_EXTENDER_SERVER_SUPPORT 10.1.0.2 2 Spatial Extender server support
LDAP_EXPLOITATION 10.1.0.2 2 DB2 LDAP support
INSTANCE_SETUP_SUPPORT 10.1.0.2 2 DB2 Instance Setup wizard
ACS 10.1.0.2 2 Integrated Flash Copy Support
SPATIAL_EXTENDER_CLIENT_SUPPORT 10.1.0.2 2 Spatial Extender client
COMMUNICATION_SUPPORT_TCPIP 10.1.0.2 2 Communication support - TCP/IP
APPLICATION_DEVELOPMENT_TOOLS 10.1.0.2 2 Base application development tools
DB2_UPDATE_SERVICE 10.1.0.2 2 DB2 Update Service
DB2_SAMPLE_DATABASE 10.1.0.2 2 Sample database source
TEXT_SEARCH 10.1.0.2 2 DB2 Text Search
FIRST_STEPS 10.1.0.2 2 First Steps
cyper@cyper-pc:~$
创建实例
su
groupadd -g 1100 db2iadm1
groupadd -g 1101 db2fadm1
useradd -g db2iadm1 -u 1100 -m -d /home/db2inst1 db2inst1
useradd -g db2fadm1 -u 1101 -m -d /home/db2fenc1 db2fenc1
cd /opt/ibm/db2/v10.1/instance/
./db2icrt -p 50000 -u db2fenc1 db2inst1
实例一旦创建成功,会在实例用户目录下生成sqllib目录,进入后出现图所示的目录结构
图中所示目录下包含了很多文件,这些文件基本都是二进制格式,不允许用户手工修改,但大部分可能通过DB2提供的命令来进行浏览和修改。
以下是一些常见的配置文件:
db2systm:实例配置文件,使用get dbm cfg/update dbm cfg控制
profile.env:实例DB2环境变量,使用db2set控制
sqldbdir/sqldbdir:实例数据库编目,使用list db directory/catalog database控制
sqlnodri/sqlnodir:实例节点编目,使用list node directory/catalog tcpip node控制。
/var/db2/global.env:全局安装、实例、环境变量列表,使用db2ilist浏览,使用db2greg控制
给db2inst1用户设置密码
passwd db2inst1
切换到该实例用户
su - db2inst1
启动该实例
db2start
停止该实例
db2stop
查看某个DB2版本下有哪些实例,可通过db2list命令实现
$ db2ilist
db2inst1
要查看某台机器上有哪些实例,可通过db2greg命令实现,在以下的输出中,观察第一列为I的行,第3列为版本,第4列为实例名,第5列为实例目录
$ db2greg -dump
S,DB2,10.1.0.2,/opt/ibm/db2/v10.1,,,2,0,,1357390374,0
V,DB2GPRF,DB2SYSTEM,cyper-pc,/opt/ibm/db2/v10.1,
V,DB2GPRF,DB2_COMPATIBILITY_VECTOR,MYS,/opt/ibm/db2/v10.1,
I,DB2,10.1.0.2,db2inst1,/home/db2inst1/sqllib,,1,0,/opt/ibm/db2/v10.1,,
V,DB2GPRF,DB2INSTDEF,db2inst1,/opt/ibm/db2/v10.1,
$
遇到的问题:
1.执行db2start报错
db2start: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
这里有db2支持的linux版本
这里是在ubuntu上安装时的先决条件
我这里是执行了如下命令
sudo apt-get install libaio1
再次运行db2start,就成功了!
2.之前创建实例的步骤详解,来自这里
1) 创建一个用户,比如用户名是 db2inst1 用户的home路径是 /home/db2inst1
2) 再创建一个用户,比如用户名是db2fence 用户的home路径是 /home/db2fence
3) 用 root 用户,cd /db2_install_path/instances/ 执行 ./db2icrt -u db2fence db2inst1
4)如果db2icrt 没有报错,su - db2inst1 然后 db2start
追问
麻烦你再仔细讲解一下db2fence,db2inst1这两个用户行吗?为什么需要两个用户呢?
db2fence 用来运行 “受防护用户定义的函数 (UDF) 和 受防护存储过程的进程”。看看create function / procedure的语法,有个fenced的选项。udf和udp是可以用到外部程序的,万一用到的程序出了问题,db2很可能跟着也挂了。现在有了 db2fence db2fmp,它挂了就挂了。db2没事……
-u FencedID:指定您创建的受防护用户的名称。
表示将用来运行受防护用户定义的函数 (UDF) 和受防护存储过程的用户的名称。如果您正在 DB2 客户机上创建实例,那么此标志不是必需的。
InstName
表示实例的名称。实例的名称必须与拥有实例的用户的名称相同。指定您创建的拥有实例的用户的名称。将在拥有实例的用户的主目录中创建该实例。