RHEL 7.9 静默安装单机 Oracle 19C CDB 数据库

1、网络配置

#root
nmcli connection show
nmcli connection modify ens160 ipv4.addresses 192.168.65.169/24 ipv4.gateway 192.168.65.1 ipv4.method manual autoconnect yes
nmcli connection up ens160

2、软件包上传

1)创建存放文件夹

#root
mkdir /soft

2)上传后查看(本次使用如下各包,请自行寻找)

#root
ll /soft/
total 7307188
-rw-r--r-- 1 root root 195388 Feb 25 22:27 compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
-rw-r--r-- 1 root root 3059705302 Feb 25 22:27 LINUX.X64_193000_db_home.zip
-rw-r--r-- 1 root root 1411305781 Feb 25 22:27 p33192793_190000_Linux-x86-64.zip
-rw-r--r-- 1 root root 120998448 Feb 25 22:27 p6880880_190000_Linux-x86-64.zip

3、关闭防火墙

#root
systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld

4、关闭不必要的服务

#root
systemctl stop tuned.service  
systemctl disable tuned.service  
systemctl stop ktune.service 
systemctl disable ktune.service 
systemctl stop postfix.service 
systemctl disable postfix.service 
systemctl stop avahi-daemon.socket 
systemctl disable avahi-daemon.socket 
systemctl stop avahi-daemon.service 
systemctl disable avahi-daemon.service 
systemctl stop bluetooth.service 
systemctl disable bluetooth.service 
systemctl stop ModemManager.service 
systemctl disable ModemManager.service 
systemctl stop avahi-dnsconfd.service 
systemctl disable avahi-dnsconfd.service 
systemctl stop libvirtd.service 
systemctl disable libvirtd.service 

5、关闭 Selinux

1)修改

#root
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

2)需要重启检查

#root
getenforce
------下面是输出--------
Disabled

6、配置 yum 源

1)挂载

#root
mount /dev/cdrom /mnt

2)配置仓库

#root
vim /etc/yum.repos.d/local.repo 
[echoddyum]
name=echodd
baseurl=file:///mnt
enabled=1
gpgcheck=0

3)清理并生成

#root
yum clean all
yum makecache

7、安装依赖包

1)安装镜像中已有的

#root
yum install -y bc \
binutils \
compat-libcap1 \
compat-libstdc++-33 \
gcc \
gcc-c++ \
elfutils-libelf \
elfutils-libelf-devel \
glibc \
glibc-devel \
ksh \
libaio \
libaio-devel \
libgcc \
libstdc++ \
libstdc++-devel \
libxcb \
libX11 \
libXau \
libXi \
libXtst \
libXrender \
libXrender-devel \
make \
net-tools \
nfs-utils \
smartmontools \
sysstat \
e2fsprogs \
e2fsprogs-libs \
fontconfig-devel \
expect \
unzip \
openssh-clients \
readline* \
psmisc --skip-broken

2)手动安装compat-libstdc++(镜像上没有)

#root
rpm -ivh /soft/compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm

3)检查

#root
rpm -q bc binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ elfutils-libelf elfutils-libelf-devel glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libxcb libX11 libXau libXi libXtst libXrender libXrender-devel make net-tools nfs-utils smartmontools sysstat e2fsprogs e2fsprogs-libs fontconfig-devel expect unzip openssh-clients readline

8、配置hosts

#root
echo '192.168.65.169 test01' >> /etc/hosts

9、创建用户和组

1)创建

#root
/usr/sbin/groupadd -g 23431 oinstall
/usr/sbin/groupadd -g 23432 dba
/usr/sbin/groupadd -g 23433 oper
/usr/sbin/groupadd -g 23434 backupdba
/usr/sbin/groupadd -g 23435 dgdba
/usr/sbin/groupadd -g 23436 kmdba
/usr/sbin/groupadd -g 23437 racdba
/usr/sbin/useradd -u 23431 -g oinstall -G dba,backupdba,dgdba,kmdba,racdba,oper oracle
echo oracle | passwd --stdin oracle

2)检查

#root
id oracle

10、配置用户环境变量

1)配置 root 用户

#root
cat <<EOF >>/root/.bash_profile
##登陆oracle用户
alias so='su - oracle'
##修改命令提示符
export PS1="[\`whoami\`@\`hostname\`:"'\$PWD]# '
EOF

2)配置 oracle 用户

#root or oracle
cat <<EOF >>/home/oracle/.bash_profile
export TMP=/tmp
export TMPDIR=\$TMP
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=\$ORACLE_BASE/product/19.3.0/db
export ORACLE_HOSTNAME=test01
export ORACLE_TERM=xterm
export TNS_ADMIN=\$ORACLE_HOME/network/admin
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib
export ORACLE_SID=orcltest01
export PATH=/usr/sbin:\$PATH
export PATH=\$ORACLE_HOME/bin:\$ORACLE_HOME/OPatch:\$PATH
export PS1="[\`whoami\`@\`hostname\`:"'\$PWD]\$ '
alias sql='sqlplus / as sysdba'
umask 022
EOF

11、给软件包文件夹修改权限

#root
chown -R oracle.oinstall /soft

12、创建安装目录

#root
mkdir -p /u01/app/oracle/product/19.3.0/db
mkdir -p /u01/app/oraInventory
mkdir -p /oradata
mkdir -p /archivelog
chown -R oracle:oinstall /oradata
chown -R oracle:oinstall /archivelog
chown -R oracle:oinstall /u01/app
chmod -R 775 /u01/app

13、开启KDUMP

Kdump可以把操作系统所有的内存信息和寄存器信息dump转储为vmcore 文件,可以通过gdb/crash等工具进行分析和调试。

1)检查是否安装

#root
rpm -qa |grep kexec-tools

注:若未安装,则运行

#root
yum install -y kexec-tools.x86_64

2)配置规则

操作系统内存大小Crashkernel内存大小
< 2G128MB
2G ~ 4G256MB
4G ~ 8G512MB
> 8G768MB

注:根据规则修改以下crashkernel的值

#root
sed -i 's/GRUB_CMDLINE_LINUX="/GRUB_CMDLINE_LINUX="crashkernel=256M /g' /etc/default/grub 

3)重建grub配置文件

#root
grub2-mkconfig -o /boot/grub2/grub.cfg 

4)重启后检查

#root
cat /proc/cmdline

5)修改kdump默认配置

#root
sed -i 's/core_collector makedumpfile -l/core_collector makedumpfile -c/g' /etc/kdump.conf 
sed -i 's/#default shell/default reboot/g' /etc/kdump.conf 

6)验证

#root
cat /etc/kdump.conf | egrep "^path|^core_collector|^[#]*default" 

7)开启kdump服务

#root
systemctl enable kdump
systemctl start kdump
systemctl status kdump

8)验证kdump (会重启)

#root
echo 1 > /proc/sys/kernel/sysrq 
echo c > /proc/sysrq-trigger

9)查看文件

#root
ls -lR /var/crash 

14、配置 avahi-deamon

#root
systemctl stop avahi-daemon.socket
systemctl stop avahi-daemon.service
systemctl disable avahi-daemon.service
systemctl disable avahi-daemon.socket

15、关闭透明大页和 numa

采用动态管理的方式对内存大页进行预分配,ORACLE不能使用操作系统分配的该种类型大页,在 RAC环境下可能会造成节点非正常重启。

开启NUMA,可能因为某个NUMA节点富余内存不足而使用虚拟内存。

#root
sed -i 's/quiet/quiet transparent_hugepage=never numa=off/' /etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg

16、修改LO网卡的MTU值

lo接口的MTU过大,会存在一些BUG

#root
echo "MTU=16436" >> /etc/sysconfig/network-scripts/ifcfg-lo

重启后查看

#root
netstat -in
-----以下是输出---------
Kernel Interface table
Iface             MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
ens33            1500    14867      0      0 0         10837      0      0      0 BMRU
lo              16436     3031      0      0 0          3031      0      0      0 LRU
virbr0           1500        0      0      0 0             0      0      0      0 BMU

17、配置系统参数文件

1)修改参数

#root
DAYTIME=$(date +%Y%m%d)
mv /etc/sysctl.conf /etc/sysctl.conf.${DAYTIME}
cat <<EOF >/etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744

kernel.shmall = $(echo "scale=0; $(awk '/MemTotal/ {print $2}' /proc/meminfo) * 1024 / $(getconf PAGESIZE)" | bc)
kernel.shmmax = $(echo "$(awk '/MemTotal/ {print $2}' /proc/meminfo) * 1024 * 0.8" | bc | sed 's#\..*$##')
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
kernel.randomize_va_space = 0 
kernel.panic_on_oops = 1 

net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.ipfrag_high_thresh = 16777216  
net.ipv4.ipfrag_low_thresh = 15728640  
  
vm.swappiness =10 
vm.min_free_kbytes= 524288  
vm.dirty_background_ratio = 3 
vm.dirty_ratio = 10 
vm.dirty_writeback_centisecs = 100 
vm.dirty_expire_centisecs = 500 
EOF

2)加载参数配置

#root
sysctl -p

18、配置普通大页

当SGA内存参数(SGA通常物理内存的40%)设置超过8GB的时候,就需要考虑启用HugePages特性。

1)计算方法: 若SGA=50G ,则vm.nr_hugepages=(50+2) * 1024 / 2=26624

#root
echo "vm.nr_hugepages=上面计算的值" >> /etc/sysctl.conf 

2)重启数据库后检查HugePage是否使用(这个需要安装完成后查看)

#root
cat /proc/meminfo | grep Huge 
 --------以下是输出------------
AnonHugePages:         0 kB 
HugePages_Total:       52224 
HugePages_Free:        1000 
HugePages_Rsvd:        20 
HugePages_Surp:        0 
Hugepagesize:       2048 kB 

19、配置系统资源限制

#root
cat <<EOF >>/etc/security/limits.conf
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
oracle soft nproc 2047
oracle hard nproc 16384
oracle hard memlock 134217728
oracle soft memlock 134217728
EOF

20、配置 pam.d

#root
cat <<EOF >>/etc/pam.d/login
session required pam_limits.so 
EOF

21、配置NOZEROCONF

操作系统无法连接DHCP服务器时,会尝试通过ZEROCONF来获取IP,自动在路由表中增加路由

#root
echo "NOZEROCONF=yes" >> /etc/sysconfig/network 

22、禁用DNS解析

查询DNS可能会带来一些性能问题

#root
mv /etc/resolv.conf /etc/resolv.conf.bak

23、配置 /dev/shm

确保共享内存文件系统大小与系统总内存一致

#root
cp /etc/fstab /tmp/fstab
memTotal=$(grep MemTotal /proc/meminfo | awk '{print $2}')
shmTotal=$(df -k /dev/shm | awk '{print $2}' | head -n 2 | tail -n 1)
if [ "$(grep -E -c "/dev/shm" /etc/fstab)" -eq 0 ]; then
	cat <<EOF >>/etc/fstab
tmpfs /dev/shm tmpfs size=${memTotal}k 0 0
EOF
	mount -o remount /dev/shm
else
  if [ "$shmTotal" -lt "$memTotal" ]; then
    shmTotal=$memTotal
    line=$(grep -n "/dev/shm" /etc/fstab | awk -F ":" '{print $1}')
    sed -i "${line} d" /etc/fstab
    cat <<EOF >>/etc/fstab
tmpfs /dev/shm tmpfs size=${memTotal}k 0 0
EOF
	fi
	mount -o remount /dev/shm
fi

24、解压安装包

#oracle
unzip LINUX.X64_193000_db_home.zip -d $ORACLE_HOME

25、安装DB软件

1)编辑响应文件:$ORACLE_HOME/install/response/db_install.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_HOME=/u01/app/oracle/product/19.3.0/db
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=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
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=orcltest01
oracle.install.db.config.starterdb.SID=orcltest01
oracle.install.db.ConfigureAsContainerDB=true
oracle.install.db.config.PDBName=echoddpdb
oracle.install.db.config.starterdb.characterSet=
oracle.install.db.config.starterdb.memoryOption=false
oracle.install.db.config.starterdb.memoryLimit=6000
oracle.install.db.config.starterdb.installExampleSchemas=false
oracle.install.db.config.starterdb.password.ALL=Cai820197!
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=
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=/oradata
oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=
oracle.install.db.config.asm.diskGroup=
oracle.install.db.config.asm.ASMSNMPPassword=

2)替换DB OPatch

#oracle
mv $ORACLE_HOME/OPatch $ORACLE_HOME/OPatch.bak  
unzip -o -q /soft/p6880880_190000_Linux-x86-64.zip -d $ORACLE_HOME

3)查看版本

#oracle
$ORACLE_HOME/OPatch/opatch version
-----以下是输出----------
OPatch Version: 12.2.0.1.27

OPatch succeeded.

4)安装DB

#oracle
cd $ORACLE_HOME
./runInstaller -applyRU /soft/33192793 -silent -responseFile /soft/db_install.rsp -ignorePrereqFailure 

5)执行root.sh脚本(root执行)

#root
/u01/app/oraInventory/orainstRoot.sh 
/u01/app/oracle/product/19/db_1/root.sh 

26、配置监听

使用默认响应文件进行静默配置监听(默认 监听名:LISTENER,端口:1521)

#oracle
netca -silent -responsefile /u01/app/oracle/product/19.3.0/db/assistants/netca/netca.rsp

27、创建数据库(CDB-多租户)

1)编辑响应文件:$ORACLE_HOME/assistants/dbca/ dbca.rsp(根据需要修改)

responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v19.0.0
gdbName=orcltest01
sid=orcltest01
databaseConfigType=SI
RACOneNodeServiceName=
policyManaged=false
createServerPool=false
serverPoolName=
cardinality=
force=false
pqPoolName=
pqCardinality=
createAsContainerDatabase=true
numberOfPDBs=1
pdbName=orcltestpdb
useLocalUndoForPDBs=true
pdbAdminPassword=Cai820197!
nodelist=
templateName=/u01/app/oracle/product/19.3.0/db/assistants/dbca/templates/General_Purpose.dbc
sysPassword=Cai820197!
systemPassword=Cai820197!
oracleHomeUserPassword=
emConfiguration=NONE
emExpressPort=5500
runCVUChecks=FALSE
dbsnmpPassword=
omsHost=
omsPort=
emUser=
emPassword=
dvConfiguration=false
dvUserName=
dvUserPassword=
dvAccountManagerName=
dvAccountManagerPassword=
olsConfiguration=false
datafileJarLocation=/u01/app/oracle/product/19.3.0/db/assistants/dbca/templates/
datafileDestination=/oradata
recoveryAreaDestination=
storageType=FS
diskGroupName=
asmsnmpPassword=
recoveryGroupName=
characterSet=AL32UTF8
nationalCharacterSet=AL16UTF16
registerWithDirService=false
dirServiceUserName=
dirServicePassword=
walletPassword=
listeners=
variablesFile=
variables=
initParams=
sampleSchema=false
memoryPercentage=40
databaseType=MULTIPURPOSE
automaticMemoryManagement=false
totalMemory=0

2)开始创建数据库

#oracle
dbca -silent -createDatabase -responsefile /soft/dbca.rsp -ignorePreReqs
-------以下为输出----------
Prepare for db operation
8% complete
Copying database files
31% complete
Creating and starting Oracle instance
32% complete
36% complete
40% complete
43% complete
46% complete
Completing Database Creation
51% complete
53% complete
54% complete
Creating Pluggable Databases
58% complete
77% complete
Executing Post Configuration Actions
100% complete
Database creation complete. For details check the logfiles at:
 /u01/app/oracle/cfgtoollogs/dbca/orcltest01.
Database Information:
Global Database Name:orcltest01
System Identifier(SID):orcltest01
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/orcltest01/orcltest01.log" for further details.

3)登录

[oracle@test01:/home/oracle]$ sql

SQL*Plus: Release 19.0.0.0.0 - Production on Sun Mar 2 16:15:54 2025
Version 19.13.0.0.0

Copyright (c) 1982, 2021, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.13.0.0.0

SQL> 
SQL> 
SQL> show con_name

CON_NAME
------------------------------
CDB$ROOT
SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 ORCLTESTPDB                    READ WRITE NO
SQL> 

28、重启查看

#oracle
[oracle@test01:/home/oracle]$ sql

SQL*Plus: Release 19.0.0.0.0 - Production on Sun Mar 2 20:04:01 2025
Version 19.13.0.0.0

Copyright (c) 1982, 2021, Oracle.  All rights reserved.

Connected to an idle instance.

SQL> 
SQL> 
SQL> startup
ORACLE instance started.

Total System Global Area 2466250392 bytes
Fixed Size                  9137816 bytes
Variable Size             536870912 bytes
Database Buffers         1912602624 bytes
Redo Buffers                7639040 bytes
Database mounted.
Database opened.
SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 ORCLTESTPDB                    MOUNTED
SQL>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值