01-Oracle 19c静默安装全流程

Oracle 19c 静默安装全流程------从零到可连接

服务器连不上显示器、没有X11、没有VNC------这是社保局机房的常态。这篇文章记录一套完整的Oracle 19c静默安装流程,从yum依赖到建库到监听配置,全命令行操作。

文章目录


一、为什么需要静默安装

社保局机房只有SSH------没有图形界面,没有显示器接口。Oracle的图形安装器(runInstaller)在这种环境下跑不起来。

静默安装就是通过响应文件告诉Oracle安装程序"所有配置都在这里,你自己装"------不需要任何GUI交互。


二、环境准备

bash 复制代码
# 关闭selinux和防火墙
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
setenforce 0
systemctl stop firewalld
systemctl disable firewalld

# 安装依赖包
yum install -y binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ \
    glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ \
    libstdc++-devel libXext libXtst libX11 libXau libXi make \
    sysstat smartmontools net-tools nfs-utils unzip

创建Oracle用户和目录:

bash 复制代码
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
echo "oracle:你的密码" | chpasswd

mkdir -p /u01/app/oracle/product/19.3.0/dbhome_1
mkdir -p /u01/app/oraInventory
chown -R oracle:oinstall /u01
chmod -R 775 /u01

配置内核参数 /etc/sysctl.conf

ini 复制代码
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500

配置用户限制 /etc/security/limits.conf

ini 复制代码
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768

三、静默安装 Oracle 19c

bash 复制代码
su - oracle

# 设置环境变量
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH

# 解压安装包
unzip LINUX.X64_193000_db_home.zip -d $ORACLE_HOME

# 创建响应文件 db_install.rsp
cat > /tmp/db_install.rsp <<EOF
oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory
ORACLE_HOME=$ORACLE_HOME
ORACLE_BASE=$ORACLE_BASE
oracle.install.db.InstallEdition=EE
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=oinstall
oracle.install.db.OSBACKUPDBA_GROUP=dba
oracle.install.db.OSDGDBA_GROUP=dba
oracle.install.db.OSKMDBA_GROUP=dba
oracle.install.db.OSRACDBA_GROUP=dba
oracle.install.db.rootconfig.executeRootScript=false
EOF

# 执行静默安装
cd $ORACLE_HOME
./runInstaller -silent -responseFile /tmp/db_install.rsp -ignorePrereq

# 安装完成后以root执行(安装程序会提示)
# /u01/app/oraInventory/orainstRoot.sh
# /u01/app/oracle/product/19.3.0/dbhome_1/root.sh

安装日志在 $ORACLE_HOME/cfgtoollogs 目录下。如果出错,看 installActions*.log


四、静默建库

bash 复制代码
# 创建响应文件 dbca.rsp
cat > /tmp/dbca.rsp <<EOF
responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v19.0.0
gdbName=orcl
sid=orcl
databaseConfigType=SI
createAsContainerDatabase=false
templateName=General_Purpose.dbc
sysPassword=你的SYS密码
systemPassword=你的SYSTEM密码
emConfiguration=DBEXPRESS
emExpressPort=5500
characterSet=AL32UTF8
nationalCharacterSet=AL16UTF16
memoryPercentage=40
databaseType=MULTIPURPOSE
automaticMemoryManagement=false
totalMemory=4096
EOF

# 静默建库
dbca -silent -createDatabase -responseFile /tmp/dbca.rsp

memoryPercentage=40 表示使用物理内存的40%,totalMemory=4096 表示如果内存不够则至少分配4GB。


五、配置监听

bash 复制代码
# 创建 listener.ora
cat > $ORACLE_HOME/network/admin/listener.ora <<EOF
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )
EOF

# 启动监听
lsnrctl start

# 验证
lsnrctl status

注册数据库到监听:

sql 复制代码
sqlplus / as sysdba
ALTER SYSTEM REGISTER;
-- 或强制注册
ALTER SYSTEM SET LOCAL_LISTENER='(ADDRESS=(PROTOCOL=TCP)(HOST=服务器IP)(PORT=1521))';

六、开机自启

bash 复制代码
# 创建启动脚本
cat > /etc/init.d/oracle <<'SCRIPT'
#!/bin/bash
# chkconfig: 345 99 10
ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1
ORACLE_OWNER=oracle
case "$1" in
  start)
    su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/lsnrctl start"
    su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
    ;;
  stop)
    su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbshut $ORACLE_HOME"
    su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/lsnrctl stop"
    ;;
esac
SCRIPT
chmod +x /etc/init.d/oracle
chkconfig --add oracle

# 修改oratab启用自启
sed -i 's/:N$/:Y/' /etc/oratab

七、常见坑

  1. 磁盘空间不足 ------/tmp 至少需要1GB,安装目录至少需要10GB
  2. hosts文件缺少本机名 ------导致监听无法注册,echo "127.0.0.1 $(hostname)" >> /etc/hosts
  3. 内存不足建库失败 ------减小 memoryPercentage 或增加 swap
  4. 静默安装报 PRVG-1901 ------网络配置略不过检查,加 -ignorePrereq 跳过

✅ 亮点:补上最常见但教程最少的"无图形界面安装",全命令行可复现,适合想自己搭一套环境做实验的人。扩展方向:Oracle RAC静默安装、DataGuard搭建、ASM磁盘管理。

相关推荐
许彰午1 小时前
02-Oracle连接池配置实战
数据库·oracle
Flandern11111 小时前
HTTPS(TLS 1.3)完整流程
数据库·网络协议·计算机网络·https
Bonnie_12151 小时前
Navicat Premium连接sql server数据库
数据库
其实防守也摸鱼2 小时前
前端应用的离线暂停更新策略:构建稳定可靠的渐进式部署方案
服务器·前端·数据库·学习·ai·命令行·linux系统
Leighteen2 小时前
ORDER BY + LIMIT 的坑:为什么加了 `LIMIT` 结果顺序还乱
数据库
一个天蝎座 白勺 程序猿2 小时前
复盘之我在金仓生产环境踩过的SQL暗坑,和攒了六年的编码规矩
数据库·sql·kingbasees
Dylan的码园2 小时前
从Excel到数据库:数据分析全流程与Kettle ETL实战指南
数据库·数据分析·excel
l1t2 小时前
DeepSeek总结的DuckLake 架构深度剖析-1
数据库·架构