温馨提示×

Oracle在CentOS中的配置步骤是什么

小樊
37
2025-11-23 19:40:20
栏目: 云计算

在 CentOS 上配置 Oracle 的标准流程

以下流程覆盖 CentOS 7/8 上部署 Oracle 11g/12c/19c 的关键环节,包含系统准备、内核与资源限制、用户与目录、安装与建库、网络与自启、验证与常见问题处理,便于快速落地与排错。


一 环境准备与系统优化

  • 设置主机名与解析
    • 设置主机名:hostnamectl set-hostname db
    • 配置 /etc/hosts:echo "服务器IP 主机名" >> /etc/hosts
  • 安装依赖包
    • CentOS 7 推荐:yum -y --nogpgcheck install oracle-rdbms-server-12cR1-preinstall.x86_64(自动完成依赖与内核参数建议)
    • CentOS 8 常用:dnf install -y bc binutils elfutils-libelf elfutils-libelf-devel fontconfig-devel glibc glibc-devel ksh libaio libaio-devel libXrender libX11 libXi libXtst libgcc libstdc++ libstdc++-devel libxcb make net-tools smartmontools sysstat unzip libnsl libnsl2
  • 关闭透明大页(THP,Oracle 推荐)
    • 检查:cat /sys/kernel/mm/transparent_hugepage/enabled
    • 禁用:在 /etc/default/grubGRUB_CMDLINE_LINUX 增加 transparent_hugepage=never,执行 grub2-mkconfig -o /boot/grub2/grub.cfg 并重启
  • 防火墙与 SELinux(测试环境常用做法)
    • 防火墙:systemctl stop firewalld && systemctl disable firewalld
    • SELinux:setenforce 0 并编辑 /etc/selinux/configSELINUX=enforcing 改为 SELINUX=permissivedisabled

二 创建用户组与目录并配置资源限制

  • 创建用户与组
    • groupadd -g 6001 oinstall
    • groupadd -g 6002 dba
    • useradd -u 6001 -g oinstall -G dba oracle
    • passwd oracle
  • 创建目录并赋权
    • mkdir -p /opt/oracle/product/19c/dbhome_1 /u02/oradata
    • chown -R oracle:oinstall /opt/oracle /u02
  • 资源限制
    • /etc/security/limits.d/30-oracle.conf
      oracle soft nofile 1024
      oracle hard nofile 65536
      oracle soft nproc 16384
      oracle hard nproc 16384
      oracle soft stack 10240
      oracle hard stack 32768
      oracle soft memlock 134217728
      oracle hard memlock 134217728
      
    • /etc/pam.d/login:session required pam_limits.so
  • 内核参数
    • /etc/sysctl.d/98-oracle.conf
      fs.file-max = 6815744
      kernel.sem = 250 32000 100 128
      kernel.shmmni = 4096
      kernel.shmall = 1073741824
      kernel.shmmax = 4398046511104
      fs.aio-max-nr = 1048576
      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 --system

三 安装 Oracle 软件与创建数据库

  • 准备安装介质
    • 方式 A RPM(19c 便捷):yum localinstall -y oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
    • 方式 B 图形/静默安装:上传并解压安装包(如 19c:unzip LINUX.X64_193000_db_home.zip -d /opt/oracle/product/19c/dbhome_1),进入目录执行 ./runInstaller
  • 图形或静默安装
    • 图形界面:直接用 ./runInstaller
    • 静默安装(示例):./runInstaller -silent -responseFile /path/to/response.rsp
  • 创建监听器与数据库
    • 监听:netca(图形)或静默配置
    • 建库:dbca(图形)或静默建库(示例)
      dbca -silent \
        -createDatabase \
        -templateName General_Purpose.dbc \
        -gdbname ORCLCDB -sid ORCLCDB \
        -responseFile NO_VALUE \
        -characterSet AL32UTF8 \
        -createAsContainerDatabase true \
        -numberOfPDBs 1 \
        -pdbName PDB1 \
        -sysPassword <口令> \
        -systemPassword <口令>
      
  • 安装后脚本
    • 以 root 执行安装向导提示的 root.sh 脚本(通常位于 $ORACLE_HOME/root.sh

四 网络、服务与自启动配置

  • 监听与本地命名解析
    • 监听状态:lsnrctl status;启动:lsnrctl start
    • 客户端解析:在客户端配置 tnsnames.ora,确保服务名与 GLOBAL_DBNAME 一致
  • 开机自启
    • 方式一(推荐)systemd 服务
      cat > /etc/systemd/system/oracle.service <<'EOF'
      [Unit]
      Description=Oracle Database Service
      After=network.target
      
      [Service]
      Type=simple
      User=oracle
      Environment="ORACLE_HOME=/opt/oracle/product/19c/dbhome_1"
      Environment="ORACLE_SID=ORCLCDB"
      ExecStart=/opt/oracle/product/19c/dbhome_1/bin/dbstart $ORACLE_HOME
      ExecStop=/opt/oracle/product/19c/dbhome_1/bin/dbshut $ORACLE_HOME
      ExecStartPre=/opt/oracle/product/19c/dbhome_1/bin/lsnrctl start
      ExecStopPost=/opt/oracle/product/19c/dbhome_1/bin/lsnrctl stop
      RemainAfterExit=yes
      
      [Install]
      WantedBy=multi-user.target
      EOF
      systemctl daemon-reload
      systemctl enable --now oracle
      
    • 方式二 RPM 自带脚本(如已安装 oracle-database-ee-19c)
      • 配置并初始化:/etc/init.d/oracledb_ORCLCDB-19c configure
      • 启用自启:chkconfig oracledb_ORCLCDB-19c on
  • 防火墙放行
    • 放行 1521:firewall-cmd --add-port=1521/tcp --permanent && firewall-cmd --reload(若启用防火墙)

五 验证与常见问题处理

  • 基本验证
    • 登录:sqlplus / as sysdba
    • 启动/关闭:startup / shutdown immediate
    • 监听:lsnrctl status
    • 版本与字符集:
      select * from v$version;
      select name, open_mode from v$database;
      select userenv('language') from dual;
      
  • 常见问题
    • 主机名解析错误:确保 /etc/hosts 正确绑定 IP 与主机名,否则建库/监听会报错
    • 透明大页未禁用:会导致性能或节点异常,按上文步骤禁用并重启
    • 依赖或兼容性错误(19c 在 CentOS 8):安装 compat-libstdc++-33compat-libcap1,必要时设置环境变量 export CV_ASSUME_DISTID=RHEL7.6 再执行安装
    • 远程连接失败:确认监听已启动、端口 1521 放行、客户端 tnsnames.ora 配置正确、数据库处于 OPEN 状态

0