温馨提示×

centos下oracle怎样设置

小樊
37
2025-11-27 18:52:19
栏目: 云计算

CentOS 下 Oracle 安装与基础配置步骤

一 环境准备

  • 设置主机名并完善 hosts:执行 sudo hostnamectl set-hostname db,在 /etc/hosts 增加条目如:127.0.0.1 db
  • 安装常用依赖:sudo yum install -y binutils compat-libcap1 compat-libstdc+±33 gcc gcc-c++ glibc-devel ksh libaio-devel libgcc libstdc+±devel make sysstat unixODBC unixODBC-devel zip unzip xorg-x11-utils xauth
  • 创建 Oracle 用户与组:sudo groupadd oinstall;sudo groupadd dba;sudo useradd -g oinstall -G dba -m oracle;sudo passwd oracle
  • 创建目录并授权:sudo mkdir -p /u01/app/oracle;sudo chown -R oracle:oinstall /u01;sudo chmod -R 775 /u01
  • 内核与资源限制(示例为 19c 常用值,可按内存调优):
    • /etc/sysctl.conf
      fs.aio-max-nr = 1048576
      fs.file-max = 6815744
      kernel.shmall = 2097152
      kernel.shmmni = 4096
      kernel.sem = 250 32000 100 128
      kernel.shmmax = 2147483648
      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
      执行:sudo 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(追加):
      if [ “$USER” = “oracle” ]; then
      if [ “$SHELL” = “/bin/ksh” ]; then ulimit -p 16384; ulimit -n 65536; else ulimit -u 16384 -n 65536; fi
      fi
      执行:source /etc/profile
  • 防火墙与 SELinux(测试环境常用做法):
    • 防火墙:sudo systemctl stop firewalld;sudo systemctl disable firewalld
    • SELinux:sudo setenforce 0;sudo sed -i ‘s/^SELINUX=.*/SELINUX=permissive/’ /etc/selinux/config(生产环境建议保持 enforcing 并做端口/策略放行)

二 安装 Oracle 19c 两种方式

  • 方式 A RPM 预安装包(推荐,便于依赖与内核参数自动配置)
    1. 上传并安装预安装包:sudo yum localinstall -y oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
    2. 创建目录:sudo mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1;sudo chown -R oracle:oinstall /u01
    3. 以 oracle 用户解压安装介质到目标目录(或使用响应文件静默安装)
    4. 图形界面:执行 ./runInstaller;静默示例:
      ./runInstaller -silent -responseFile /path/to/response_custom.rsp
    5. 安装完成后按提示以 root 执行 /u01/app/oracle/product/19.0.0/dbhome_1/root.sh
  • 方式 B 官方 ZIP 包安装
    1. 以 oracle 用户上传并解压两个 ZIP 到 /u01/app/oracle/
    2. 图形界面:./runInstaller;静默示例:
      ./runInstaller -silent -responseFile /path/to/db_install.rsp
    3. 安装完成后以 root 执行 $ORACLE_HOME/root.sh
  • 说明:19c 也可使用 yum 安装企业版 RPM(oracle-database-ee-19c),安装后可用 systemctl 管理;静默建库可用 dbca -silent

三 监听与数据库实例配置

  • 配置监听:以 oracle 用户执行 netca(图形界面)或编辑 $ORACLE_HOME/network/admin/listener.ora 手动配置;常用监听名 LISTENER,端口 1521
  • 创建数据库实例:
    • 图形界面:执行 dbca
    • 静默示例:
      $ORACLE_HOME/bin/dbca -silent \ -createDatabase \ -templateName General_Purpose.dbc \ -gdbname orcl -sid orcl \ -responseFile NO_VALUE \ -characterSet AL32UTF8
  • 客户端解析:编辑 $ORACLE_HOME/network/admin/tnsnames.ora,示例:
    ORCL =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = db)(PORT = 1521))
    (CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = orcl))
    )
  • 启动与验证:
    • 启动监听:lsnrctl start
    • 登录实例:sqlplus / as sysdba
    • 启动数据库:startup(若已自动启动可省略)
    • 测试连接:sqlplus sys/口令@//db:1521/orcl as sysdba

四 环境变量与自启动

  • Oracle 用户环境变量(写入 /home/oracle/.bashrc/home/oracle/.bash_profile):
    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
    执行:source ~/.bashrc
  • 开机自启(RPM 安装的企业版 19c 可用 systemctl):
    sudo systemctl enable --now oracle-database-ee-19c
  • 手工自启脚本示例(/etc/init.d/oracle):
    #!/bin/bash
    . /home/oracle/.bashrc
    case “$1” in
    start)
    lsnrctl start
    sqlplus / as sysdba <<EOF
    startup
    exit
    EOF
    ;;
    stop)
    sqlplus / as sysdba <<EOF
    shutdown immediate
    exit
    EOF
    lsnrctl stop
    ;;
    *)
    echo “Usage: $0 {start|stop}”
    exit 1
    ;;
    esac
    设置权限与开机项:sudo chmod +x /etc/init.d/oracle;sudo chkconfig --add oracle。

五 常见问题与排查

  • 无法远程连接:确认监听已启动(lsnrctl status)、端口 1521 在防火墙放行、tnsnames.ora 与客户端一致、数据库服务注册到监听(service_register)。
  • 安装/建库失败:检查 $ORACLE_HOME/cfgtoollogs$ORACLE_BASE/diag 下日志;常见为依赖缺失、目录权限、内核参数或内存不足。
  • 字符集与语言:建议数据库字符集 AL32UTF8,客户端 NLS_LANG=AMERICAN_AMERICA.AL32UTF8,避免乱码。
  • 资源限制生效:确保 limits.conf、pam_limits.so、/etc/profile 已配置,并以 oracle 登录后执行 ulimit -a 验证。

0