Oracle Linux 7.9 静默安装 Oracle Database 19c

前言
上一篇文章中使用图形化方式安装Oracle 21c,这一篇文章中使用静默方式安装Oracle 19c
官方文档
https://docs.oracle.com/en/database/oracle/oracle-database/19/ladbi/index.html
主机规划
主机名
IP地址
磁盘空间
内存
操作系统版本
数据库版本
forest.oracle.com
192.168.255.219
500G
64G
Oracle Linux 7.9
Oracle 19c
查看操作系统
[root@forest ~]# cat /etc/os-release 
NAME="Oracle Linux Server"
VERSION="7.9"
ID="ol"
ID_LIKE="fedora"
VARIANT="Server"
VARIANT_ID="server"
VERSION_ID="7.9"
PRETTY_NAME="Oracle Linux Server 7.9"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:oracle:linux:7:9:server"
HOME_URL="https://linux.oracle.com/"
BUG_REPORT_URL="https://bugzilla.oracle.com/"
ORACLE_BUGZILLA_PRODUCT="Oracle Linux 7"
ORACLE_BUGZILLA_PRODUCT_VERSION=7.9
ORACLE_SUPPORT_PRODUCT="Oracle Linux"
ORACLE_SUPPORT_PRODUCT_VERSION=7.9
查看磁盘分区
[root@forest ~]# lsblk
NAME               MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sr0                 11:0    1   4.5G  0 rom  
vda                251:0    0   500G  0 disk 
├─vda2             251:2    0 499.8G  0 part 
│ ├─ol_forest-swap 252:1    0    16G  0 lvm  [SWAP]
│ ├─ol_forest-tmp  252:2    0     8G  0 lvm  /tmp
│ ├─ol_forest-root 252:0    0   100G  0 lvm  /
│ └─ol_forest-u01  252:3    0 375.8G  0 lvm  /u01
└─vda1             251:1    0   200M  0 part /boot
[root@forest ~]# df -Th
Filesystem                 Type      Size  Used Avail Use% Mounted on
devtmpfs                   devtmpfs   32G     0   32G   0% /dev
tmpfs                      tmpfs      32G   41M   32G   1% /dev/shm
tmpfs                      tmpfs      32G  8.7M   32G   1% /run
tmpfs                      tmpfs      32G     0   32G   0% /sys/fs/cgroup
/dev/mapper/ol_forest-root xfs       100G   30G   70G  31% /
/dev/mapper/ol_forest-u01  xfs       376G   44G  333G  12% /u01
/dev/mapper/ol_forest-tmp  xfs       8.0G  1.1G  7.0G  13% /tmp
/dev/vda1                  xfs       197M  167M   31M  85% /boot
tmpfs                      tmpfs     6.3G     0  6.3G   0% /run/user/0
关闭防火墙并禁止开机自启动
[root@forest ~]# systemctl stop firewalld
[root@forest ~]# systemctl disable firewalld
禁用selinux
临时生效
[root@forest ~]# setenforce 0
修改配置文件重启后生效
[root@forest ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
修改hosts配置文件
[root@forest ~]# vim /etc/hosts 
192.168.255.219 forest forest.oracle.com
测试
[root@forest ~]# ping forest -c 2
[root@forest ~]# ping forest.oracle.com -c 2
创建用户和组
1、创建组
[root@forest ~]# /usr/sbin/groupadd -g 54321 oinstall
[root@forest ~]# /usr/sbin/groupadd -g 54322 dba
[root@forest ~]# /usr/sbin/groupadd -g 54323 oper
[root@forest ~]# /usr/sbin/groupadd -g 54324 backupdba
[root@forest ~]# /usr/sbin/groupadd -g 54325 dgdba
[root@forest ~]# /usr/sbin/groupadd -g 54326 kmdba
[root@forest ~]# /usr/sbin/groupadd -g 54330 racdba
2、创建oracle用户,主组oinstall,附加组dba,oper,backupdba,dgdba,kmdba,racdba
[root@forest ~]# /usr/sbin/useradd -u 54321 -g oinstall -G dba,oper,backupdba,dgdba,kmdba,racdba oracle
3、设置oracle密码
[root@forest ~]# /usr/sbin/useradd -u 54321 -g oinstall -G dba,oper,backupdba,dgdba,kmdba,racdba oracle
[root@forest ~]# echo "oracle" | passwd --stdin oracle
Changing password for user oracle.
passwd: all authentication tokens updated successfully.
[root@forest ~]# id oracle
uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba),54323(oper),54324(backupdba),54325(dgdba),54326(kmdba),54330(racdba)

安装yum依赖包
参考官方文档,安装yum依赖包
[root@forest ~]# yum install bc binutils compat-openssl10 elfutils-libelf glibc glibc-devel ksh libaio libXrender libX11 libXau libXi libXtst libgcc libnsl libstdc++ libxcb libibverbs make policycoreutils policycoreutils-python-utils smartmontools sysstat

创建目录并修改权限

[root@forest ~]# mkdir -p /u01/app/oracle
[root@forest ~]# mkdir -p /u01/app/oraInventory
[root@forest ~]# chown -R oracle:oinstall /u01/app/oracle
[root@forest ~]# chown -R oracle:oinstall /u01/app/oraInventory
[root@forest ~]# chmod -R 775 /u01/app
调整系统内核参数
#kernel.shmmax 表示单个共享内存段的最大字节
#kernel.shmall 表示可以在系统范围内使用的共享内存总量(页为单位)
#kernel.shmmni 用于设置系统范围内共享内存段的最大数量
#kernel.shmmax=kernel.shmall*kernel.shmmni
#fs.aio-max-nr 表示同时可以拥有的异步IO请求数量
#fs.file-max 表示系统级别能够打开的文件句柄的数量
#net.ipv4.ip_local_port_range 表示端口范围
#net.core.rmem_default 表示接收套接字缓冲区大小默认值
#net.core.rmem_max 表示接收套接字缓冲区大小最大值
#net.core.wmem_default 表示发送套接字缓冲区大小默认值
# net.core.wmem_max 表示发送套接字缓冲区大小最大值
[root@forest ~]# vi /etc/sysctl.d/99-sysctl.conf
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
kernel.panic_on_oops = 1
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.conf.all.rp_filter = 2
net.ipv4.conf.default.rp_filter = 2
fs.aio-max-nr = 1048576
fs.file-max = 6815744
net.ipv4.ip_local_port_range = 9000 65500
使参数生效
[root@forest ~]# sysctl -p
调整系统资源参数
[root@forest ~]# vim /etc/security/limits.conf
oracle   soft   nofile    1024
oracle   hard   nofile    65536
oracle   soft   nproc    16384
oracle   hard   nproc    16384
oracle   soft   stack    10240
oracle   hard   stack    32768
oracle   hard   memlock    134217728
oracle   soft   memlock    134217728
oracle   soft   data    unlimited
oracle   hard   data    unlimited

调整用户访问资源参数

[root@forest ~]# vim /etc/pam.d/login 
session required pam_limits.so
设置透明大页
官方文档建议关闭透明大页,将该参数的值设为never
[root@forest ~]# sed -i 's/quiet/quiet transparent_hugepage=never/' /etc/default/grub 
使参数生效
[root@forest ~]# grub2-mkconfig -o /boot/grub2/grub.cfg 
Generating grub configuration file ...
done
关闭numa
[root@forest ~]# sed -i 's/quiet/quiet transparent_hugepage=never numa=off/' /etc/default/grub 
使参数生效
[root@forest ~]# grub2-mkconfig -o /boot/grub2/grub.cfg 
Generating grub configuration file ...
done
上传数据库软件并创建ORACLE_HOME目录
1、上传数据库软件
E:\BaiduNetdiskDownload>scp LINUX.X64_193000_db_home.zip root@192.168.255.219:~
[root@forest ~]# ll -h LINUX.X64_193000_db_home.zip 
-rw-r--r--. 1 root root 2.9G Oct 21 16:30 LINUX.X64_193000_db_home.zip
2、创建ORACLE_HOME目录
[root@forest ~]# mkdir -p /u01/app/oracle/product/19.3.0/dbhome_1
3、需要解压到ORACLE_HOME目录执行runInstaller,否则会提示报错
[root@forest ~]# unzip LINUX.X64_193000_db_home.zip -d /u01/app/oracle/product/19.3.0/dbhome_1
4、修改ORACLE_HOME目录的属组
[root@forest ~]# chown -R oracle:oinstall /u01/app/oracle
[root@forest ~]# ll -hd /u01/app/oracle/product/19.3.0/dbhome_1/
drwxr-xr-x. 63 oracle oinstall 4.0K Oct 21 16:40 /u01/app/oracle/product/21.3.0/dbhome_1/
runInstaller静默安装数据库软件
1、查看runInstaller图形化安装生成的响应文件
[oracle@forest ~]$ egrep -v '^#|^$' runInstaller.rsp 
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v19.0.0
oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory
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=false
oracle.install.db.rootconfig.configMethod=
oracle.install.db.rootconfig.sudoPath=
oracle.install.db.rootconfig.sudoUserName=
oracle.install.db.CLUSTER_NODES=
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.config.starterdb.globalDBName=
oracle.install.db.config.starterdb.SID=
oracle.install.db.ConfigureAsContainerDB=false
oracle.install.db.config.PDBName=
oracle.install.db.config.starterdb.characterSet=
oracle.install.db.config.starterdb.memoryOption=false
oracle.install.db.config.starterdb.memoryLimit=
oracle.install.db.config.starterdb.installExampleSchemas=false
oracle.install.db.config.starterdb.password.ALL=
oracle.install.db.config.starterdb.password.SYS=
oracle.install.db.config.starterdb.password.SYSTEM=
oracle.install.db.config.starterdb.password.DBSNMP=
oracle.install.db.config.starterdb.password.PDBADMIN=
oracle.install.db.config.starterdb.managementOption=DEFAULT
oracle.install.db.config.starterdb.omsHost=
oracle.install.db.config.starterdb.omsPort=0
oracle.install.db.config.starterdb.emAdminUser=
oracle.install.db.config.starterdb.emAdminPassword=
oracle.install.db.config.starterdb.enableRecovery=false
oracle.install.db.config.starterdb.storageType=
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=
oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=
oracle.install.db.config.asm.diskGroup=
oracle.install.db.config.asm.ASMSNMPPassword=
2、查看runInstaller帮助命令
[oracle@forest ~]$ /u01/app/oracle/product/19.3.0/dbhome_1/runInstaller -help
Usage:  runInstaller [] [
dbca静默创建数据库
1、查看dbca图形化创建数据库生成的响应文件
[oracle@forest ~]$ more dbca.rsp 
responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v12.2.0
gdbName=forest.oracle.com
sid=FOREST
databaseConfigType=SI
RACOneNodeServiceName=
policyManaged=false
createServerPool=false
serverPoolName=
cardinality=
force=false
pqPoolName=
pqCardinality=
createAsContainerDatabase=true
numberOfPDBs=2
pdbName=FORESTPDB
useLocalUndoForPDBs=true
pdbAdminPassword=
nodelist=
templateName=/u01/app/oracle/product/19.3.0/dbhome_1/assistants/dbca/templates/General_Purpose.dbc
sysPassword=
systemPassword= 
serviceUserPassword=
emConfiguration=
emExpressPort=5500
runCVUChecks=FALSE
dbsnmpPassword=
omsHost=
omsPort=0
emUser=
emPassword=
dvConfiguration=false
dvUserName=
dvUserPassword=
dvAccountManagerName=
dvAccountManagerPassword=
olsConfiguration=false
datafileJarLocation={ORACLE_HOME}/assistants/dbca/templates/
datafileDestination={ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/
recoveryAreaDestination=
storageType=FS
diskGroupName=
asmsnmpPassword=
[oracle@forest ~]$ more dbca.rsp 
responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v12.2.0
gdbName=forest.oracle.com
sid=FOREST
databaseConfigType=SI
RACOneNodeServiceName=
policyManaged=false
createServerPool=false
serverPoolName=
cardinality=
force=false
pqPoolName=
pqCardinality=
createAsContainerDatabase=true
numberOfPDBs=2
pdbName=FORESTPDB
useLocalUndoForPDBs=true
pdbAdminPassword=
nodelist=
templateName=/u01/app/oracle/product/19.3.0/dbhome_1/assistants/dbca/templates/General_Purpose.dbc
sysPassword=
systemPassword= 
serviceUserPassword=
emConfiguration=
emExpressPort=5500
runCVUChecks=FALSE
dbsnmpPassword=
omsHost=
omsPort=0
emUser=
emPassword=
dvConfiguration=false
dvUserName=
dvUserPassword=
dvAccountManagerName=
dvAccountManagerPassword=
olsConfiguration=false
datafileJarLocation={ORACLE_HOME}/assistants/dbca/templates/
datafileDestination={ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/
recoveryAreaDestination=
storageType=FS
diskGroupName=
asmsnmpPassword=
recoveryGroupName=
characterSet=AL32UTF8
nationalCharacterSet=AL16UTF16
registerWithDirService=false
dirServiceUserName=
dirServicePassword=
walletPassword=
listeners=
variablesFile=
variables=ORACLE_BASE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1,DB_UNIQUE_NAME=forest,ORACLE_BASE=/u01/app/oracle,PDB_NAME=,DB_NAME=forest.oracle.com,ORACL
E_HOME=/u01/app/oracle/product/19.3.0/dbhome_1,SID=FOREST
initParams=undo_tablespace=UNDOTBS1,sga_target=33239MB,db_block_size=8192BYTES,nls_language=AMERICAN,dispatchers=(PROTOCOL=TCP) (SERVICE=FORESTXDB),diagnostic_dest={ORAC
LE_BASE},control_files=("{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/control01.ctl", "{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/control02.ctl"),remote_login_passwordfile=EXCLUSI
VE,audit_file_dest={ORACLE_BASE}/admin/{DB_UNIQUE_NAME}/adump,processes=1280,pga_aggregate_target=11413MB,nls_territory=AMERICA,local_listener=LISTENER_FOREST,open_curso
rs=300,compatible=19.0.0,db_name=forest,audit_trail=db
sampleSchema=false
memoryPercentage=40
databaseType=MULTIPURPOSE
automaticMemoryManagement=false
totalMemory=0
2、查看dbca帮助命令
[oracle@forest ~]$ dbca -help
Usage:  dbca [] [ 
登录数据库
[oracle@forest ~]$ . oraenv
ORACLE_SID = [oracle] ? FOREST
The Oracle base has been set to /u01/app/oracle
[oracle@forest ~]$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Mon Oct 21 17:34:24 2024
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle.  All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
SQL> show pdbs
    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 FORESTPDB1                     READ WRITE NO
         4 FORESTPDB2                     READ WRITE NO
SQL> show parameter name
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
cdb_cluster_name                     string
cell_offloadgroup_name               string
db_file_name_convert                 string
db_name                              string      forest
db_unique_name                       string      forest
global_names                         boolean     FALSE
instance_name                        string      FOREST
lock_name_space                      string
log_file_name_convert                string
pdb_file_name_convert                string
processor_group_name                 string
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
service_names                        string      forest.oracle.com
请使用浏览器的分享功能分享到微信等