CentOS 上 Oracle 数据库配置技巧
一 系统准备与基础检查
yum update -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。groupadd oinstall; groupadd dba; useradd -g oinstall -G dba oracle;创建目录 mkdir -p /u01/app/oracle 并赋权 chown -R oracle:oinstall /u01; chmod -R 775 /u01。systemctl stop firewalld && systemctl disable firewalld;将 SELinux 设为 permissive/disabled 并 setenforce 0。生产环境建议精细化放行与策略调优而非直接关闭。二 内核参数与资源限制
fs.aio-max-nr=1048576、fs.file-max=6815744、kernel.shmall=2097152、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;执行 sysctl -p 生效。kernel.shmmax 可设为物理内存的约一半(如 8 GB 内存可设 4294967295),kernel.shmall 按内存与页大小计算(常见为 shmmax/4096)。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 确保会话级生效。三 安装与网络配置
ORACLE_BASE=/u01/app/oracle、ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1(按实际版本调整)、ORACLE_SID=orcl、PATH=$ORACLE_HOME/bin:$PATH、LANG=en_US.UTF-8、NLS_LANG=AMERICAN_AMERICA.AL32UTF8,执行 source 使生效。netca 配置监听器,使用 dbca 创建数据库实例;图形安装或静默响应文件均可。$ORACLE_HOME/network/admin 下配置 listener.ora、tnsnames.ora、sqlnet.ora;客户端以 sqlplus sys/<pwd>@//<host>:1521/orcl as sysdba 测试连接。四 自启动与服务管理
/etc/oratab,将目标实例的 N 改为 Y(如 orcl:/u01/app/oracle/product/19.0.0/dbhome_1:Y)。[Unit] Description=Oracle Database Service;After=network.target[Service] Type=forking;User=oracle;Environment=“ORACLE_HOME=…”;ExecStart=$ORACLE_HOME/bin/dbstart $ORACLE_HOME;ExecStop=$ORACLE_HOME/bin/dbshut $ORACLE_HOME;Restart=on-abort[Install] WantedBy=multi-user.targetsystemctl daemon-reload && systemctl enable --now oracle。oracle-database-preinstall、oracle-database-ee-19c)进行安装与开机管理。五 性能与安全加固要点
vm.swappiness(如 10),为 SGA 配置 HugePages 减少页表开销;SGA/PGA 结合负载设置,必要时启用自动内存管理(AMM/ASMM)。net.core.somaxconn、rmem/wmem 等 TCP 参数;控制最大进程/会话数,使用连接池,避免连接风暴。SELECT *,合理使用索引与分区,减少全表扫描;定期收集统计信息 DBMS_STATS.GATHER_SCHEMA_STATS,利用 AWR/ASH/ADDM 持续诊断。oracle 用户权限、启用审计,及时打补丁与加固 OS/DB。