centos

Oracle在CentOS上如何配置

小樊
40
2025-10-19 16:51:13
栏目: 云计算

Oracle在CentOS上的配置指南(以Oracle 19c为例)

一、系统准备

  1. 硬件要求

    • 确保CentOS系统已更新至最新版本(sudo yum update -y);
    • 硬盘空间:至少预留10GB用于Oracle安装及数据文件;
    • Swap分区:建议不小于2GB(可通过dd if=/dev/zero of=swapfile bs=1G count=2创建,mkswap swapfile格式化,swapon swapfile激活,并添加至/etc/fstab实现开机自启);
    • 内存:建议至少2GB(生产环境需根据负载调整)。
  2. 关闭SELinux与防火墙

    • 临时关闭SELinux:sudo setenforce 0
    • 永久禁用SELinux:编辑/etc/selinux/config,将SELINUX=enforcing改为SELINUX=disabled
    • 临时关闭防火墙:sudo systemctl stop firewalld
    • 禁用防火墙服务:sudo systemctl disable firewalld(若需开放特定端口,可手动配置防火墙规则)。

二、安装必要依赖包

Oracle 19c需要依赖多个系统库,推荐通过Oracle官方预安装RPM简化流程(避免手动安装大量依赖):

  1. 下载预安装RPM:从Oracle官网获取oracle-database-preinstall-19c RPM包(适用于CentOS 7/8);
  2. 安装预安装RPM
    sudo yum localinstall -y oracle-database-preinstall-19c-*.rpm
    
    该RPM会自动安装gcc、libaio、compat-libstdc++等必要依赖。

三、创建Oracle用户与组

  1. 创建组和用户
    sudo groupadd oinstall      # 安装组
    sudo groupadd dba           # 数据库管理员组
    sudo useradd -g oinstall -G dba oracle  # 创建oracle用户,归属oinstall和dba组
    sudo passwd oracle          # 设置oracle用户密码
    
  2. 验证用户信息
    id oracle  # 应显示uid、gid及所属组(oinstall、dba)
    

四、配置系统内核参数

编辑/etc/sysctl.conf,添加或修改以下内核参数(优化系统性能,满足Oracle运行要求):

fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 2147483648  # 物理内存大小(单位:字节,如16GB则为17179869184)
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

使配置生效:

sudo sysctl -p

五、配置Oracle用户环境变量

编辑/home/oracle/.bashrc(oracle用户的个人环境变量),添加以下内容(根据实际安装路径调整):

export ORACLE_BASE=/opt/oracle  # Oracle基础目录
export ORACLE_HOME=$ORACLE_BASE/product/19c/dbhome_1  # Oracle软件目录
export ORACLE_SID=ORCLCDB       # 数据库实例名(需与后续配置一致)
export PATH=$PATH:$ORACLE_HOME/bin  # 添加Oracle命令到PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib  # 库文件路径
export LANG=en_US.UTF-8         # 字符集
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8  # 数据库字符集

使配置生效:

source /home/oracle/.bashrc

六、安装Oracle Database软件

  1. 上传并解压安装包:将Oracle 19c安装包(如LINUX.X64_193000_db_home.zip)上传至服务器,解压至Oracle基础目录:
    unzip LINUX.X64_193000_db_home.zip -d $ORACLE_HOME
    
  2. 运行安装程序:切换至oracle用户,执行安装脚本:
    su - oracle
    cd $ORACLE_HOME/bin
    ./runInstaller
    
    按照向导选择“仅安装数据库软件”“单实例数据库”,指定Oracle基目录和软件目录,完成安装(安装过程中会提示配置root用户权限,需输入root密码)。

七、配置数据库实例

  1. 使用DBCA创建数据库

    dbca  # 启动数据库配置助手
    

    按照向导选择“创建数据库”“自定义配置”,设置全局数据库名(如ORCLCDB)、SID(与ORACLE_SID一致)、字符集(推荐AL32UTF8),配置管理员密码(如Oracle123),完成数据库创建。

  2. 验证数据库状态

    sqlplus / as sysdba  # 以sysdba身份登录
    SQL> SELECT status FROM v$instance;  # 检查实例状态(应为OPEN)
    SQL> SHOW PDBS;  # 查看PDB状态(CDB模式下)
    

八、配置自动启动

  1. 修改/etc/oratab文件
    编辑/etc/oratab,将对应数据库条目的最后一位从N改为Y(允许数据库随系统启动):
    ORCLCDB:/opt/oracle/product/19c/dbhome_1:Y
    
  2. 创建启动脚本
    • 编辑/etc/rc.d/rc.local,添加以下内容(启动监听和服务):
      su oracle -lc "/opt/oracle/product/19c/dbhome_1/bin/lsnrctl start"
      su oracle -lc "/opt/oracle/product/19c/dbhome_1/bin/dbstart"
      
    • 赋予执行权限:
      chmod +x /etc/rc.d/rc.local
      
  3. 创建systemd服务(可选,推荐)
    • 创建服务文件/etc/systemd/system/oracle19c.service
      [Unit]
      Description=Oracle Database 19c Service
      After=network.target
      
      [Service]
      Type=forking
      User=oracle
      Environment="ORACLE_HOME=/opt/oracle/product/19c/dbhome_1"
      ExecStart=/opt/oracle/product/19c/dbhome_1/bin/dbstart $ORACLE_HOME
      ExecStop=/opt/oracle/product/19c/dbhome_1/bin/dbshut $ORACLE_HOME
      Restart=on-failure
      
      [Install]
      WantedBy=multi-user.target
      
    • 启用并启动服务:
      systemctl daemon-reload
      systemctl enable oracle19c
      systemctl start oracle19c
      

九、常见问题排查

  1. 监听器无法启动:检查$ORACLE_HOME/network/admin/listener.ora配置(确保主机名与服务器IP一致),执行lsnrctl status查看状态。
  2. 无法创建数据库:确认oracle用户对安装目录有读写权限(chown -R oracle:oinstall /opt/oracle),检查内核参数是否符合要求。
  3. 字符集乱码:确保NLS_LANG设置为AMERICAN_AMERICA.AL32UTF8,安装时选择正确的字符集。

0
看了该问题的人还看了