[DB2(Linux)安装及编译环境搭建]
安装db2 v8.1
1、从ftp://192.168.0.1/software/DB/DB2_V81_ESE_LNX_32_NLV.tar下载linux db2安装包
2、解压安装包 tar xvf DB2_V81_ESE_LNX_32_NLV.tar
3、开始安装./db2_install
稍后会出现:
DB2.ADMCL DB2 Administration Client for LINUX26
DB2.ESE DB2 Enterprise Server Edition for LINUX26
DB2.ADCL DB2 Application Development Client for LINUX26
输入大写DB2.ESE回车,开始安装,执行完后会在在/opt目录自动创建IBM/db2/V8.1目录
4、创建DB2用户及组:
useradd db2adm1
useradd db2inst1
密码一般设为与用户名一致
5、创建db2管理服务器实例:
root用户进入 /home/db2adm1
执行 /opt/IBM/db2/V8.1/instance/dascrt -u db2adm1
如果报管理实例无法启动:
执行rm /home/db2adm1/das,重建DB2ADMIN,然后再执行上步
6、创建db2数据库实例:
root用户进入 cd /home/db2inst1
执行 /opt/IBM/db2/V8.1/instance/db2icrt -u db2inst1 db2inst1
执行成功时显示:
DBI1070I Program db2icrt completed successfully.
如果返回tail 22:
tail: cannot open `+2' for reading: No such file or directory
vi /opt/IBM/db2/V8.1/instance/db2iutil 将 tail +2 改为 tail -n +2(共三处)
如果返回:
DBI1281E The database manager configuration file could not be initialized.
Explanation:An error occurred when attempting to initialize the database manager configuration file. A DB2 instance could not be created or migrated.
检查linux信息:
# uname -a
# hostname
dbserver
# vi /etc/hosts
127.0.0.1 localhost
127.0.0.1 dbserver
7、检查db2服务端口,没有则添加(一般安装程序已经自动添加):
# vi /etc/services
DB2_db2inst1 60000/tcp
DB2_db2inst1_1 60001/tcp
DB2_db2inst1_2 60002/tcp
DB2_db2inst1_END 60003/tcp
7、设置db2实例运行环境变量(可在补丁安装后执行)
1 进入db2inst1用户: su - db2inst1
2 启动数据库: db2start
3 设置允许db2通过tcpip方式访问: db2set DB2COMM=tcpip
4 设置db2实例中的服务端口: db2 update dbm cfg using svcename DB2_db2inst1
设置成功查看: db2 get dbm cfg |grep svcename
5 设置页代码: db2set DB2CODEPAGE=1386
建立数据库时和访问数据库时的DB2CODEPAGE参数必须保持一致,并且该参数只有重新启 动数据库管理进程才能生效。
6 设置中文代码: db2set DB2COUNTRY=86
7 其它变量设置(可选)
db2set DB2_STRIPED_CONTAINERS=on
变量说明:当创建DMS表空间容器(设备或文件)时,会在该容器开始处存储一个单页标 记,其余页可由DB2存储数据,并分组成按快大小确定的块。为了能使块按照RDID条排列 ,且使I/O最优,因此必须将DB2注册表变量DB2_STRIPED_CONTAINERS设置为"ON"
db2set DB2_PARALLEL_IO=*
变量说明:当对表空间容器读写数据时,若数据库中的容器大于1,DB2可以使用并行 I/O,可以发出并行读写调用。因此修改注册表变量DB2_PARALLEL_IO为“*”,表示每个 表空间,也可以设置为由逗号分开的表空间ID的列表,例如:
db2set DB2_PARALLEL_IO=1,2,4,8(对表空间1,2,4和8打开并行I/O)
db2set DB2INCLUDE=头文件目录
设置sql头文件目录,该参数仅用于开发环境
8 查看当前环境变量,检查环境变量的设置情况
? db2set –all
安装db2 V8.1补丁
1、解压db2补丁包 tar -xvf db2_FP15_MI00189.tar
2、执行./installFixPak -y
3、进入/opt/IBM/db2/V8.1/instance目录执行./db2iupdt -e
安装db2 V8.1许可文件
1、将db2ese.lic拷到任意目录,如/tmp
2、用root赋予操作权限 chmod 777 db2ese.lic
3、用db2inst1用户执行 db2licm -a /tmp/db2ese.lic
4、可用db2licm -l 命令查看db2许可情况
5、第3步执行后报错,进入/var/lum目录 执行vi nodelock,将文件中的#号全部去掉
为其它用户赋db2操做权限
1、在用户的环境变量文件(~.bash_peofile)中加上
if [ -f /home/db2inst1/sqllib/db2profile ]; then
. /home/db2inst1/sqllib/db2profile
fi
2、编辑/etc/group根据需要把用户名加到db2的组中,如:
dasadm1:x:102:db2inst1,root
db2inst1:x:103:root
查看db2实例组:db2 get dbm cfg|grep SYSADM_GROUP
3、设置其它变量:
db2set
db2set DB2INCLUDE=头文件目录1:头文件目录2
DB2COUNTRY=86
DB2COMM=tcpip
DB2CODEPAGE=1386
DB2AUTOSTART=TRUE
(完)
root运行db2start报:
SQL1092N "ROOT " does not have the authority to perform the requested command.
这是因为root的权限不够,要把root加到SYSADM_GROUP,那怎么知道SYSADM_GROUP具体是什么呢?
使用db2用户执行下列命令:
$:db2 get dbm cfg|grep SYSADM_GROUP
SYSADM group name (SYSADM_GROUP) = DB2GRP1
编辑/etc/group把root加到DB2GRP1组中就可以
其它配置:
# cd /opt/IBM/db2/V8.1/instance
# ./db2iauto -on db2inst1 设置自启动
db2cc无法启动
从IBM网站下载IBMJava-1.4.2安装到/opt/目录,换名为IBMJava-1.4.1(欺骗系统)。
创建共享库链接
# cd /home/db2inst1
# /opt/IBM/db2/V8.1/cfg/db2ln