这两天因为工作需要,搭建DB2 9.1 For AIX 5.3, DB2 8.1 For AIX 5.2环境。总的来讲还算顺利,不过也碰到不少问题,共享一下经验。
1。获取安装程序
DB2 9.1 在IBM官方网站可以直接下载,注册一个ID就行,免费的。(顺便说一下,像IBM,Oracle等网站,不注册可惜啊,里面好多资料。)
DB2 8.1 没找到下载链接,不过Fix补丁不少,下一个。(补丁解压后有1.2G,汗...,偶见过的最大的补丁),安装包是借来的光盘。
2。安装
安装比较简单,把安装程序FTP到AIX,用root用户依次解压 uncompress xxx.Z,
解包 tar -xvf xxxx.tar,然后生成一个文件夹。进入文件夹,可以看到db2setup,db2install两个程序和其它一些包。其中db2setup是图形 化安装,需要X环境支持,db2install是文字模式脚本形式安装。新手推荐用db2setup,老鸟随便你。
此后,无非是 接受Licence -> 选取安装组件 -> 选择安装目录(DB2 8.1无法更改安装目录) -> 选择或创建DB2 管理员用户, DB2 实例所有者用户(如果你选择创建实例的话),db2实例fenc用户 -> Finish 开始拷贝文件安装 -> 安装完毕。
整体安装过程比较简单,类似Windows的傻瓜程序,基本上一路Next就行。
3。可能碰到的问题与解决
如果只是Next就一切OK,就没发表帖子的必要了。下面是我安装过程中碰到的一些问题以及解决,有些很低级,大家别笑,呵呵。
DB2 9.1的问题:
(1)安装到选择组件那步,如果你的AIX上没Informix,就不要选择“Informix 数据源转换支持”。我当时全选了,结果它提示我输入Informix安装路径。
(2)装好后,输入db2,回车执行,出现SQL10007N Message "-1390 " could not be retrieved. Reason code: "3 "
偶当时是用Root用户执行的....su - db2inst1执行就OK了。
(3)db2start出现如下错误:
db2start
exec(): 0509-036 Cannot load program db2start because of the following errors:
0509-130 Symbol resolution failed for /usr/lib/threads/libc.a(aio.o) because:
0509-136 Symbol kaio_rdwr (number 0) is not exported from
dependent module /unix.
0509-136 Symbol listio (number 1) is not exported from
dependent module /unix.
0509-136 Symbol acancel (number 2) is not exported from
dependent module /unix.
0509-136 Symbol iosuspend (number 3) is not exported from
dependent module /unix.
0509-136 Symbol aio_nwait (number 4) is not exported from
dependent module /unix.
0509-130 Symbol resolution failed for /usr/opt/db2_08_01/lib/libdb2e.a(shr.o) because:
0509-136 Symbol aio_nwait (number 593) is not exported from
dependent module /usr/lib/threads/libc.a(aio.o).
0509-150 Dependent module libdb2e.a(shr.o) could not be loaded.
0509-026 System error: Cannot run a file that does not have a valid format.
0509-192 Examine .loader section symbols with the
'dump -Tv ' command.
这个问题是因为AIX KAIO(异步IO)引起,确保你的AIX安装并开启了KAIO即可。
检查和修改 AIX KAIO 状态的具体方法如下:
首先输入下述命令以确认 KAIO 已安装:
#lslpp -l |grep -i async
从输出中应能看到类似下面的内容:
bos.rte.aio 5.1.0.35 COMMITTED Asynchronous I/O
Extension devices.common.IBM.async.diag
bos.rte.aio 5.1.0.10 COMMITTED Asynchronous I/O
Extension
这表明系统上安装了 KAIO。然后,为启用 KAIO, 需调用 SMIT 执行下述步骤:
1. 执行命令:smitty chgaio
2. 从菜单中选择“STATE to be configured at system restart”
3. 将该选项的值改为“available”,按回车键
4. 按“F10”键退出 SMIT
5. 重新启动系统
(4)解决KAIO问题后,db2start出现0509-136错误
DB2 9.1需要XLC 8.0以上版本,而AIX 5.3自带的是6.x版本。到IBM网站下载XLC 8.x补丁安装即可。
(5)db2start, db2stop没问题了,可是db2ilist看不到实例。
看看解压后的db2 9.1安装目录,里面还有个runInstallFixPatch,运行它打上DB2补丁即可。
到此DB2 9.1一切OK,创建数据库,建表,connect OK.
=================================================================
DB2 8.1碰到的问题:
(1)安装完毕后无法创建实例,db2icrt -u db2fenc1 db2inst1报错如下:
Program name = db2idbm
Instance home dir = /home/db2inst1, Sysadm group = db2
Instance type = 1, Auth type = SERVER
SQL6031N Error in the db2nodes.cfg file at line number "1 ". Reason code
"10 ".
Update DBM cfg SYSADM_GROUP errcode = 8
> > > > > Error message = SQL6031N Error in the db2nodes.cfg file at line number "1 ". Reason code
"10 ". < < < < <
DBI1703E No valid service name or port number found.
DBI1079I Output is saved in the log file /tmp/db2icrt.log.508058.
Explanation:
All processed and failed operations have been saved into this log
file.
----------------------
解决:这个问题是因为主机名设置有问题。运行 uname -a , hostname ,并检查/etc/hosts,确保三个地方主机名一致。我的AIX5.2环境中,最初设置的主机名是aix5.2,结果hostname, /etc/hosts中是aix5.2,但是uname -a 是aix5,估计是对“.”不支持。这里也提醒一下设置主机名,最好不要用特殊字符,以免引起不必要的麻烦。
(2)DB2能创建32位实例,但是创建64位实例出错(我的AIX 5.2已经开启64位程序支持)。错误如下:
Program name = db2idbm
Instance home dir = /home/db2inst1, Sysadm group = db2
Instance type = 1, Auth type = SERVER
DB21016E The Command Line Processor encountered a system error while sending
the command to the backend process.
Update DBM cfg SYSADM_GROUP errcode = 8
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.
-------------------
解决:DB2的Bug,打补丁就好了。补丁从IBM网站下。
以前没装过DB2,这次碰到不少问题,还好都google解决了。其实总的来说,先按DB2安装需求,打好操作系统补丁,安装DB2后再打好DB2补丁,就没问题了。
from
http://topic.csdn.net/u/20070429/10/360f7dc8-e256-4372-9a6a-c807650fd346.html
关于8.1补充一句
创建实例的命令如下(root用户下)
/usr/opt/db2_08_01/instance/db2icrt -a SERVER -s ese -u db2fenc -w 64 -p db2c_db2inst db2inst1
尽管这里指定的db2inst1为实例名,但是OS也必须存在同名的OS用户
否则提示:DBI1131E The user ID myinst1 is invalid. 因为db2会在该用户下创建实例,并指定该用户为实例的拥有者(可以db2start,db2stop)
1。获取安装程序
DB2 9.1 在IBM官方网站可以直接下载,注册一个ID就行,免费的。(顺便说一下,像IBM,Oracle等网站,不注册可惜啊,里面好多资料。)
DB2 8.1 没找到下载链接,不过Fix补丁不少,下一个。(补丁解压后有1.2G,汗...,偶见过的最大的补丁),安装包是借来的光盘。
2。安装
安装比较简单,把安装程序FTP到AIX,用root用户依次解压 uncompress xxx.Z,
解包 tar -xvf xxxx.tar,然后生成一个文件夹。进入文件夹,可以看到db2setup,db2install两个程序和其它一些包。其中db2setup是图形 化安装,需要X环境支持,db2install是文字模式脚本形式安装。新手推荐用db2setup,老鸟随便你。
此后,无非是 接受Licence -> 选取安装组件 -> 选择安装目录(DB2 8.1无法更改安装目录) -> 选择或创建DB2 管理员用户, DB2 实例所有者用户(如果你选择创建实例的话),db2实例fenc用户 -> Finish 开始拷贝文件安装 -> 安装完毕。
整体安装过程比较简单,类似Windows的傻瓜程序,基本上一路Next就行。
3。可能碰到的问题与解决
如果只是Next就一切OK,就没发表帖子的必要了。下面是我安装过程中碰到的一些问题以及解决,有些很低级,大家别笑,呵呵。
DB2 9.1的问题:
(1)安装到选择组件那步,如果你的AIX上没Informix,就不要选择“Informix 数据源转换支持”。我当时全选了,结果它提示我输入Informix安装路径。
(2)装好后,输入db2,回车执行,出现SQL10007N Message "-1390 " could not be retrieved. Reason code: "3 "
偶当时是用Root用户执行的....su - db2inst1执行就OK了。
(3)db2start出现如下错误:
db2start
exec(): 0509-036 Cannot load program db2start because of the following errors:
0509-130 Symbol resolution failed for /usr/lib/threads/libc.a(aio.o) because:
0509-136 Symbol kaio_rdwr (number 0) is not exported from
dependent module /unix.
0509-136 Symbol listio (number 1) is not exported from
dependent module /unix.
0509-136 Symbol acancel (number 2) is not exported from
dependent module /unix.
0509-136 Symbol iosuspend (number 3) is not exported from
dependent module /unix.
0509-136 Symbol aio_nwait (number 4) is not exported from
dependent module /unix.
0509-130 Symbol resolution failed for /usr/opt/db2_08_01/lib/libdb2e.a(shr.o) because:
0509-136 Symbol aio_nwait (number 593) is not exported from
dependent module /usr/lib/threads/libc.a(aio.o).
0509-150 Dependent module libdb2e.a(shr.o) could not be loaded.
0509-026 System error: Cannot run a file that does not have a valid format.
0509-192 Examine .loader section symbols with the
'dump -Tv ' command.
这个问题是因为AIX KAIO(异步IO)引起,确保你的AIX安装并开启了KAIO即可。
检查和修改 AIX KAIO 状态的具体方法如下:
首先输入下述命令以确认 KAIO 已安装:
#lslpp -l |grep -i async
从输出中应能看到类似下面的内容:
bos.rte.aio 5.1.0.35 COMMITTED Asynchronous I/O
Extension devices.common.IBM.async.diag
bos.rte.aio 5.1.0.10 COMMITTED Asynchronous I/O
Extension
这表明系统上安装了 KAIO。然后,为启用 KAIO, 需调用 SMIT 执行下述步骤:
1. 执行命令:smitty chgaio
2. 从菜单中选择“STATE to be configured at system restart”
3. 将该选项的值改为“available”,按回车键
4. 按“F10”键退出 SMIT
5. 重新启动系统
(4)解决KAIO问题后,db2start出现0509-136错误
DB2 9.1需要XLC 8.0以上版本,而AIX 5.3自带的是6.x版本。到IBM网站下载XLC 8.x补丁安装即可。
(5)db2start, db2stop没问题了,可是db2ilist看不到实例。
看看解压后的db2 9.1安装目录,里面还有个runInstallFixPatch,运行它打上DB2补丁即可。
到此DB2 9.1一切OK,创建数据库,建表,connect OK.
=================================================================
DB2 8.1碰到的问题:
(1)安装完毕后无法创建实例,db2icrt -u db2fenc1 db2inst1报错如下:
Program name = db2idbm
Instance home dir = /home/db2inst1, Sysadm group = db2
Instance type = 1, Auth type = SERVER
SQL6031N Error in the db2nodes.cfg file at line number "1 ". Reason code
"10 ".
Update DBM cfg SYSADM_GROUP errcode = 8
> > > > > Error message = SQL6031N Error in the db2nodes.cfg file at line number "1 ". Reason code
"10 ". < < < < <
DBI1703E No valid service name or port number found.
DBI1079I Output is saved in the log file /tmp/db2icrt.log.508058.
Explanation:
All processed and failed operations have been saved into this log
file.
----------------------
解决:这个问题是因为主机名设置有问题。运行 uname -a , hostname ,并检查/etc/hosts,确保三个地方主机名一致。我的AIX5.2环境中,最初设置的主机名是aix5.2,结果hostname, /etc/hosts中是aix5.2,但是uname -a 是aix5,估计是对“.”不支持。这里也提醒一下设置主机名,最好不要用特殊字符,以免引起不必要的麻烦。
(2)DB2能创建32位实例,但是创建64位实例出错(我的AIX 5.2已经开启64位程序支持)。错误如下:
Program name = db2idbm
Instance home dir = /home/db2inst1, Sysadm group = db2
Instance type = 1, Auth type = SERVER
DB21016E The Command Line Processor encountered a system error while sending
the command to the backend process.
Update DBM cfg SYSADM_GROUP errcode = 8
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.
-------------------
解决:DB2的Bug,打补丁就好了。补丁从IBM网站下。
以前没装过DB2,这次碰到不少问题,还好都google解决了。其实总的来说,先按DB2安装需求,打好操作系统补丁,安装DB2后再打好DB2补丁,就没问题了。
from
http://topic.csdn.net/u/20070429/10/360f7dc8-e256-4372-9a6a-c807650fd346.html
关于8.1补充一句
创建实例的命令如下(root用户下)
/usr/opt/db2_08_01/instance/db2icrt -a SERVER -s ese -u db2fenc -w 64 -p db2c_db2inst db2inst1
尽管这里指定的db2inst1为实例名,但是OS也必须存在同名的OS用户
否则提示:DBI1131E The user ID myinst1 is invalid. 因为db2会在该用户下创建实例,并指定该用户为实例的拥有者(可以db2start,db2stop)
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/1698901/viewspace-509891/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/1698901/viewspace-509891/