三. 配置过程
aix5.2做的oracle9207tar包拷贝到aix5.3上进行配置:
在配置过程中遇到几个问题:
$ sqlplus
exec(): 0509-036 Cannot load program sqlplus because of the following errors:
0509-130 Symbol resolution failed for /usr/lib/libc.a[aio_64.o] because:
0509-136 Symbol kaio_rdwr64 (number 0) is not exported from
dependent module /unix.
0509-136 Symbol listio64 (number 1) is not exported from
dependent module /unix.
0509-136 Symbol acancel64 (number 2) is not exported from
dependent module /unix.
0509-136 Symbol iosuspend64 (number 3) is not exported from
dependent module /unix.
0509-136 Symbol aio_nwait (number 4) is not exported from
dependent module /unix.
0509-136 Symbol aio_nwait64 (number 5) is not exported from
dependent module /unix.
0509-136 Symbol aio_nwait_timeout (number 6) is not exported from
dependent module /unix.
0509-136 Symbol aio_nwait_timeout64 (number 7) is not exported from
dependent module /unix.
0509-026 System error: Error 0
0509-192 Examine .loader section symbols with the
'dump -Tv' command.
2个服务器的版本完全一致,都是AIX 5.3。
从错误信息上看,很多AIO相关的SYMBOL找不到,导致错误。和AIO的配置有关。通过smit aio看到aio是AVAILABLE的。因此怀疑aio service没有正常启动,执行mkdev -l aio0后,系统正常。
在从生产环境复制过来配置好环境变量之后,使用 sqlplus 登录出现错误
SQL> conn / as sysdba
exec(): 0509-036 Cannot load program oraclejftest because of the following errors:
0509-150 Dependent module libha_em_r.a(shr_64.o) could not be loaded.
0509-022 Cannot load module libha_em_r.a(shr_64.o).
0509-026 System error: A file or directory in the path name does not exist.
ERROR:
ORA-12547: TNS:lost contact
虽然我们系统中缺少的包是 bos.adt.libm,但是这个包在cd1上面是无法找到的,因为这个包已经包含在了bos.adt.data这个包中,该包大小约为35m,可以将这个包通过ftp上传到aix主机的目录/tmp下面,然后按照下面的方法进行安装:
输入smitty installp进行安装;
选择install and Update from LATEST Available Software;
输入安装文件所在目录[/tmp],按F4进入安装软件列表,利用F7选择所要安装的软件包,回车确认;
在安装完成这个包之后,我们以oracle用户登录,执行sqlplus之后,内容如下:
SQL> conn / as sysdba
exec(): 0509-036 Cannot load program oraclejftest because of the following errors:
0509-150 Dependent module libha_em_r.a(shr_64.o) could not be loaded.
0509-022 Cannot load module libha_em_r.a(shr_64.o).
0509-026 System error: A file or directory in the path name does not exist.
ERROR:
ORA-12547: TNS:lost contact
$ make -f env_rdbms.mk
$ make -f ins_rdbms.mk rac_off
$ make -f ins_rdbms.mk ioracle
在做完上面的操作之后,我们需要做relink:
$ relink all
在这个relink的过程中可能会出现如下的错误:
ld: 0711-101 FATAL ERROR: Allocation of 16204512 bytes failed
in routine init_symtab_info. There is not enough memory available.
这个问题的解决方案如下:
1 - set LDR_CNTRL to MAXDATA=0x40000000
in the applmgr main shell script.
$ export LDR_CNTRL="MAXDATA=0x40000000"
This is set in your login shell env (applmgr) that you use to run adadmin/adpatch.
You can set at the command line or add to your .profile or it can be added to
the apps env file.
2 - Once set you can check using command 'echo $LDR_CNTRL' at the unix prompt.
It should display -
MAXDATA=0x40000000
3 - try to relink or apply the patch again
WARNING现象是可以忽略的。可参考METALINK文档Note:330990.1
在经过这个处理之后,我们需要再执行一次relink:
$ relink all
这次就没有问题了,正常编译通过。
然后我们执行sqlplus,显示结果如下:
SQL> conn / as sysdba