Menu Close

静默安装部署Oracle 19c版本

一、服务器环境

1.1. 服务器硬件配置

1.2. 操作系统版本

CentOS Linux release 7.8.2003 (Core)

二、安装Oracle数据库的所有先决条件

2.1. 检查内核版本

~]# uname -a
Linux dbteam.zytk.com 3.10.0-1127.8.2.el7.x86_64 #1 SMP Tue May 12 16:57:42 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

2.2. 装Oracle数据库先决条件

直接使用如下命令进行安装:

yum install -y https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-19c-1.0-2.el7.x86_64.rpm
  • 对于Oracle Linux可以使用如下命令
~]# yum install oracle-database-preinstall-19c.x86_64

oracle-database-preinstall-19c.x86_64的准备工具会自动完成用户和用户组的创建、系统参数配置、依赖包检查与安装,实现一键准备好oracle安装环境。

备注:如果是在centos或者rhel等没有oracle的yum源上可以先设置源,然后安装oracle-database-preinstall-19c.x86_64

wget http://public-yum.oracle.com/public-yum-ol7.repo -O /etc/yum.repos.d/public-yum-ol7.repo
wget http://public-yum.oracle.com/RPM-GPG-KEY-oracle-ol7 -O /etc/pki/rpm-gpg/RPM-GPG-KEY-oracle

2.3. 检查先决条件安装

  • a. Oracle用户
~]# id oracle
uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba),54323(oper),54324(backupdba),54325(dgdba),54326(kmdba),54330(racdba)
  • b. 内核参数
~]# cat /etc/sysctl.d/99-oracle-database-preinstall-19c-sysctl.conf
# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).

# oracle-database-preinstall-19c setting for fs.file-max is 6815744
fs.file-max = 6815744

# oracle-database-preinstall-19c setting for kernel.sem is '250 32000 100 128'
kernel.sem = 250 32000 100 128

# oracle-database-preinstall-19c setting for kernel.shmmni is 4096
kernel.shmmni = 4096

# oracle-database-preinstall-19c setting for kernel.shmall is 1073741824 on x86_64
kernel.shmall = 1073741824

# oracle-database-preinstall-19c setting for kernel.shmmax is 4398046511104 on x86_64
kernel.shmmax = 4398046511104

# oracle-database-preinstall-19c setting for kernel.panic_on_oops is 1 per Orabug 19212317
kernel.panic_on_oops = 1

# oracle-database-preinstall-19c setting for net.core.rmem_default is 262144
net.core.rmem_default = 262144

# oracle-database-preinstall-19c setting for net.core.rmem_max is 4194304
net.core.rmem_max = 4194304

# oracle-database-preinstall-19c setting for net.core.wmem_default is 262144
net.core.wmem_default = 262144

# oracle-database-preinstall-19c setting for net.core.wmem_max is 1048576
net.core.wmem_max = 1048576

# oracle-database-preinstall-19c setting for net.ipv4.conf.all.rp_filter is 2
net.ipv4.conf.all.rp_filter = 2

# oracle-database-preinstall-19c setting for net.ipv4.conf.default.rp_filter is 2
net.ipv4.conf.default.rp_filter = 2

# oracle-database-preinstall-19c setting for fs.aio-max-nr is 1048576
fs.aio-max-nr = 1048576

# oracle-database-preinstall-19c setting for net.ipv4.ip_local_port_range is 9000 65500
net.ipv4.ip_local_port_range = 9000 65500
  • c. 安全限制
~]# cat /etc/security/limits.d/oracle-database-preinstall-19c.conf

# oracle-database-preinstall-19c setting for nofile soft limit is 1024
oracle   soft   nofile    1024

# oracle-database-preinstall-19c setting for nofile hard limit is 65536
oracle   hard   nofile    65536

# oracle-database-preinstall-19c setting for nproc soft limit is 16384
# refer orabug15971421 for more info.
oracle   soft   nproc    16384

# oracle-database-preinstall-19c setting for nproc hard limit is 16384
oracle   hard   nproc    16384

# oracle-database-preinstall-19c setting for stack soft limit is 10240KB
oracle   soft   stack    10240

# oracle-database-preinstall-19c setting for stack hard limit is 32768KB
oracle   hard   stack    32768

# oracle-database-preinstall-19c setting for memlock hard limit is maximum of 128GB on x86_64 or 3GB on x86 OR 90 % of RAM
oracle   hard   memlock    134217728

# oracle-database-preinstall-19c setting for memlock soft limit is maximum of 128GB on x86_64 or 3GB on x86 OR 90% of RAM
oracle   soft   memlock    134217728

# oracle-database-preinstall-19c setting for data soft limit is 'unlimited'
oracle   soft   data    unlimited

# oracle-database-preinstall-19c setting for data hard limit is 'unlimited'
oracle   hard   data    unlimited

三、静默安装Oracle软件

3.1. 创建目录

# 以 root 用户执行如下命令
mkdir -p /u01/app/oraInventory
mkdir -p /u01/app/oracle/product/19c/db_1
chown -R oracle:oinstall /u01/app/oraInventory
chown -R oracle:oinstall /u01/app/oracle

3.2. 配置Oracle用户的环境变量

# 以 oracle 用户执行如下命令
vim .bash_profile

## 末尾添加环境变量配置内容如下:
umask 022
#oracle数据库安装目录
export ORACLE_BASE=/u01/app/oracle
#oracle数据库路径
export ORACLE_HOME=$ORACLE_BASE/product/19c/db_1
#oracle启动数据库实例名
export ORACLE_SID=zyzh
#xterm窗口模式安装
export ORACLE_TERM=xterm
#配置时间格式
NLS_DATE_FORMAT="YYYY:MM:DDHH24:MI:SS"
#添加系统环境变量
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
#添加系统环境变量
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
#防止安装过程出现乱码
#export LANG=en_US.gbk
export LANG=en_US.UTF-8
#设置Oracle客户端字符集,必须与Oracle安装时设置的字符集保持一致,
#export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export NLS_LANG=AMERICAN_AMERICA.UTF8

3.3. 生效环境变量

# 重新登录或者执行source 立即生效
source ~/.bash_profile

3.4. 解压Oracle安装软件到ORACLE_HOME目录

1)从Oracle官网下载Oracle19c的安装包到/media目录下。
官方下载地址:https://www.oracle.com/database/technologies/oracle-database-software-downloads.html

2)解压Oracle安装软件到ORACLE_HOME目录

# 以 oracle 用户执行如下命令
unzip /media/LINUX.X64_193000_db_home.zip -d /u01/app/oracle/product/19c/db_1/

3.5. 准备响应文件

  • 修改响应文件 db_install.rsp
  • 统一复制响应文件到 /home/oracle/ 下面,然后再授权和修改响应文件Oracle 11/12解压后response目录,下面包含 dbca.rsp (用来创建数据库的), db_install.rsp (用来安装Oracle软件),netca.rsp(用来创建监听器) 三个文件
  • Oracle 19c解压后response目录下,只包含 db_install.rsp (用来安装Oracle软件),dbca.rsp$ORACLE_HOME/assistants/dbca/dbca.rsp

修改的选项列表,仅安装Oracle Database 19c软件:

# 在 oracle 用户下执行如下命令
 cd $ORACLE_HOME
find ./ -name db_install.rsp
./install/response/db_install.rsp
./inventory/response/db_install.rsp

cp -r $ORACLE_HOME/install/response /home/oracle
vim /home/oracle/response/db_install.rsp

oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory
ORACLE_HOME=/u01/app/oracle/product/19c/db_1
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=oper
oracle.install.db.OSBACKUPDBA_GROUP=backupdba
oracle.install.db.OSDGDBA_GROUP=dgdba
oracle.install.db.OSKMDBA_GROUP=kmdba
oracle.install.db.OSRACDBA_GROUP=racdba
oracle.install.db.rootconfig.executeRootScript=true
oracle.install.db.rootconfig.configMethod=ROOT

3.6. 执行runInstaller命令

# 以 oracle 用户执行runInstaller命令
$ORACLE_HOME/runInstaller -silent -ignorePrereq -responseFile /home/oracle/response/db_install.rsp

3.7. 启动监听

# 以 oracle 用户执行如下命令
lsnrctl start
netstat -an |grep 1521

四、创建数据库

4.1. 配置创建数据库的响应文件

静默方式使用dbca.rsp来创建数据库

# 以 oracle 用户执行如下命令
cp $ORACLE_HOME/assistants/dbca/dbca.rsp /home/oracle/response/

设置以下参数(注意:Oracle11g安装时字符串参数带引号输入,但Oracle 19c需要删除引号,否则会报错,变量设置路径是也不支持$ORACLE_BASE的写法

# 以 oracle 用户执行如下命令
vim /home/oracle/response/dbca.rsp
gdbName=zyzh
sid=zyzh
# 数据库类型:SI/RAC/RACONENODE,这里使用单实例数据库
databaseConfigType=SI
# 是否创建为容器数据库
createAsContainerDatabase=TRUE
# 创建容器数据库的个数
numberOfPDBs=1
# 容器数据库的名称
pdbName=study1
# PDB数据库是否使用本地undo
useLocalUndoForPDBs=TRUE
# PDB数据库管理员密码
pdbAdminPassword=Hz571xy00yz
#Oracle自带的默认建库模板 General_Purpose.dbc,文件位于 $Oracle_HOME/assistants/dbca/templates/General_Purpose.dbc,这里设置等同于 dbca 加参数 -templateName General_Purpose.dbc
templateName=General_Purpose.dbc
# CDB中sys用户的密码, Silent mode.密码需要注意的是不能带有特殊符号
sysPassword=Hz571xy00yz
# CDB中system用户的密码
systemPassword=Hz571xy00yz
# 是否配置em
emConfiguration=NONE
# CDB中dbsnmp用户的密码
dbsnmpPassword=Hz571xy00yz
# datafileDestination 为所有数据文件的目标位置,如果不设置默认为 $ORACLE_BASE/oradata
datafileDestination=/data/19cData/oraData
#recoveryAreaDestination 为恢复区位置,如果不设置默认为 $ORACLE_BASE/flash_recovery_area
recoveryAreaDestination=/data/19cData/flash_recovery_area
# 存储的类型为文件系统
storageType=FS
# CDB数据库字符集
characterSet=AL32UTF8
# CDB国家字符集,默认为:AL16UTF16
nationalCharacterSet=AL16UTF16
# 数据库类型
databaseType=OLTP
# Oracle内存管理模式:是否为AMM
automaticMemoryManagement=FALSE
# totalMemory ,物理内存*80%,注意:如果设置超过 kernel.shmmax 建库时会报错
totalMemory=8192

4.2. 使用dbca.rsp静默建库

注意:#responseFile必须使用绝对路径

# 以 oracle 用户执行如下命令
dbca -silent -createDatabase -responseFile /home/oracle/response/dbca.rsp

DBCA静默建库的日志在哪里?

11g开始:$ORACLE_BASE/cfgtoollogs/dbca
10g:$ORACLE_HOME/cfgtoollogs/dbca

从该日志中可以找到DBCA静默建库的详细过程,值得我们深入分析。

5. 附录

编写日期:2020-12-26
参考:
https://www.dqzboy.com/%E9%9D%99%E9%BB%98%E5%AE%89%E8%A3%85%E9%83%A8%E7%BD%B2oracle-19c%E7%89%88%E6%9C%AC
OEL7.6安装Oracle Database 19C(VERSION 19.3.0.0):https://www.bbsmax.com/A/xl56QVLYJr/
Oracle Database 19c Installation On CentOS7.7 In Silent Mode:https://my.oschina.net/u/4407987/blog/3319216