Linux 上安装 Oracle 数据库的标准流程
一 准备与规划
- 版本与介质
- 常见选择:Oracle Database 19c(Linux x86-64)。从官方渠道获取安装介质(ZIP 安装包或 RPM 包)。示例 RPM 包名:oracle-database-ee-19c-1.0-1.x86_64.rpm;预安装包:oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm。下载地址:Oracle Software Downloads。
- 系统环境
- 建议使用 RHEL/CentOS/Oracle Linux 7/8 等受支持发行版,确保 内存、磁盘、swap 满足最低要求(生产环境建议更高规格)。
- 目录规划
- 约定目录:以 /u01/app 为 Oracle 基目录(对应环境变量 ORACLE_BASE),安装基目录如 /u01/app/oracle/product/19c/dbhome_1(对应 ORACLE_HOME)。
- 网络与主机
- 配置 /etc/hosts,确保主机名可解析;规划监听端口 1521 与数据库 SID/服务名。
二 系统前置配置
- 创建用户与组
- 建议创建组:oinstall、dba(可选:oper、backupdba、dgdba、kmdba、racdba、asmdba 等用于细化权限)。创建用户 oracle 并加入相应组。
- 资源与 Shell 限制
- /etc/security/limits.conf 示例:
- oracle soft nproc 2047
- oracle hard nproc 16384
- oracle soft nofile 1024
- oracle hard nofile 65536
- oracle soft stack 10240
- oracle hard stack 32768
- /etc/pam.d/login 加入:session required pam_limits.so
- Shell 配置(Bash/Ksh):在 /etc/profile 或 oracle 用户 profile 中设置 ulimit -u 16384 -n 65536。
- 内核参数
- 建议写入 /etc/sysctl.d/97-oracle-database-sysctl.conf(或 sysctl.conf),示例:
- fs.file-max = 6815744
- fs.aio-max-nr = 1048576
- 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
- 如采用共享内存,设置 kernel.shmall / kernel.shmmax(依据物理内存与页大小计算)。执行 sysctl -p 生效。
- 依赖包与预安装 RPM
- 使用 oracle-database-preinstall-19c 自动配置依赖、内核参数与用户组(RHEL/CentOS 7 系列常用)。也可手动安装常用依赖:bc、binutils、compat-libcap1、compat-libstdc+±33、elfutils-libelf、elfutils-libelf-devel、fontconfig-devel、glibc、glibc-devel、ksh、libaio、libaio-devel、libX11、libXau、libXi、libXtst、libXrender、libgcc、libstdc++、libstdc+±devel、make、sysstat、unzip、xorg-x11-utils、xorg-x11-xauth 等。
- 其他系统设置
- 关闭或配置防火墙(测试环境可临时关闭,生产环境建议放通 1521 等必要端口)。
- 处理 SELinux(测试环境可 setenforce 0 并修改 /etc/selinux/config;生产环境建议保持 enforcing 并做策略放行)。
- 禁用 透明大页 Transparent HugePages(Oracle 推荐):检查命令:cat /sys/kernel/mm/transparent_hugepage/enabled;在 /etc/default/grub 的 GRUB_CMDLINE_LINUX 增加 transparent_hugepage=never,执行 grub2-mkconfig -o /boot/grub2/grub.cfg 并重启。
三 安装方式
- 方式 A RPM 静默安装(推荐用于标准化与自动化)
- 安装预安装包与数据库软件:
- rpm -ivh oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
- rpm -ivh oracle-database-ee-19c-1.0-1.x86_64.rpm
- 执行数据库初始化(创建 CDB/PDB 等):
- /etc/init.d/oracledb_ORCLCDB-19c configure
- 安装完成后,软件与数据库即完成部署,可直接进入监听与连接测试。
- 方式 B 图形化安装(runInstaller)
- 以 oracle 用户解压安装介质并启动安装器:
- unzip linuxx64_19c_database_*.zip
- cd database
- ./runInstaller
- 在图形向导中选择安装类型(如“仅安装数据库软件”或“创建并配置数据库”)、基目录、Inventory 目录、数据库选项、字符集等;安装过程中按提示以 root 执行脚本(如 orainstRoot.sh、root.sh)。
- 方式 C 仅软件安装 + DBCA 建库
- 图形化或静默仅安装数据库软件;随后使用 dbca 创建数据库实例(可交互或响应文件静默)。适合需要自定义存储、参数、PDB 的场景。
四 安装后配置与启停
- 环境变量
- 在 /home/oracle/.bash_profile 或 /etc/profile.d/oracle_env.sh 中设置:
- export ORACLE_BASE=/u01/app/oracle
- export ORACLE_HOME=$ORACLE_BASE/product/19c/dbhome_1
- export ORACLE_SID=ORCLCDB
- export ORACLE_PDB_SID=ORCLPDB1(如创建 PDB)
- export PATH=$ORACLE_HOME/bin:$PATH
- export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
- 监听与网络
- 配置并启动监听:lsnrctl start;如需自定义监听,编辑 $ORACLE_HOME/network/admin/listener.ora;客户端可使用 tnsnames.ora 配置服务别名。
- 启动与停止数据库
- 以 oracle 用户登录:sqlplus / as sysdba
- 启动:startup
- 关闭:shutdown immediate
- 常用命令:lsnrctl status(查看监听)、dbca(建库/管理)、netca(配置监听)。
- 自启动(可选)
- 配置 /etc/oratab 将实例启动标志改为 Y,并使用系统服务或 dbstart/dbshut 实现开机自启。