如何在AIX系统上优化Oracle安装参数_通过no命令调整网络内核属性

千伟酱_8521

千伟酱_8521

2026-06-18

537人浏览

原创

oracle 12c 在 aix 上安装失败或卡在 runinstaller 图形检测阶段,八成是因 tcp_sendspace、tcp_recvspace、sb_max 等网络内核参数未达官方下限(如 tcp_sendspace=1048576),须用 no -p/-r 命令持久化配置并重启生效,aix 无 sysctl.conf,全由 no 统一管理。

oracle 12c 在 aix 上安装失败或卡在 runinstaller 图形检测阶段,八成不是 oracle 安装包问题,而是 no 命令没调对网络内核参数——尤其 tcp_sendspace、tcp_recvspace、sb_max 这三个值低于 oracle 推荐下限,会导致静默安装也校验不通过。

为什么 Oracle 安装要动 no 命令而不是 sysctl

AIX 没有 /etc/sysctl.conf,所有网络可调参数都由 no 命令统一管理。它直接操作内核网络子系统(tcpip、udp、ip 等子模块),且分“当前生效”和“重启后持久化”两种模式。Oracle 安装程序会调用内核接口读取这些值,若不达标就中止流程——哪怕你只差 1 字节。

常见错误现象:

  • runInstaller 卡在 “Checking network configuration requirements” 长时间无响应
  • 静默安装报错:ERROR: Network configuration check failed,但 ifconfig 显示 IP 正常
  • 安装日志里出现 tcp_sendspace is less than required value

必须设置的 5 个关键 no 参数及其值

Oracle 12c 官方文档明确要求以下参数达到最低阈值(AIX 7.1+ / 7.2 环境):

  • tcp_sendspace=1048576(1MB):低于此值,TCP 发送缓冲区无法承载 Oracle 的大块数据包,导致连接超时
  • tcp_recvspace=1048576(1MB):影响接收窗口大小,过小会严重限制吞吐量
  • sb_max=4194304(4MB):单个套接字最大缓冲区总容量,应 ≥ 4 × tcp_recvspace
  • rfc1323=1:必须启用 TCP 窗口缩放,否则高带宽延迟网络(如跨机房)性能断崖式下降
  • ipqmaxlen=512:IP 输入队列长度,防止丢包;设为 -r 模式(重启后生效),避免临时修改被覆盖

执行命令(需 root 权限):

no -p -o tcp_sendspace=1048576
no -p -o tcp_recvspace=1048576
no -p -o sb_max=4194304
no -p -o rfc1323=1
no -r -o ipqmaxlen=512

注意:-p 表示永久写入 /etc/tunables/nextboot,-r 表示仅下次启动生效(ipqmaxlen 必须用 -r,否则会报错)。

QuantOracle
QuantOracle

63个确定性量化金融计算器 + 10个通过MCP的复合工作流。期权定价、Greeks、奇异衍生品、风险指标、投资组合优化……

下载

验证是否生效及常见陷阱

别信命令返回成功就完事——AIX 的 no 命令不会自动刷新运行时值,部分参数需要重启网络子系统或整机重启才真正加载。

  • 用 no -L 查看所有已持久化的参数,确认值已写入;用 no -a | grep tcp_sendspace 查看当前运行值
  • 如果 no -L 有值但 no -a 显示旧值,说明未重启生效:执行 stopsrc -g tcpip; startsrc -g tcpip(部分参数仍需 reboot)
  • UDP 参数(如 udp_recvspace)虽不影响 Oracle 安装,但若后续启用了 Oracle RAC 或 Data Guard,必须同步设为 1048576,否则心跳包丢弃率飙升
  • 不要用 chdev -l en0 改单网卡参数来替代全局 no 设置——Oracle 校验的是内核全局值,不是接口级值

接口级调优:当全局不够用时

如果业务网卡(如 en0)跑的是万兆链路或 RDMA 网络,全局参数可能仍不足。此时需叠加接口级配置:

chdev -l en0 -a tcpsendspace=2097152 -a tcprecvspace=2097152 -a rfc1323=1

注意:

  • 该命令修改的是设备驱动层参数,优先级高于 no 全局设置
  • 必须用 smitty chinet 或 chdev,不能用 no 对接口生效
  • 修改后需 ifconfig en0 down && ifconfig en0 up 或重启网络服务
  • 接口名务必用 lsdev -Cc if 确认,AIX 里可能是 ent0、en1 等,不是 Linux 的 eth0

最易被忽略的一点:AIX 的 no 命令没有回滚机制,改错一个关键参数(比如 sb_max 设太小)可能导致 SSH 连接瞬间中断。操作前务必用 no -a > /tmp/no_before.txt 备份原始状态,并确保控制台直连可用。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

oracle

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
oracle清空表数据
oracle清空表数据

当表中的数据不需要时,则应该删除该数据并释放所占用的空间。本专题为大家提供oracle清空表数据的相关文章,帮助大家解决该问题。

2023.08.16

981

5

Oracle中declare的使用
Oracle中declare的使用

Oracle DECLARE语句是PL/SQL编程语言中用于声明变量、常量、游标或异常的关键字。它的主要作用是在程序中定义这些对象,以便在后续的代码中使用。DECLARE语句的语法简单明了,可以根据需要声明多个对象。通过使用这些声明的对象,可以进行各种操作,如计算、查询数据库、处理异常等 。

2023.09.15

2813

5

oracle怎么分页
oracle怎么分页

实现分页的步骤:1、使用ROWNUM进行分页查询;2、在执行查询之前进行设置分页参数;3、使用"COUNT(*)"函数来获取总行数,并使用"CEIL"函数来向上取整计算总页数;4、在外部查询中使用"WHERE"子句来筛选出特定的行号范围,以实现分页查询。想了解更多oracle怎么分页的文章,可以来阅读本专题先的文章。

2023.09.18

2830

5

Oracle查看表操作历史记录
Oracle查看表操作历史记录

查看操作历史记录的方法:1、使用Oracle内置的审计功能,可以记录数据库中发生的各种操作,包括登录、DDL语句、DML语句等;2、使用Oracle日志文件,其中包含了数据库中发生的各种操作,可以通过查看日志文件来获取操作历史记录;3、使用Oracle的Flashback功能,可以查看数据库在某个时间点的操作历史记录;4、使用第三方工具等。本专题还提供其他查看表操作的文章,大家可以免费阅读。

2023.09.19

1629

3

Oracle中RAC的用法
Oracle中RAC的用法

Oracle中RAC的用法:1、通过在多个服务器上运行数据库实例来提供高可用性;2、允许在需要时增加或减少节点数量;3、通过将工作负载分布到多个节点上来实现负载均衡;4、使用共享存储来实现多个节点之间的数据共享;5、允许多个节点同时处理数据库请求,从而实现并行处理;6、提供了透明故障切换功能;7、使用了一些技术来确保数据的一致性;8、提供了管理工具来简化RAC环境的管理和维护。本专题还提供RAC相关的其他文章,大家可以免费阅读。

2023.09.19

2233

7

oracle imp
oracle imp

imp是Oracle数据库中的一个命令行工具,用于将导出的数据和对象从一个数据库实例导入到另一个数据库实例。imp命令的一般语法为“imp username/password@connect_string file=file_name [options]”。

2023.09.19

2989

4

常用的数据库软件
常用的数据库软件

常用的数据库软件有MySQL、Oracle、SQL Server、PostgreSQL、MongoDB、Redis、Cassandra、Hadoop、Spark和Amazon DynamoDB。更多关于数据库软件的内容详情请看本专题下面的文章。php中文网欢迎大家前来学习。

2023.11.02

4489

19

oracle通配符有哪些
oracle通配符有哪些

oracle通配符有“%”、“_”、“[]”和“[^]"。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.11.08

237

5

oracle四舍五入怎么操作
oracle四舍五入怎么操作

oracle四舍五入操作可以使用ROUND函数来实现,其语法为“ROUND(number, decimal_places)”,其中,number是要进行四舍五入的数值,decimal_places是指定的小数位数。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.11.14

786

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程