首页主机资讯CentOS环境下Oracle如何配置最佳

CentOS环境下Oracle如何配置最佳

时间2025-12-06 00:55:03发布访客分类主机资讯浏览730
导读:CentOS 环境下 Oracle 最佳配置实践 一 环境准备与基础配置 系统版本与资源建议:优先选择 CentOS 7/8(64 位);内存至少 2 GB(建议 ≥4 GB);安装至少需要 10 GB 磁盘空间(建议 20 GB+);S...

CentOS 环境下 Oracle 最佳配置实践

一 环境准备与基础配置

  • 系统版本与资源建议:优先选择 CentOS 7/8(64 位);内存至少 2 GB(建议 ≥4 GB);安装至少需要 10 GB 磁盘空间(建议 20 GB+);Swap 按内存规模配置:1–2 GB 内存用 1.5 倍2–16 GB 与内存相同> 16 GB 固定 16 GB。完成后执行 sudo yum update -y 更新系统。
  • 依赖包安装:
    sudo yum install -y binutils compat-libcap1 compat-libstdc+±33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc+±devel libXi libXtst make sysstat unixODBC unixODBC-devel
  • 用户与目录:
    sudo groupadd oinstall; sudo groupadd dba; sudo useradd -g oinstall -G dba oracle; sudo passwd oracle
    sudo mkdir -p /u01/app/oracle; sudo chown -R oracle:oinstall /u01; sudo chmod -R 775 /u01
  • 说明:部分安装器在 CentOS 上可能识别为不支持,常见做法是将系统标识临时改为 Red Hat 兼容标识(如修改 /etc/redhat-release),安装完成后再恢复;生产环境不建议长期关闭 SELinux/防火墙,应改为精细化策略放行 1521 等必要端口。

二 内核与资源限制调优

  • 内核参数(/etc/sysctl.conf,执行 sysctl -p 生效):
    fs.aio-max-nr = 1048576
    fs.file-max = 6815744
    kernel.shmall = 2097152
    kernel.shmmax = 4294967295
    kernel.shmmni = 4096
    kernel.sem = 250 32000 100 128
    net.ipv4.ip_local_port_range = 9000 65500
    net.core.rmem_default = 262144
    net.core.rmem_max = 4194304
    net.core.wmem_default = 262144
    net.core.wmem_max = 1048576
  • 资源限制(/etc/security/limits.conf):
    oracle soft nproc 2047
    oracle hard nproc 16384
    oracle soft nofile 1024
    oracle hard nofile 65536
    oracle soft stack 10240
    并在 /etc/pam.d/login 增加:session required pam_limits.so
  • 可选性能增强:
    • 适度降低换页倾向:vm.swappiness = 10
    • 大页 HugePages(示例计算,需按实际内存与 SGA 调整):
      kernel.shmmax ≈ 物理内存(字节)−1;kernel.shmall ≈ 物理内存(字节)/ 4096
      SGA 目标(示例)≈ 内存的 40%;PGA ≈ SGA 的 10%
      HugePages 数量(示例)≈ SGA(GB)×1024/2 + 1024(需确保大于 SGA 所需页数)

三 安装与网络配置

  • 安装介质与解压:从 Oracle 官方获取 Linux x86_64 安装包(如 19c),上传至 /u01/app/oracle 并解压:
    cd /u01/app/oracle; unzip LINUX.X64_193000_db_home.zip
  • 监听与实例:使用 netca 配置监听器,使用 dbca 创建数据库实例(字符集建议 AL32UTF8)。
  • 环境变量(/home/oracle/.bashrc 或对应 profile):
    export ORACLE_BASE=/u01/app/oracle
    export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
    export ORACLE_SID=orcl
    export ORACLE_UNQNAME=orcl
    export PATH=$ORACLE_HOME/bin:$PATH
    export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
    export LANG=en_US.UTF-8
    export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
  • 远程访问与防火墙:开放 1521/TCP(firewalld:firewall-cmd --add-port=1521/tcp --permanent & & firewall-cmd --reload);在 $ORACLE_HOME/network/admin 下配置 listener.ora/sqlnet.ora/tnsnames.ora;客户端以服务名测试连接。

四 数据库内存与关键参数

  • 内存目标(示例):SGA ≈ 内存的 40%,PGA ≈ 10%;先关闭自动内存管理:ALTER SYSTEM SET memory_target=0 SCOPE=SPFILE;
  • 设置示例:
    ALTER SYSTEM SET sga_max_size=4G SCOPE=SPFILE;
    ALTER SYSTEM SET sga_target=4G SCOPE=SPFILE;
    ALTER SYSTEM SET pga_aggregate_target=1G SCOPE=SPFILE;
  • 会话与日志:
    ALTER SYSTEM SET processes=200 SCOPE=SPFILE;
    ALTER SYSTEM SET sessions=200 SCOPE=SPFILE;
    ALTER SYSTEM SET log_buffer=64M SCOPE=SPFILE;
  • 说明:以上为通用起点,需结合 AWR/ASH 报告与业务负载逐步微调。

五 运行维护与监控

  • 自启动与启停:
    • /etc/oratab 将实例行末尾改为 Y:orcl:/u01/app/oracle/product/19.0.0/dbhome_1:Y
    • 创建 systemd 服务(/etc/systemd/system/oracle.service):
      [Unit] Description=Oracle Database Service; After=network.target
      [Service] Type=forking; User=oracle; Environment=“ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1”
      ExecStart=$ORACLE_HOME/bin/dbstart $ORACLE_HOME; ExecStop=$ORACLE_HOME/bin/dbshut $ORACLE_HOME; Restart=on-abort
      [Install] WantedBy=multi-user.target
    • 启用:systemctl daemon-reload & & systemctl enable --now oracle
  • 监控与优化:定期查看 Alert/Trace/Listener 日志;使用 AWR/ASH/ADDM 识别瓶颈;持续进行 SQL 优化(减少全表扫描、合理索引)、统计信息收集 与必要的索引维护;硬件层面优先 SSD/NVMe、充足内存与多核 CPU 以发挥并行能力。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: CentOS环境下Oracle如何配置最佳
本文地址: https://pptw.com/jishu/765356.html
怎样在CentOS中优化Oracle配置 Oracle配置在CentOS上如何实现

游客 回复需填写必要信息