提升 CentOS 上 Oracle 运行效率的实用清单
一 系统层优化
tuned-adm profile oracle 并重启相关服务或系统。针对 OLTP/OLAP/混合负载 的适配,建议先在测试环境验证再上线。二 内存与大页配置
echo never > /sys/kernel/mm/transparent_hugepage/enabled 与 defrag;/etc/security/limits.conf 为 oracle 用户设置 memlock(单位 KB),值应≥SGA;/etc/sysctl.conf 设置 vm.nr_hugepages=32868 并执行 sysctl -p;grep Huge /proc/meminfo 验证分配情况。ALTER SYSTEM SET MEMORY_TARGET=0 SCOPE=SPFILE; ALTER SYSTEM SET SGA_TARGET=2G SCOPE=SPFILE; ALTER SYSTEM SET PGA_AGGREGATE_TARGET=1G SCOPE=SPFILE;三 数据库参数与内存管理
MEMORY_TARGET/MEMORY_MAX_TARGET;SGA_TARGET(含 shared pool、buffer cache、large pool、java pool 等)与 PGA_AGGREGATE_TARGET。ALTER SYSTEM SET sga_target=4G SCOPE=BOTH; ALTER SYSTEM SET pga_aggregate_target=1G SCOPE=BOTH;processes 建议从默认 150 提升到业务峰值所需(如 1200),sessions 可按公式 sessions = 1.1×processes + 5 配置(如 1325);open_cursors 可设为 1000 或更高,避免 “maximum open cursors exceeded”。四 SQL 与对象层优化
五 监控 维护与上线验证
SELECT * FROM table(dbms_workload_repository.awr_report_html(dbid, instance_number, 1, 2));DBMS_STATS.GATHER_SCHEMA_STATS('SCHEMA_NAME') 更新统计信息;对高碎片对象按需重组或重建。