背景和现象:
1 由于网络条件限制,必须手动创建 oracle 11.2.0.4的数据库(数据库软件提前安装好).
环境信息:OS AIX6.1; Oracle Database 11.2.0.4
2 create database语句执行结束后,执行 catproc.sql时,执行中间会报 ORA-03114: not connected to ORACLE
3 如果不管这个报错,继续往下执行 完成几个重建数据字典和重新编译对象的sql文件结束后,重新启动数据库,会报如下错误.
ORA-01092,ORA-00704,ORA-39700
要求必须startup UPGRADE.才可以正常打开数据库.
4 搜索过后发现有帖子说,需要执行catupgd.sql文件,此处也比较奇怪,只是手动创建数据库,并非升级了数据库软件或者恢复rman到异机上。然后执行此文件报如下错误.
ORA-20000,ORA-06512
解决过程.
从步骤2 中发现的错误开始排查.
在sqlplus中 spool 输出到指定文件.然后执行catproc.sql文件,grep 查找第一个 ora-03114,发现了如下错误.
ORA-00603,ORA-04030 out of process memory when trying to allocate xxx byes(pga heap,redo read buffer)。
确认了系统的内核参数配置没有问题,以及Oracle的内存参数配置(pga_agggregate_target,log_buffer,sga_target等),操作系统的内存使用率(执行catproc.sql的过程中全程监控)没有问题之后,猜测可能是用户的limit设置限制了内存使用量。于是将用户limit参数(主要是stack(kbytes) ,memory(kbytes) )调整为ulimited后,重新运行catproc.sql,不再报ora-03114的错误.