Oracle 19c 静默安装全流程------从零到可连接
服务器连不上显示器、没有X11、没有VNC------这是社保局机房的常态。这篇文章记录一套完整的Oracle 19c静默安装流程,从yum依赖到建库到监听配置,全命令行操作。
文章目录
- [Oracle 19c 静默安装全流程------从零到可连接](#Oracle 19c 静默安装全流程——从零到可连接)
一、为什么需要静默安装
社保局机房只有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
七、常见坑
- 磁盘空间不足 ------
/tmp至少需要1GB,安装目录至少需要10GB - hosts文件缺少本机名 ------导致监听无法注册,
echo "127.0.0.1 $(hostname)" >> /etc/hosts - 内存不足建库失败 ------减小
memoryPercentage或增加 swap - 静默安装报
PRVG-1901------网络配置略不过检查,加-ignorePrereq跳过
✅ 亮点:补上最常见但教程最少的"无图形界面安装",全命令行可复现,适合想自己搭一套环境做实验的人。扩展方向:Oracle RAC静默安装、DataGuard搭建、ASM磁盘管理。