温馨提示×

oracle数据库centos环境搭建指南

小樊
45
2025-11-21 20:31:22
栏目: 云计算

CentOS 环境搭建 Oracle 数据库指南

一 环境准备与系统要求

  • 操作系统与版本:建议使用 CentOS 7/8(示例以 CentOS 7 为主,内核与软件源以 7 为准)。
  • 硬件与存储:至少 2 GB RAM(建议 4 GB+),安装目录预留 10 GB+(建议 20 GB+)。
  • 交换分区 Swap(建议值):
    • 内存 1–2 GB:Swap = 内存的 1.5 倍
    • 内存 2–16 GB:Swap = 内存大小
    • 内存 >16 GB:Swap = 16 GB
  • 基础准备:更新系统、安装常用工具(如 unzip)、确保磁盘与网络可用。
  • 说明:在部分环境中,为通过 Oracle 安装器检查,可能需要将系统标识临时伪装为 Red Hat Enterprise Linux 7.x(不建议在生产环境长期修改,仅作兼容性处理)。

二 安装前系统配置

  • 创建 Oracle 用户与组
    • 命令:
      • sudo groupadd oinstall
      • sudo groupadd dba
      • sudo useradd -g oinstall -G dba oracle
      • sudo passwd oracle
  • 安装依赖包(最小化常用集合)
    • 命令:
      • sudo yum install -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
  • 内核参数(/etc/sysctl.conf)
    • 建议值:
      • fs.aio-max-nr = 1048576
      • fs.file-max = 6815744
      • kernel.shmall = 2097152
      • kernel.shmmax = 4294967295(或按物理内存设置,至少 2 GB)
      • 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
  • 用户资源限制(/etc/security/limits.conf)
    • oracle soft nproc 2047
    • oracle hard nproc 16384
    • oracle soft nofile 1024
    • oracle hard nofile 65536
    • oracle soft stack 10240
  • PAM 与登录限制(/etc/pam.d/login)
    • session required pam_limits.so
  • 创建 Oracle 目录与权限
    • sudo mkdir -p /u01/app/oracle
    • sudo chown -R oracle:oinstall /u01
    • sudo chmod -R 775 /u01
  • 可选:SELinux 与防火墙(测试环境常用做法)
    • 临时:sudo setenforce 0
    • 永久:编辑 /etc/selinux/config,将 SELINUX=enforcing 改为 SELINUX=permissive/disabled
    • 防火墙:sudo systemctl stop firewalld && sudo systemctl disable firewalld(生产环境请改为放行端口)

三 Oracle 19c 安装与建库

  • 准备安装介质
    • 方式 A(推荐,预安装 RPM):安装 Oracle 提供的预安装包(oracle-database-preinstall-19c)以自动配置依赖与内核参数,然后解压 19c 安装包到 $ORACLE_HOME。
    • 方式 B(图形/静默):从 Oracle 官网下载 Linux x86_64 的 19c 安装包,上传至 /u01/app/oracle 并解压。
  • 图形化安装(需 GUI 与 VNC/远程桌面)
    • 切换用户:su - oracle
    • 进入解压目录:cd /u01/app/oracle/LINUX.X64_193000_db_home
    • 启动安装器:./runInstaller(按向导完成配置)
  • 静默安装(示例)
    • 准备响应文件或使用最小化模板,执行:
      • ./runInstaller -silent -responseFile /path/to/response.rsp
  • 建库方式
    • 使用 DBCA 图形化:dbca(按向导创建数据库,建议字符集 AL32UTF8
    • 使用 DBCA 静默建库(示例):
      • $ORACLE_HOME/bin/dbca -silent -createDatabase \ -templateName General_Purpose.dbc \ -gdbname orcl -sid orcl \ -characterSet AL32UTF8 \ -responseFile NO_VALUE
  • 安装后执行 root 脚本
    • 按安装器提示,以 root 执行 $ORACLE_HOME/root.sh(通常位于 oraInventory 目录下的脚本)。

四 网络监听与远程访问

  • 配置监听器(listener.ora)
    • 文件路径:$ORACLE_HOME/network/admin/listener.ora
    • 示例:
      • LISTENER =
        • (DESCRIPTION_LIST =
          • (DESCRIPTION =
            • (ADDRESS = (PROTOCOL = TCP)(HOST = your_host_name_or_ip)(PORT = 1521))
          • )
        • )
  • 启动/检查监听
    • lsnrctl start | status
  • 客户端与服务端网络文件
    • 服务端/客户端可配置 $ORACLE_HOME/network/admin/tnsnames.ora 与 sqlnet.ora,确保解析与服务名一致。
  • 防火墙与连通性
    • 放行 1521/TCP(生产环境不建议直接关闭防火墙):
      • sudo firewall-cmd --add-port=1521/tcp --permanent && sudo firewall-cmd --reload
    • 远程测试:sqlplus sys/YourPassword@//your_host:1521/orcl as sysdba。

五 服务自启与日常运维

  • 开机自启数据库与监听
    • 修改 /etc/oratab:将实例行末尾的 N 改为 Y(例如:orcl:/u01/app/oracle/product/19.0.0/dbhome_1:Y)
    • 创建 systemd 服务(/etc/systemd/system/oracle.service):
      • [Unit]
        • Description=Oracle Database Service
        • After=network.target
      • [Service]
        • Type=forking
        • User=oracle
        • Environment=“ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1”
        • ExecStart=$ORACLE_HOME/bin/dbstart $ORACLE_HOME
        • ExecStop=$ORACLE_HOME/bin/dbshut $ORACLE_HOME
        • Restart=on-abort
      • [Install]
        • WantedBy=multi-user.target
    • 启用与启动:
      • sudo systemctl daemon-reload
      • sudo systemctl enable oracle
      • sudo systemctl start oracle
  • 常用运维命令
    • 登录数据库:sqlplus / as sysdba
    • 启动/关闭:startup | shutdown immediate
    • 监听管理:lsnrctl start/stop/status
  • 日志与排错
    • 安装与建库日志:$ORACLE_HOME/cfgtoollogs
    • 数据库告警日志与跟踪:位于 $ORACLE_BASE/diag/rdbms///trace(Alert.log 为首要排查对象)。

0