学习从安装开始,哈哈。这里记下
Windows 和 UNIX/Linux安装DB2的各种方式,不同,及具体的一些细节。
Windows下向导化安装:
setup.exe -i cn -u 响应文件名
-i cn 表示向导显示为中文, -i en 则显示为英文
产生的安装日志文件db2.log放在db2安装路径下的DB2LOG目录下.
常见问题:
Windows会生成db2admin用户,XP安装后会很烦的把登录用户给改成了这个,
原来的administrator用户登录时不见了.
解决方法如下:
控制面板 -> 用户帐户 -> 选择登录和注销选项 -> 取消使用欢迎屏幕的勾选
UNIX/Linux的安装:
前期安装环境检查:
一. 前期工作:
1.检查环境
/tmp空间大小,至少2G
内存大小,最少1GB. (1G仅能支持5个客户端并发连接,以后每多一个,到少要增加16mb的内存支持)
/etc/sysctl.conf 参数设置
--首先要--修改系统内核参数,这和Oracle安装时参数差不多
-- /etc/sysctl.conf (主要是改,内存,信号量,消息)
kernel.sem = 250 256000 32 1024 # 每个信号对象集的最大信号对象数;系统范围内最大信号对象数;每个信号对象支持的最大操作数;系统范围内最大信号对象集数。
kernel.shmall = 3774873 # 可以使用的共享内存的总量。 16gb内存的90%为例(14.4gb/4kb得到)
kernel.shmmax = 1073741824 # 最大共享内存段大小。 64位系统为例 ,至少1gb,建议与物理内存相等
kernel.msgmni=1024 #可以启动的代理进程数
kernel.msgmax=65535 #影响一个队列中可以发送的消息大小
kernel.msgmnb=65535 #队列大小
修改完成后,使其生效: sysctl -p
2. 向导显示中文还是英文
ksh sh bash
LANG=<locale>
Export LANG
CSH
Setenv LANG <locale>
//如当前env为英文,想DB2安装向导显示中文
LANG=zh_CN
Export LANG
3. 执行检查脚本db2prereqcheck
二. DB2安装
Unix/Linux支持三种安装方式:
a.向导化安装:
db2setup
b.响应文件方式安装:
db2setup -r 响应文件名 -t 过程文件名
-r 响应文件名 : 保存了安装过程中所有的指定选项.
-t 过程文件名 : 安装过程的相关信息会保存在这个文件中.
上面两种,可提前创建好用户和组,也可在向导中创建.
都好简单的.后面说的内容都可以在向导中完成.
c.还有一种db2_install 脚本方式:
./db2_install -b /u01/db2v9 -p ESE
./db2_install -b /opt/ibm/db2/v9.5 -p ESE
/*
默认不输参数也会提示
CLIENT : 客户端
RTCL : 运行期客户端
ESE : ESE服务器
*/
后面的创建用户什么的都用这个来做说明,原因是它不基于图形界面,是一种很常见的安装方式.
产生的安装日志文件db2setup.log放在/tmp目录下.
三. 创建用户和组
任务说明:
db2inst1 db2iadm1 DB2实例用户,用户组
db2fenc1 db2fadm1 受防护的用户,用户组. 运行自定义函数和过程
dasusr1 dasadm1 创建DB2管理服务器用户,用户组.
Linux:
groupadd db2iadm1
groupadd db2fadm1
groupadd dasadm1
useradd -g db2iadm1 -m -d /home/db2inst1 db2inst1
useradd -g db2fadm1 -m -d /home/db2fenc1 db2fenc1
useradd -g dasadm1 -m -d /home/db2usr1 dasusr1
passwd db2inst1
passwd db2fenc1
passwd dasusr1
AIX :
groupadd -g 999 db2iadm1
groupadd -g 998 db2fadm1
groupadd -g 997 dasadm1
--pgrp = primary group 主用户组(只有指定一个)
--groups = 用户所属组,可以有多个
mkuser id=1004 pgrp=db2iadm1 groups=db2iadm1 home=/home/db2inst1 db2inst1
mkuser id=1003 pgrp=db2fadm1 groups=db2fadm1 home=/home/db2fenc1 db2fenc1
mkuser id=1002 pgrp=dasadm1 groups=dasadm1 home=/home/dasusr1 dasusr1
(不想用mkuser命令行,用smitty mkuser 也不错噢)
passwd db2inst1
passwd db2fenc1
passwd dasusr1
四.使用root用户,执行dascrt命令,创建DB2管理服务器
--cd /opt/ibm/db2/V9.7/instance/
dascrt -u dasusr1
五. 使用root用户,执行db2icrt命令创建实例(也在instance目录下)
db2icrt -a server -u db2fenc1 db2inst1
-a : 服务端认证模式
-u : 指定的受防护用户
//当用户目录下已有"sqllib"目录,实例会创建失败.
六. 为创建的实例配置TCP/IP通信
--只有配置了通信协议,才能接受DB2客户端的请求
--1.root用户,在AIX的TCP/IP服务文件(/etc/services)中指定监听端口
--内容:
db2c_db2inst1 50000/tcp # DB2 connection service port
--2.db2inst1用户,为数据库配置参数 SVCENAME.
db2 update dbm cfg using SVCENAME db2c_db2inst1
--3.db2inst1用户,设置通信代理.
db2set DB2COMM=TCPIP
装完后进去测试下
su db2inst1;
cd /home/db2inst1/sqllib/adm
db2start
db2 create db testdb
db2 connect to testdb
db2 "create table emp(emp_id int,emp_name varchar(8))"
db2 "insert into emp(emp_id,emp_name) values (1,'xcl')"
db2 "select * from emp"
db2 terminate
db2stop
后续,创建例子数据库:
附上DB2常见目录:
root用户:
AIX®、HP-UX 和 Solaris Operating Environment
/opt/IBM/db2/V9.1
Linux
/opt/ibm/db2/V9.1
db2inst1 用户:
$ pwd
/home/db2inst1/sqllib/adm
$ id
uid=110(db2inst1) gid=104(db2grp1) groups=1(staff),101(dasadm1)
$
文件注册表 信息
$ ./db2set
DB2COMM=tcpip
$ ./db2set -all
[i] DB2COMM=tcpip
[g] DB2SYSTEM=AIX_RAC1
[g] DB2INSTDEF=db2inst1
[g] DB2ADMINSERVER=dasusr1
Blog: http://blog.csdn.net/xcl168