温馨提示×

oracle在centos上如何安装配置

小樊
41
2025-12-07 13:45:24
栏目: 云计算

在 CentOS 上安装与配置 Oracle 19c 的完整步骤

一 环境准备与系统要求

  • 操作系统与资源:建议使用 CentOS 7/8,内存至少 2 GB(推荐 4 GB+),安装目录预留 20 GB+ 磁盘空间。Swap 建议:内存 1–2 GB 时设为内存的 1.5 倍2–16 GB 时与内存相同;>16 GB 时设为 16 GB
  • 更新系统与安装依赖:
    • 更新系统:sudo yum update -y
    • 安装依赖: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
  • 创建 Oracle 用户与组:
    • sudo groupadd oinstall
    • sudo groupadd dba
    • sudo useradd -g oinstall -G dba oracle
    • sudo passwd oracle
  • 创建安装目录并授权:
    • sudo mkdir -p /u01/app/oracle
    • sudo chown -R oracle:oinstall /u01
    • sudo chmod -R 775 /u01
  • 说明:若使用 Oracle 11g,部分环境可能需要将系统标识伪装为 RHEL(修改 /etc/redhat-release),现代环境通常不必;如采用该方式,请务必在变更前做好备份。

二 内核参数与资源限制

  • 内核参数(/etc/sysctl.conf):
    • fs.aio-max-nr = 1048576
    • fs.file-max = 6815744
    • kernel.shmall = 2097152
    • kernel.shmmax = 4294967295
    • 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
  • 可选:在 /etc/profile 为 oracle 用户设置 ulimit(便于控制台会话继承)。

三 安装 Oracle 19c 软件

  • 准备安装介质:从 Oracle 官方下载适用于 Linux x86_6419c 安装包(如:LINUX.X64_193000_db_home.zip),上传至 /u01/app/oracle 并解压:
    • cd /u01/app/oracle
    • unzip LINUX.X64_193000_db_home.zip
  • 以 oracle 用户配置环境变量(~/.bash_profile 或 ~/.bashrc):
    • export ORACLE_BASE=/u01/app/oracle
    • export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
    • export ORACLE_SID=orcl
    • export PATH=$PATH:$ORACLE_HOME/bin
    • export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
    • 使生效:source ~/.bash_profile
  • 图形化安装(需 X11 转发或 VNC):
    • xhost +
    • su - oracle
    • cd $ORACLE_HOME
    • ./runInstaller
    • 按向导选择安装类型(典型/高级)、指定 ORACLE_BASE/ORACLE_HOME、创建 Inventory 目录,完成安装后以 root 执行提示的 root.sh 脚本。

四 创建数据库实例与网络配置

  • 使用 DBCA 创建数据库(图形界面或静默):
    • 图形化:su - oracle;执行 dbca,按向导选择“创建数据库”,设置 SID=orcl、字符集 AL32UTF8、存储与口令策略等。
    • 静默示例:
      • $ORACLE_HOME/bin/dbca -silent
        -createDatabase
        -templateName General_Purpose.dbc
        -gdbname orcl -sid orcl
        -responseFile NO_VALUE
        -characterSet AL32UTF8
  • 配置监听与网络服务:
    • 监听:su - oracle;执行 netca,按向导完成监听(默认端口 1521)。
    • 客户端解析(可选):在 $ORACLE_HOME/network/admin/tnsnames.ora 添加条目:
      • ORCL =
        • (DESCRIPTION =
          • (ADDRESS = (PROTOCOL = TCP)(HOST = your_host)(PORT = 1521))
          • (CONNECT_DATA =
            • (SERVER = DEDICATED)
            • (SERVICE_NAME = orcl)))
  • 防火墙放行(若启用):
    • CentOS 7/8:sudo firewall-cmd --add-port=1521/tcp --permanent && sudo firewall-cmd --reload

五 启动验证与开机自启

  • 启停与状态检查:
    • 监听:lsnrctl start|stop|status
    • 数据库:sqlplus / as sysdba → startup / shutdown immediate
  • 开机自启(推荐两种方式,二选一或并用):
    • 使用 /etc/oratab 与系统服务脚本(传统方式):
      • 编辑 /etc/oratab:将 orcl:/u01/app/oracle/product/19.0.0/dbhome_1:Y
      • 使用 dbstart/dbshut 配合系统服务或 /etc/rc.local 调用(示例思路:su - oracle -lc “dbstart $ORACLE_HOME”)。
    • 使用 systemd 服务(示例单元文件 /etc/systemd/system/oracle.service):
      • [Unit]
        • Description=Oracle Database Service
        • After=network.target
      • [Service]
        • Type=simple
        • User=oracle
        • Environment=“ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1”
        • Environment=“ORACLE_SID=orcl”
        • ExecStart=/u01/app/oracle/product/19.0.0/dbhome_1/bin/dbstart $ORACLE_HOME
        • ExecStop=/u01/app/oracle/product/19.0.0/dbhome_1/bin/dbshut $ORACLE_HOME
        • RemainAfterExit=yes
      • [Install]
        • WantedBy=multi-user.target
      • 启用:sudo systemctl daemon-reload && sudo systemctl enable --now oracle
  • 验证要点:
    • lsnrctl status 应看到监听端口 1521SERVICE_NAME=orcl
    • sqlplus / as sysdba 能登录;select name, open_mode from v$database; 应返回 OPEN
    • 远程测试:sqlplus sys/password@//your_host:1521/orcl as sysdba 或 sqlplus username/password@orcl
  • 常见问题与日志定位:
    • 监听/实例问题优先查看 $ORACLE_HOME/diag/ 下的 alerttrace 日志,结合 lsnrctl statustnsping 诊断网络与服务注册。

0