温馨提示×

centos中oracle数据库如何调优

小樊
34
2025-11-19 21:13:58
栏目: 云计算

CentOS 上 Oracle 数据库调优实战指南

一 操作系统层优化

  • 内存与大页
    • 将 SGA 放入单个共享内存段:设置 kernel.shmmax 不小于实例的 SGA_MAX_SIZE,并按内存计算 kernel.shmall(以 4KB 页计)。经验上可将 shmmax 设为物理内存的约一半(如 32GB 内存可设约 17GB),再结合负载微调。启用 HugePages 降低页表开销,并关闭透明大页(THP)以避免抖动。示例计算:shmall ≈ 内存字节数 ÷ 4096。
  • 虚拟内存与脏页
    • 适度降低 vm.swappiness(如 10)以减少换页;结合业务调整 vm.dirty_background_ratio / vm.dirty_ratio,在写密集场景避免突发写放大。
  • 文件句柄与 AIO
    • 提高 fs.file-maxfs.aio-max-nr,满足 Oracle 高并发文件与异步 I/O 需求。
  • 网络参数
    • 增大套接字缓冲与本地端口范围,例如:net.core.rmem_default / rmem_maxnet.core.wmem_default / wmem_maxnet.ipv4.ip_local_port_range
  • I/O 调度器
    • 物理机/裸金属优先 deadline(对延迟更友好);SSD/NVMe 或虚拟化环境优先 noop(由上层调度器/存储处理)。
  • 其它
    • 关闭不必要的系统服务,减少资源竞争;确保 NTP 时间同步,避免日志与统计失真。

二 数据库内存与实例参数

  • 内存管理模式
    • 优先启用自动内存管理:设置 MEMORY_TARGET / MEMORY_MAX_TARGET,让 Oracle 在 SGAPGA 间自动平衡;或分别设置 SGA_TARGETPGA_AGGREGATE_TARGET。示例:
      • ALTER SYSTEM SET sga_target = 4G SCOPE=BOTH;
      • ALTER SYSTEM SET pga_aggregate_target = 1G SCOPE=BOTH;
  • 共享池与日志
    • 适度增大共享池(如 SHARED_POOL_SIZE)与保留区(SHARED_POOL_RESERVED_SIZE),缓解高硬解析与对象老化抖动;OLTP 可适当增大 LOG_BUFFER 减少日志写等待。
  • 并发与会话
    • 结合负载设置 PROCESSES / SESSIONS,避免连接风暴;应用侧使用连接池,控制活跃会话峰值。
  • RAC 专项(如适用)
    • 高 SGA/高并发下关注 _gc_policy_time_gc_policy_minimum_lm_sync_timeout_lm_tickets 等参数,降低 DRM 重配置与大消息同步的超时风险。

三 存储 I O 与文件系统

  • 存储硬件
    • 优先 SSD/NVMe 或高性能阵列(RAID10/条带化),分离 REDO/归档/数据/临时表空间 到不同磁盘组,降低争用。
  • 文件系统与挂载
    • 选择 XFS/ext4 等成熟文件系统,合理设置挂载选项(如 noatime、barrier 等按存储与可靠性权衡);条带对齐与对齐边界有助于顺序/随机 I/O 性能。
  • I/O 路径
    • 确认异步 I/O(AIO)工作正常;在虚拟化环境优先 virtio 驱动与 noop 调度器,减少双重调度。

四 SQL 与索引及对象设计

  • SQL 写法
    • 避免 *SELECT ,只查必要列;使用绑定变量减少硬解析;用 EXPLAIN PLAN 与执行计划分析定位全表扫描、隐式转换、笛卡尔积等根因。
  • 索引策略
    • 为高频过滤/连接/排序列建立合适索引,优先覆盖索引;定期清理未使用/重复索引;必要时重建碎片化严重的索引。
  • 并行处理
    • 对大表扫描/聚合/连接按需设置表级或语句级并行度(如 PARALLEL 提示或会话策略),避免无谓并行导致资源争用。
  • 分区与压缩
    • 对大表按时间/地域等维度分区,配合分区裁剪与并行维护;对历史/归档数据考虑压缩降低 I/O。

五 监控 维护与变更流程

  • 监控与诊断
    • 定期生成 AWR/ASH/ADDM 报告,定位 Top SQL、等待事件与瓶颈;结合 V$ 动态视图做细粒度排查。
  • 统计信息与空间
    • 定期收集对象统计信息(如 DBMS_STATS.GATHER_SCHEMA_STATS),保证优化器选择更优计划;监控 表/索引碎片 与空间使用,按需重组或分区维护。
  • 变更流程
    • 任何重大参数或结构变更先在测试环境验证,评估回滚方案;变更窗口内控制并发与负载,变更后复核 AWR/ASH 指标确认收益。

0