温馨提示×

oracle在centos上怎么配置好

小樊
46
2025-11-27 18:54:11
栏目: 云计算

在 CentOS 上配置 Oracle 的实操清单

一 环境准备与系统要求

  • CentOS 7/8 x86_64 为例,准备至少 2GB 内存≥2GB Swap≥10GB 磁盘(生产环境请按负载提高规格)。设置主机名并完善 /etc/hosts(示例:将 db 映射到服务器内网 IP),便于监听与客户端解析。安装常用依赖(示例):binutils、compat-libcap1、compat-libstdc++、gcc、gcc-c++、glibc-devel、ksh、libaio-devel、libgcc、libstdc+±devel、make、sysstat、unixODBC、unixODBC-devel、zip、unzip。创建 Oracle 用户与组:oinstall、dba,并创建目录 /u01/app/oracle(属主 oracle:oinstall,权限 775)。注意:部分旧版安装器在识别 CentOS 时可能需要将 /etc/redhat-release 临时伪装为 RHEL 7.x 才能继续(安装完成后可恢复)。

二 内核参数与资源限制

  • 内核参数(/etc/sysctl.conf,执行 sysctl -p 生效):
    • fs.aio-max-nr = 1048576
    • fs.file-max = 6815744
    • kernel.shmall = 2097152
    • kernel.shmmni = 4096
    • kernel.sem = 250 32000 100 128
    • kernel.shmmax = 建议设为物理内存一半(字节),示例:2147483648(2GB)
    • 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;在 /etc/profile 为 oracle 用户设置 ulimit(示例:ulimit -u 16384 -n 65536)。以上参数能避免打开文件数、进程数、共享内存不足导致的安装或运行异常。

三 安装与建库

  • 安装方式二选一:
    • RPM 方式(19c 常用):上传并安装 oracle-database-preinstall-19c 元包(自动配置依赖与内核参数),然后安装数据库 RPM(可从官方仓库或介质获取),最后用 /etc/init.d/oracle-database-ee-19c start 启动,或配置为系统服务自启。
    • 图形/静默安装(ZIP 方式):以 oracle 用户解压安装介质,执行 ./runInstaller(图形界面按向导;静默可用响应文件或命令行参数)。安装过程中按需配置 ORACLE_BASE、ORACLE_HOME、ORACLE_SID
  • 监听与实例:
    • 使用 netca 配置监听(LISTENER),或用文本编辑 $ORACLE_HOME/network/admin/listener.oratnsnames.ora
    • 使用 dbca 建库(交互或静默)。静默示例:
      • $ORACLE_HOME/bin/dbca -silent
        -createDatabase
        -templateName General_Purpose.dbc
        -gdbname orcl -sid orcl
        -responseFile NO_VALUE
        -characterSet AL32UTF8
  • 环境变量(建议写入 /home/oracle/.bashrc 或 /etc/profile.d/oracle.sh):
    • export ORACLE_BASE=/u01/app/oracle
    • export ORACLE_HOME=$ORACLE_BASE/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
  • 启动与验证:
    • 监听:lsnrctl start
    • 实例:sqlplus / as sysdba → startup
    • 连接测试:sqlplus sys/口令@//主机名/服务名 as sysdba;或 sqlplus /nolog → conn / as sysdba。

四 安全与网络建议

  • 生产环境不建议直接关闭防火墙与 SELinux。更稳妥做法:
    • firewalld:开放 1521(Oracle 监听)、5500(EM Express,如启用)等端口,或按业务最小暴露原则放通来源网段。
    • SELinux:保持 enforcing,必要时仅对 Oracle 相关进程/目录设置针对性的布尔值与类型(如 oracle_db_t),减少攻击面。
  • 资源与稳定性:
    • 合理设置 SGA/PGA(如 SGA_TARGET、PGA_AGGREGATE_TARGET),避免占用过多物理内存导致系统换页。
    • 使用 /etc/oratab 管理实例启停,配置 systemd 或传统脚本实现开机自启与有序停机。
    • 定期备份(RMAN/Data Guard/导出),并保留 Alert 日志Listener 日志 以便排障。

五 常见问题与快速排查

  • 安装器无法识别系统:临时将 /etc/redhat-release 内容改为 Red Hat Enterprise Linux 7.x (Core) 后重试(完成后可恢复)。
  • 监听/连接失败:检查 listener.ora/tnsnames.ora 主机名与端口、服务器防火墙/云安全组、客户端 tnsnames.ora 与服务名一致性;用 lsnrctl statustnsping 定位。
  • 打开文件/进程数不足:复核 limits.confpam_limits.so,确认已对新登录会话生效(必要时重登 oracle 用户)。
  • 字符集与 NLS:建议数据库字符集 AL32UTF8,客户端 NLS_LANG=AMERICAN_AMERICA.AL32UTF8,避免中文乱码。
  • 日志与诊断:优先查看 $ORACLE_BASE/diag/rdbms/ 下对应实例的 trace/alert 目录,结合 ADRDDM 做性能与故障分析。

0