跳转到主内容
新派编程网 - 新潮编程理念,全新技术课堂!

如何实现在AIX系统下安装Oracle 12c_配置系统限制参数与异步IO

Oracle 12c 在 AIX 上必须启用异步 I/O,因其 DBWn 等后台进程依赖该机制写入数据文件;未启用会导致 ORA-27090 错误、实例启动失败、静默安装退出,且需通过 smit chgaio 和 smit aio 配置并重启生效,仅 cfgmgr 不足。 在 aix 上安装 oracle 12c,
aio
必须启用且配置正确,否则
oraagent.bin
启动失败、实例无法启动,甚至静默安装中途报错退出——这不是可选项,是硬性前提。 为什么 Oracle 12c 在 AIX 上必须启用异步 I/O Oracle 12c 的后台进程(如
DBWn
)默认依赖异步 I/O 进行数据文件写入。AIX 默认不启用
aio
,若跳过此步:
ORA-27090: Unable to reserve kernel resources for asynchronous disk I/O
是最常见错误 数据库实例启动时卡在
ORACLE_HOME/rdbms/admin/catbundle.sql
阶段 即使安装完成,
sqlplus / as sysdba
后执行
startup
仍失败 注意:
libaio
包在 AIX 上不存在,不要尝试 yum 或 rpm 安装——AIX 使用原生
aio
子系统,由内核模块和 SMIT 工具管理。 用 smit 启用并验证 aio 状态 必须以
root
用户操作,且需重启生效: 运行
smit chgaio
→ 将 “STATE to be configured at next reboot” 改为
available
再运行
smit aio
→ 选择 “Configure Defined Asynchronous I/O” 并回车 执行
shutdown -Fr
重启系统(
-F
强制,
-r
重启) 重启后验证:
lsattr -El aio0
应返回
available
;
lsdev -C -c aio
应显示
aio0 Available Asynchronous I/O
别跳过重启——仅运行
mkdev -l aio0
或
cfgmgr
不足以让 Oracle 识别已启用的 aio。 调整 AIX 系统资源限制(limits.conf 不起作用) AIX 没有
/etc/security/limits.conf
,用户级限制通过
chuser
和
/etc/security/limits
设置: oracle知识库 oracle知识库下载 下载 创建 oracle 用户前,先确保
soft nofile
和
hard nofile
≥ 65536:
chuser nofiles=65536 oracle
检查当前值:
lsuser -a nofiles oracle
设置堆栈大小:
chuser stack=10240 oracle
确认
oracle
用户属于
dba
和
oinstall
组:
id oracle
输出中应含
groups=...dba,oinstall
注意:
nproc
(最大进程数)在 AIX 中对应
maxuproc
,需设为 ≥ 16384:
chuser maxuproc=16384 oracle
。该值若过小,安装时会卡在
runInstaller
图形检测阶段(即使静默安装也会校验)。 内核参数与 Oracle 安装前的最后检查 AIX 的内核参数不通过
/etc/sysctl.conf
调整,而是用
vmo
、
no
、
nfso
命令: 共享内存:确保
vmo -p -o shmmni=4096
、
vmo -p -o shmmax=4294967296
(≥4GB) 信号量:
no -p -o semmni=4096 -o semmns=32000 -o semmsl=250
异步 I/O 队列深度(关键):
iostat -a
查看磁盘支持的
maxreqs
,Oracle 要求每个磁盘
maxreqs ≥ 128
;若不足,需在
smitty iointr
中调高 验证所有设置:
su - oracle -c "ulimit -a"
必须显示
open files
≥ 65536,
stack size
≥ 10240 KB 最容易被忽略的是
maxreqs
——它不随
aio
启用自动提升,必须手动检查并调优,否则数据库写入性能断崖式下降,且
ORA-00600
内部错误可能在高并发时突然出现。

相关文章