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磁盘管理。

相关推荐
需要8269 分钟前
MySQL MVCC 与事务隔离级别:从一条 update 看版本链
java·数据库·spring boot·mysql·spring cloud
夜雪一千18 分钟前
MySQL 默认值使用方法
数据库·mysql
SelectDB29 分钟前
1TB/天 × 30 天日志成本怎么估:核对命令、降冷配置与踩坑记录
大数据·数据库·数据分析
SelectDB32 分钟前
日志选型别只比 Loki 和 ELK:三条路径、一份可复制的落地清单
大数据·数据库·数据分析
bksczm33 分钟前
MySQL进阶篇之范式及E-R图
数据库·sql·mysql
SelectDB36 分钟前
ES 写入拒绝与磁盘暴涨:排查命令、参数调整与改用 Doris 的落地步骤
大数据·数据库·数据分析
此时不提桶,更待何时1 小时前
05-04-B-HBase与时序库面试与生产事故实战
数据库·面试·hbase
Shadow(⊙o⊙)1 小时前
表的增删查改
数据库·mysql
+VX:Fegn08952 小时前
计算机毕业设计|基于springboot + vue外卖点餐系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
盟接之桥3 小时前
线束数字化--先进先出为什么总是停留在纸面上?
大数据·网络·数据库·人工智能·制造·ai编程