AIX 下 db2 存储过程编译环境部署说明
(版本号:1.3)
1. db2 服务器下的部署步骤
1.1 gcc 编译环境部署(仅限于DB2V8.1版本)
1.1.1 登陆DB2服务器查看AIX系统版本:
bootinfo -K
如果是32位系统,则显示32,如果是位系统则显示.
1.1.2 查看DB2服务器AIX版本号:
oslevel -r
显示本文为 AIX5.2.
1.1.3 查看DB2服务器DB2版本:
su - db2admin
db2level
显示db2 版本为 32位,V8.1,符合本文的要求,如果高于8.1 则无需执行本文GCC编译环境的所有操作。
1.1.4 查看DB2服务器是否安装gcc编译器:
rpm -qa
没有显示gcc的相关内容,可以全新安装gcc。
1.1.5 上传gcc 安装文件到DB2服务器:
mkdir -P /tmp/gcc
将gcc-4.0.0-1.aix5.2.ppc.rpm,和libgcc-4.0.0-1.aix5.2.ppc.rpm 两个文件上传到
db2 服务器/tmp/icss/gcc 下。如果是AIX5.3 系统则上传gcc-4.0.0-1.aix5.3.ppc.rpm,和libgcc-4.0.0-1.aix5.3.ppc.rpm 两个文件.
1.1.6 在DB2服务器上安装gcc 程序:
cd /tmp/gcc
rpm -ivh gcc-4.0.0-1.aix5.X.ppc.rpm
rpm -ivh libgcc-4.0.0-1.aix5.X.ppc.rpm
1.1.7 检查gcc安装是否成功
rpm -qa
gcc --version
1.1.8 上传 include文件夹下文件到DB2服务器:
ls -l /home/db2admin/sqllib/include/
如果只有一个asn.h文件则将include 文件夹中的文件上传到db2 服务器的/home/db2admin/sqllib/include下,并改变文件的属组:
chown db2admin:db2grp1 /home/db2admin/sqllib/include/*
1.1.9 修改DB2服务器db2 环境变量
参考db2level ,获得db2实例类型。
对于32位实例,需要使用db2set命令设置
DB2_SQLROUTINE_COMPILE_COMMAND 注册表变量如下:
su - db2admin
注意:引号内为一行内容,不要拆分。
db2set DB2_SQLROUTINE_COMPILE_COMMAND=\"gcc -g -I/home/db2admin/sqllib/include SQLROUTINE_FILENAME.c -o SQLROUTINE_FILENAME -L/home/db2admin/sqllib/lib -ldb2 -shared\"
对于位实例,需要使用db2set命令设置
DB2_SQLROUTINE_COMPILE_COMMAND 注册表变量如下:
su - db2admin
db2set DB2_SQLROUTINE_COMPILE_COMMAND=\"gcc -g -maix -I/home/db2admin/sqllib/include SQLROUTINE_FILENAME.c -o SQLROUTINE_FILENAME -L/home/db2admin/sqllib/lib -ldb2 -shared\"
1.1.10 检查db2环境变量设置是否成功
su – db2admin
db2set
如果有以下一行信息说明设置成功:
DB2_SQLROUTINE_COMPILE_COMMAND=gcc -I/home/db2admin/sqllib/include
SQLROUTINE_FILENAME.c
-g -o
SQLROUTINE_FILENAME -L/home/db2admin/sqllib/lib -ldb2 -shared
至此db2 存储过程编译环境已经部署完毕,下一步安装写日志函数put_line(),可以验证存储过程编译环境部署是否正确。
1.2 put_line()安装步骤
1.2.1 上传put_line_aix文件夹到DB2服务器/tmp/gcc 下并改变属组:
chown -R db2admin:db2grp1 /tmp/gcc
1.2.2 建立数据库连接
su - db2admin
cd /tmp/gcc/put_line_aix
db2 connect to stma user db2admin using db2admin
1.2.3 创建函数
db2 -tvf crefunc.sql
1.2.4 上传put_line 文件
1.2.4.1 32位DB2
将文件put_line放到/home/db2admin/sqllib/function/ 目录下,并改变属组:
cp put_line /home/db2admin/sqllib/function/
chown db2admin:db2grp1 /home/db2admin/sqllib/function/put_line
1.2.4.2 位DB2
将文件AIXBIT/put_line放到/home/db2admin/sqllib/function/ 目录下,
并改变属组:
cp put_line /home/db2admin/sqllib/function/
chown db2admin:db2grp1 /home/db2admin/sqllib/function/put_line
1.2.5 put_line()函数安装验证
1)创建测试存储过程
su - db2admin
cd /tmp/gcc/put_line_aix
db2 connect to stma user db2admin using db2admin
db2 -td@ -vf testcase.sql
2)执行测试存储过程
db2 \"call testcase()\"
3)验证函数输出。
查看/tmp目录下是否存在类似SQLPROC_DEBUG_FILE.*这样的文件。
ls -lt|pg
4)删除测试存储过程
db2
connect to stma user db2admin using db2admin
drop PROCEDURE TESTCASE
2. was服务器下的部署步骤
2.1 gcc 编译环境部署(仅限于DB2V8.1版本)
与上文db2下部署相同(1.1.1~1.1.10)
2.2 put_line()安装步骤
2.2.1 上传put_line_aix文件夹到WAS服务器/tmp/gcc 下并改变属组:
chown -R db2admin:db2grp1 /tmp/gcc
2.2.2 上传put_line 文件
2.2.2.1 32位DB2
将文件put_line放到/home/db2admin/sqllib/function/ 目录下,并改变属组:
cp put_line /home/db2admin/sqllib/function/
chown db2admin:db2grp1 /home/db2admin/sqllib/function/put_line
2.2.2.2 位DB2
将文件AIXBIT/put_line放到/home/db2admin/sqllib/function/ 目录下,
并改变属组:
cp put_line /home/db2admin/sqllib/function/
chown db2admin:db2grp1 /home/db2admin/sqllib/function/put_line