温馨提示×

oracle在centos如何高效配置

小樊
36
2025-11-27 18:57:15
栏目: 云计算

高效配置 Oracle 于 CentOS 的实操清单

一 系统准备与基础配置

  • 资源基线:内存至少2GB、Swap 至少2GB、可用磁盘建议≥10GB;选择CentOS 7/8 x86_64,并准备 Oracle 安装介质(如 19c11gR2)。
  • 用户与目录:创建 oinstall/dba 组与 oracle 用户;创建目录 /u01/app/oracle(及子目录 product/19.0.0/dbhome_1oradata),并赋权。
  • 依赖包:安装 gcc、make、binutils、glibc-devel、ksh、libaio、libaio-devel、libstdc+±devel、sysstat、unixODBC、unzip 等。
  • 系统标识与访问控制:部分安装器对 CentOS 识别有限,必要时将 /etc/redhat-release 临时改为 Red Hat Enterprise Linux 7.x;生产环境不建议直接关闭 firewalld/SELinux,应仅开放 1521 端口并做最小权限配置。
  • 主机名与解析:设置主机名(如 db),并在 /etc/hosts 中写入本机 IP 与主机名映射,避免监听与连接异常。

二 内核与资源限制优化

  • 内核参数(/etc/sysctl.conf):
    • 共享内存与信号量:
      • kernel.shmmax ≈ 物理内存×0.85(单位 Byte,示例:16GB 内存可设 13743895347
      • kernel.shmall = shmmax / 4096
      • kernel.shmmni = 4096
      • kernel.sem = 250 32000 100 128
    • 文件与 AIO:fs.file-max = 6815744fs.aio-max-nr = 1048576
    • 网络:net.ipv4.ip_local_port_range = 9000 65500net.core.rmem_default = 262144net.core.rmem_max = 4194304net.core.wmem_default = 262144net.core.wmem_max = 1048576
    • 内存回收:vm.swappiness = 10
    • 使配置生效:sysctl -p
  • 资源限制(/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
    • /etc/profile 为 oracle 用户设置:ulimit -u 16384 -n 65536
  • 大页(HugePages,可选但强烈建议):
    • 计算建议值(示例):HugePages ≈ (SGA_TARGET + 2GB) / Hugepage_size;先预留充足内存,避免 OOM。
    • 关闭透明大页:echo never > /sys/kernel/mm/transparent_hugepage/enabled
    • /etc/default/grub 的 GRUB_CMDLINE_LINUX 加入 default_hugepagesz=2M hugepagesz=2M hugepages=N,执行 grub2-mkconfig -o /boot/grub2/grub.cfg 后重启。

三 安装与实例创建

  • 环境变量(/home/oracle/.bashrc 或 .bash_profile):
    • export ORACLE_BASE=/u01/app/oracle
    • export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1(11g 路径示例:/u01/app/oracle/product/11.2.0/db_1
    • export ORACLE_SID=orclexport ORACLE_UNQNAME=orcl
    • export PATH=$ORACLE_HOME/bin:$PATHexport LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
    • export LANG=en_US.UTF-8export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
  • 图形/静默安装:
    • 图形界面:以 oracle 用户执行 ./runInstaller 按向导完成。
    • 静默安装 19c RPM 预安装包:yum install -y oracle-database-preinstall-19c-*.rpm
    • 静默建库示例:
      • dbca -silent -createDatabase -templateName General_Purpose.dbc -gdbname orcl -sid orcl -responseFile NO_VALUE -characterSet AL32UTF8
  • 监听与网络:
    • 配置监听:netca(或手工编辑 $ORACLE_HOME/network/admin/listener.ora
    • 客户端解析:tnsnames.ora 中配置服务名指向 (ADDRESS = (PROTOCOL=TCP)(HOST=db)(PORT=1521))
    • 验证:lsnrctl statussqlplus sys/oracle@orcl as sysdba

四 数据库内存与连接优化

  • 自动内存管理(推荐):
    • ALTER SYSTEM SET memory_target = 12G SCOPE=SPFILE;(示例值,需小于物理内存并预留 OS 与 PGA)
    • ALTER SYSTEM SET memory_max_target = 12G SCOPE=SPFILE;
    • 重启后生效,后续由 Oracle 自动在 SGA/PGA 间分配。
  • 手动内存分配(如不使用 AMM):
    • ALTER SYSTEM SET sga_target = 8G SCOPE=BOTH;
    • ALTER SYSTEM SET pga_aggregate_target = 2G SCOPE=BOTH;
  • 日志缓冲区:ALTER SYSTEM SET log_buffer = 64M SCOPE=BOTH;(OLTP 可适当增大)
  • 进程与会话:
    • ALTER SYSTEM SET processes = 500 SCOPE=SPFILE;
    • ALTER SYSTEM SET sessions = 555 SCOPE=SPFILE;(sessions 通常 = processes×1.1 + 5)
  • 并发与连接:结合应用压测设置合理的 processes/sessions,避免连接风暴;使用连接池与 SCAN/VIP 提升高可用与扩展。

五 存储 I O 与 SQL 层优化及监控

  • 存储与文件系统:优先 SSD/NVMe;使用 XFS/ext4,挂载选项建议 noatime,nodiratime,barrier=1;重做/归档/数据文件分盘,避免 I/O 争用。
  • 表空间与段:为 SYSTEM/TEMP/UNDO 单独规划;按业务增长设置 AUTOEXTEND 与合理 MAXSIZE
  • 索引与 SQL:
    • 为高频过滤/关联列建立合适索引,避免 *SELECT ,使用绑定变量减少硬解析;
    • 通过 EXPLAIN PLAN / DBMS_XPLANSQL Tuning Advisor 持续优化;
    • 大表按时间/范围做分区,配合分区索引降低扫描与维护成本。
  • 统计信息与维护:定期收集统计信息 EXEC DBMS_STATS.GATHER_SCHEMA_STATS(ownname=>'SCHEMA', estimate_percent=>DBMS_STATS.AUTO_SAMPLE_SIZE);;按需重建/合并碎片索引。
  • 监控与诊断:利用 AWR/ASH/ADDM 定期分析瓶颈(Top SQL、等待事件、I/O 等),结合 OEM 或自建看板持续观测。

0