在 CentOS 上搭建 Oracle 环境的实用步骤
一 环境准备与系统要求
sudo yum update -y && sudo yum install -y unzip。二 两种安装方式概览
三 方式 A RPM 快速安装 Oracle 19c(CentOS 7 示例)
sudo yum localinstall -y oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm(如缺少依赖,使用 yum localinstall 可自动解决依赖)。sudo yum localinstall -y oracle-database-ee-19c-1.0-1.x86_64.rpm(主包会创建软件目录,如 /opt/oracle/product/19c/dbhome_1)。su - oracle/opt/oracle/product/19c/dbhome_1/bin/dbca -silent -createDatabase \ -templateName General_Purpose.dbc \ -gdbname ORCLCDB -sid ORCLCDB \ -characterSet AL32UTF8 \ -sysPassword Oracle123! -systemPassword Oracle123! \ -createAsContainerDatabase true \ -numberOfPDBs 1 -pdbName ORCLPDB1 -pdbAdminPassword Oracle123!lsnrctl start;查看监听:lsnrctl statussqlplus / as sysdba;查看实例:select status from v$instance;local_listener 参数或重启监听。四 方式 B 图形化安装 Oracle(11g/12c/19c 通用)
sudo groupadd oinstall && sudo groupadd dbasudo useradd -g oinstall -G dba oracle && sudo passwd oraclesudo 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-develkernel.shmmax 一般为物理内存一半,单位 Byte):
fs.aio-max-nr = 1048576fs.file-max = 6815744kernel.shmall = 2097152kernel.shmmax = 2147483648kernel.shmmni = 4096kernel.sem = 250 32000 100 128net.ipv4.ip_local_port_range = 9000 65500net.core.rmem_default = 262144net.core.rmem_max = 4194304net.core.wmem_default = 262144net.core.wmem_max = 1048576sudo sysctl -poracle soft nproc 2047、oracle hard nproc 16384、oracle soft nofile 1024、oracle hard nofile 65536、oracle soft stack 10240echo "session required pam_limits.so" | sudo tee -a /etc/pam.d/loginsudo mkdir -p /u01/app/oracle && sudo chown -R oracle:oinstall /u01 && sudo chmod -R 775 /u01export ORACLE_BASE=/u01/app/oracleexport ORACLE_HOME=$ORACLE_BASE/product/19c/dbhome_1export ORACLE_SID=orclexport PATH=$ORACLE_HOME/bin:$PATHexport LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATHunzip LINUX.X64_193000_db_home.zip -d $ORACLE_HOME)xhost +(如在本机图形环境);su - oracle 后执行 ./runInstallerdbca(图形或静默均可)lsnrctl start、sqlplus / as sysdba、select status from v$instance;。五 网络、防火墙与开机自启
sudo systemctl stop firewalld && sudo systemctl disable firewalldsudo firewall-cmd --permanent --add-port=1521/tcp && sudo firewall-cmd --reloadsudo setenforce 0sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/' /etc/selinux/config(或 disabled,重启生效)sudo systemctl enable --now oracle-database-ee-19cdbstart/dbshut 与 /etc/oratab 的自动启动项,或使用自定义 systemd 服务单元管理 lsnrctl 与 dbstart。六 常见问题与排错要点
yum localinstall 自动补齐依赖(如 bc、bind-utils 等)。xhost +,或在服务器设置 DISPLAY 并使用 ssh -X 转发 X11。local_listener 参数、监听状态与 tnsnames.ora 配置;必要时 alter system register;。NLS_LANG=AMERICAN_AMERICA.AL32UTF8。lsnrctl status、tnsping 与 sqlplus 逐步排查。