大家好,这里是 Lucifer三思而后行,专注于提升数据库运维效率。
前言
本章目标:掌握本章核心知识点
前置要求:完成前序章节学习
预计时长:60 分钟
这两天看到交流群里有朋友咨询 SUSE 15 SP3 安装 Oracle 19C RAC 遇到点问题,趁着周末有时间,抱着学习的心态,研究了一下如何安装,接下来就分享一下从零开始部署的流程!
总体来说,和 RHEL 部署流程上大同小异,主要是有一些命令不一样,废话不多说直接开始了~
⭐️ 如果想要使用脚本安装,可以使用博主编写的 Oracle 一键安装脚本,同时支持单机和 RAC 集群模式!
更多更详细的脚本使用方式可以订阅专栏:Oracle 一键安装脚本实操合集,持续更新中!!!。
一、安装 SUSE 15 SP3
首先,我们去官网下载 15 SP3 的安装镜像:SUSE Linux Enterprise Server

镜像比较大,大概 12G 左右,开始安装系统!
本次演示的是 Parallel Desktop 虚拟机安装,其他虚拟机一样:

选取下载好的安装介质后,虚拟机名字为 SUSE01:

由于是 19C RAC,因此配置物理内存为 8G:

至少需要2张网卡,因此添加一个网卡作为心跳:

挂载官网下载好的镜像源:

继续:


上面的步骤,其他的虚拟机或许不一样,下面的正式开始安装流程都是一致的:





选择语言环境和版本:



跳过注册:

建议安装过程中直接配置网络:

两张网卡,一张 eth0 用于公网,一张 eth1 用于心跳:
eth0:


eth1:


已配置好两张网卡:

配置主机名:


继续安装:







手工配置系统分区:


首先创建一个 /boot 分区:




将剩余磁盘空间创建为 LVM,用于系统安装:




创建 rootvg 分区:




创建 swaplv 分区:






创建根分区 rootlv:







选择时区:

不创建用户:

输入 root 密码:


关闭防火墙和kdump:




开始安装:

安装完成:

以同样的步骤安装第二个节点!
二、安装前配置
安装RAC前,当然要先做好规划。具体包含以下几方面:
|节点|系统|Oracle版本|主机名|实例名|PublicIP|PirvateIP|VirtualIP|SCANIP|
|-|-|-|-|-|-|-|-|-|-|
|1|SLSE 15 SP3|19C|suse01|orcl1|10.211.55.100|10.10.10.1|10.211.55.102|10.211.55.105|
|2|SLSE 15 SP3|19C|suse02|orcl2|10.211.55.101|10.10.10.2|10.211.55.103|10.211.55.105|
1、系统规划
- 主机名: 需要英文字母开头,建议小写,suse01/suse02
- 集群名称: 长度不超过15位,suse-cluster
- Linux系统版本: SLSE 15 SP3
- 磁盘: 本地磁盘 64G,用于安装 OS,存放 grid 和 oracle 安装软件,用于 oracle 和 grid 安装目录
- ASM共享盘:
裁决盘OCR:OCR+VOTING=10G、冗余模式:EXTERNAL
数据盘DATA:DATA=20G、冗余模式:EXTERNAL(数据文件,归档日志文件,spfile 文件等)
- RU升级路径: 19C 的补丁已经不叫PSU,改为 RU
本次是从 19.3.0 升级到 19.13.0,Oracle 官网下载的基础版是 19.3.0!
⭐️ 如果想要使用脚本安装,可以使用博主编写的 Oracle 一键安装脚本,同时支持单机和 RAC 集群模式!
更多更详细的脚本使用方式可以订阅专栏:Oracle一键安装脚本。
2、网络规划
Public IP(公司内部访问,非外网)
110.211.55.100 suse01
210.211.55.101 suse02
Private IP(用于节点间心跳网络)
110.10.10.1 suse01-priv
210.10.10.2 suse02-priv
Virtual IP(提供客户端访问,漂移)
110.211.55.102 suse01-vip
210.211.55.103 suse02-vip
SCAN IP(提供客户端访问,均衡)
3、存储规划
Oracle RAC 使用 ASM 存储来存放数据,通常使用 OCR 和 DATA 两个磁盘组!
| 磁盘名称 | 磁盘用途 | 磁盘大小 |
|---|
| asm-ocr | OCR/Voting File | 10G |
| asm-data | Data Files | 20G |
三、主机配置
📢 注意: 以下标题中(rac01&rac02)代表节点一和节点二都需要执行,(rac01)代表只需要节点一执行。
1、配置 zypper 源并安装依赖包(rac01&rac02)
Linux远程连接工具:
- 本文将使用XShell和Xftp工具,安装包可以在官网下载,也可私信博主获取。
- 其他工具也可以,比如:putty,SecureCRT 等等工具。

Parallels Desktop挂载Linux主机镜像:

挂载镜像:
1mount /dev/cdrom /mnt
2df -Th /mnt

配置 zypper 源:
1zypper ar -f /mnt/Module-Basesystem sle15
2zypper ar -f /mnt/Module-Legacy sle15-Legacy
3zypper ar -f /mnt/Module-Development-Tools sle15-Tools

安装依赖包:
1zypper in -y gcc bc binutils glibc glibc-devel insserv-compat libaio-devel libaio1 libX11-6 libXau6 libXext-devel libXext6 libXi-devel libXi6 libXrender-devel libXrender1 libXtst6 libcap-ng-utils libcap-ng0 libcap-progs libcap1 libcap2 libelf1 libgcc_s1 libjpeg8 libpcap1 libpcre1 libpcre16-0 libpng16-16 libstdc++6 libtiff5 libgfortran4 mksh make pixz rdma-core rdma-core-devel smartmontools sysstat xorg-x11-libs xz compat-libpthread-nonshared readline-devel
检查依赖包安装情况:
1rpm -q gcc bc binutils glibc glibc-devel insserv-compat libaio-devel libaio1 libX11-6 libXau6 libXext-devel libXext6 libXi-devel libXi6 libXrender-devel libXrender1 libXtst6 libcap-ng-utils libcap-ng0 libcap-progs libcap1 libcap2 libelf1 libgcc_s1 libjpeg8 libpcap1 libpcre1 libpcre16-0 libpng16-16 libstdc++6 libtiff5 libgfortran4 mksh make pixz rdma-core rdma-core-devel smartmontools sysstat xorg-x11-libs xz compat-libpthread-nonshared readline-devel --qf '%{name}.%{arch}\n' | grep "未安装软件包" | wc -l

📢 注意: 依赖一定要安装成功,否则可能导致安装失败!
2、用户及组、目录创建(rac01&rac02)
创建安装 Oracle 数据库所需的用户、组以及安装目录:
1/usr/sbin/groupadd -g 54321 oinstall
2/usr/sbin/groupadd -g 54322 dba
3/usr/sbin/groupadd -g 54323 oper
4/usr/sbin/groupadd -g 54324 backupdba
5/usr/sbin/groupadd -g 54325 dgdba
6/usr/sbin/groupadd -g 54326 kmdba
7/usr/sbin/groupadd -g 54330 racdba
8/usr/sbin/groupadd -g 54327 asmdba
9/usr/sbin/groupadd -g 54328 asmoper
10/usr/sbin/groupadd -g 54329 asmadmin

grid/oracle 用户创建并修改密码:
1/usr/sbin/useradd -m -u 11012 -g oinstall -G asmadmin,asmdba,asmoper,dba,racdba,oper grid
2passwd grid
3/usr/sbin/useradd -m -u 54321 -g oinstall -G asmdba,dba,backupdba,dgdba,kmdba,racdba,oper oracle
4passwd oracle

查看用户组

3、创建软件目录:
1mkdir -p /u01/app/19.3.0/grid
2mkdir -p /u01/app/grid
3mkdir -p /u01/app/oracle/product/19.3.0/db
4mkdir -p /u01/app/oraInventory
5mkdir -p /backup
6mkdir -p /home/oracle/scripts
7chown -R oracle:oinstall /backup
8chown -R oracle:oinstall /home/oracle/scripts
9chown -R grid:oinstall /u01
10chown -R grid:oinstall /u01/app/grid
11chown -R grid:oinstall /u01/app/19.3.0/grid
12chown -R grid:oinstall /u01/app/oraInventory
13chown -R oracle:oinstall /u01/app/oracle
14chmod -R 775 /u01

4、存储配置(rac01&rac02)
Windows 下配置 ISCSI 共享存储可参考:
配置好共享存储后,在 Linux 主机连接共享存储:
1##iscsi识别共享存储
2##输出targetname,10.211.55.61 为iscsi共享存储设备 IP地址
3iscsiadm -m discovery -t st -p 10.211.55.61

1##连接共享存储
2iscsiadm -m node -T iqn.2008-08.com.starwindsoftware:10.211.55.61-lucifer -p 10.211.55.61 -l
3lsblk
4## 设置开机自启动
5iscsiadm -m node -T iqn.2008-08.com.starwindsoftware:10.211.55.61-lucifer -p 10.211.55.61 -o update -n node.startup -v automatic

5、UDEV 配置共享存储:
设置 multipath 开机自启:
1systemctl start multipathd
2systemctl enable multipathd
3systemctl status multipathd
配置 multipath 文件:
1cat <<EOF >/etc/multipath.conf
2defaults {
3 user_friendly_names yes
4}
5
6blacklist {
7 devnode "^sda"
8}
9
10multipaths {
11 multipath {
12 wwid "$(/usr/lib/udev/scsi_id -g -u /dev/sdb)"
13 alias ocr_1
14 }
15 multipath {
16 wwid "$(/usr/lib/udev/scsi_id -g -u /dev/sdc)"
17 alias data_1
18 }
19}
20EOF
激活 multipath:
1multipath -v2
2multipath -ll

绑定 UDEV:
1cd /dev/mapper
2for i in ocr_* data_*; do
3 printf "%s %s\n" "$i" "$(udevadm info --query=all --name=/dev/mapper/"$i" | grep -i dm_uuid)" >>udev_info
4done
5
6while read -r line; do
7 dm_uuid=$(echo "$line" | awk -F'=' '{print $2}')
8 disk_name=$(echo "$line" | awk '{print $1}')
9 echo "KERNEL==\"dm-*\",ENV{DM_UUID}==\"${dm_uuid}\",SYMLINK+=\"asm_${disk_name}\",OWNER=\"grid\",GROUP=\"asmadmin\",MODE=\"0660\"" >>/etc/udev/rules.d/99-oracle-asmdevices.rules
10done </dev/mapper/udev_info
11
12cat /etc/udev/rules.d/99-oracle-asmdevices.rules

生效 UDEV:
1udevadm control --reload-rules
2udevadm trigger --type=devices
3ll /dev/asm_*

6、hosts文件配置(rac01&rac02)
配置hostname:
1hostnamectl set-hostname suse01
2hostnamectl set-hostname suse02
配置hosts文件:
1cat <<EOF>>/etc/hosts
2#Public IP
310.211.55.100 suse01
410.211.55.101 suse02
5
6#Private IP
710.10.10.1 suse01-priv
810.10.10.2 suse02-priv
9
10#Vip IP
1110.211.55.102 suse01-vip
1210.211.55.103 suse02-vip
13
14#Scan IP
1510.211.55.105 suse-scan
16EOF

7、防火墙配置(rac01&rac02)
1systemctl stop firewalld.service
2systemctl disable firewalld.service
3systemctl status firewalld.service

8、时间同步配置(rac01&rac02)
禁用 chronyd:
1zypper in -y chrony
2timedatectl set-timezone Asia/Shanghai
3systemctl stop chronyd.service
4systemctl disable chronyd.service
5systemctl status chronyd.service

配置ntpdate时间同步计划任务:
1zypper in -y ntp
2##10.211.55.61 为时间服务器IP,每天12点同步系统时间
3cat <<EOF>>/var/spool/cron/root
400 12 * * * /usr/sbin/ntpdate -u 10.211.55.61 && /usr/sbin/hwclock -w
5EOF
6##查看计划任务
7crontab -l
8##手动执行
9/usr/sbin/ntpdate -u 10.211.55.61 && /usr/sbin/hwclock -w
9、关闭透明大页、HLE和NUMA(rac01&rac02)
SUSE 15 SP3 配置内核文件,关闭透明大页和numa:
1sed -i 's/quiet/quiet transparent_hugepage=never numa=off tsx=off/' /etc/default/grub
2grub2-mkconfig -o /boot/grub2/grub.cfg

重启后检查是否生效:
1cat /sys/kernel/mm/transparent_hugepage/enabled
2cat /proc/cmdline
📢 注意: 关闭 透明大页、HLE和 numa 的配置,需要重启主机生效!
10、avahi-daemon 配置(rac01&rac02)
有些主机安装选择最小化安装,没有安装 avahi-daemon 功能,建议安装之后禁用,防止以后误操作导致出问题:
1zypper in -y avahi*
2systemctl stop avahi-daemon.socket
3systemctl stop avahi-daemon.service
4pgrep -f avahi-daemon | awk '{print "kill -9 "$2}'
5systemctl disable avahi-daemon.service
6systemctl disable avahi-daemon.socket
7systemctl status avahi-daemon.service
8systemctl status avahi-daemon.socket

11、removeIPC
1sed -i 's/#RemoveIPC=no/RemoveIPC=no/g' /etc/systemd/logind.conf
2systemctl daemon-reload
3systemctl restart systemd-logind

12、系统参数配置(rac01&rac02)
安装 Oracle 数据库需要配置系统参数,以下使用脚本命令一键式配置:
1memTotal=$(grep MemTotal /proc/meminfo | awk '{print $2}')
2totalMemory=$((memTotal / 2048))
3shmall=$((memTotal / 4))
4if [ $shmall -lt 2097152 ]; then
5 shmall=2097152
6fi
7shmmax=$((memTotal * 1024 - 1))
8if [ "$shmmax" -lt 4294967295 ]; then
9 shmmax=4294967295
10fi
11
12cat <<EOF >>/etc/sysctl.conf
13#OracleBegin
14##shmmal's Calculation formula: physical memory 8G:(8*1024*1024*1024)/4096=2097152
15##shmmax's Calculation formula: physical memory 8G:(8/2)*1024*1024*1024 -1=4294967295
16fs.aio-max-nr = 1048576
17fs.file-max = 6815744
18kernel.shmall = $shmall
19kernel.shmmax = $shmmax
20kernel.shmmni = 4096
21kernel.sem = 250 32000 100 128
22net.ipv4.ip_local_port_range = 9000 65500
23net.core.rmem_default = 262144
24net.core.rmem_max = 4194304
25net.core.wmem_default = 262144
26net.core.wmem_max = 1048576
27#OracleEnd
28EOF
生效系统参数:

13、系统资源限制配置(rac01&rac02)
配置limits.conf:
1cat <<EOF>>/etc/security/limits.conf
2oracle soft nofile 1024
3oracle hard nofile 65536
4oracle soft stack 10240
5oracle hard stack 32768
6oracle soft nproc 2047
7oracle hard nproc 16384
8oracle hard memlock 134217728
9oracle soft memlock 134217728
10
11grid soft nofile 1024
12grid hard nofile 65536
13grid soft stack 10240
14grid hard stack 32768
15grid soft nproc 2047
16grid hard nproc 16384
17EOF

配置 pam.d/login:
1cat <<EOF>>/etc/pam.d/login
2session required pam_limits.so
3session required /lib64/security/pam_limits.so
4EOF

配置 shm:
1memTotal=$(grep MemTotal /proc/meminfo | awk '{print $2}')
2cat <<EOF >>/etc/fstab
3tmpfs /dev/shm tmpfs size=${memTotal}k 0 0
4EOF
5
6mount -o remount /dev/shm
7df -Th /dev/shm

14、安装 rlwrap
1cd /soft
2tar -xf rlwrap-0.42.tar.gz
3cd rlwrap-0.42
4./configure && make && make install
5cd /soft
6rm -rf rlwrap-0.42*
15、环境变量配置(rac01&rac02)
root 用户环境变量:
1cat <<EOF >>/root/.profile
2################OracleBegin#########################
3alias so='su - oracle'
4export PS1="[\`whoami\`@\`hostname\`:"'\$PWD]\$ '
5alias crsctl='/u01/app/19.3.0/grid/bin/crsctl'
6alias sg='su - grid'
7################OracleEnd###########################
8EOF
grid 用户环境变量:
1cat <<EOF >>/home/grid/.profile
2################OracleBegin#########################
3umask 022
4export TMP=/tmp
5export TMPDIR=\$TMP
6export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
7export ORACLE_BASE=/u01/app/grid
8export ORACLE_HOME=/u01/app/19.3.0/grid
9export ORACLE_TERM=xterm
10export TNS_ADMIN=\$ORACLE_HOME/network/admin
11export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib
12export ORACLE_SID=+ASM1
13export PATH=/usr/sbin:\$PATH
14export PATH=\$ORACLE_HOME/bin:\$ORACLE_HOME/OPatch:\$PATH
15alias sas='sqlplus / as sysasm'
16export PS1="[\`whoami\`@\`hostname\`:"'\$PWD]\$ '
17alias sqlplus='rlwrap sqlplus'
18alias rman='rlwrap rman'
19alias lsnrctl='rlwrap lsnrctl'
20alias asmcmd='rlwrap asmcmd'
21alias adrci='rlwrap adrci'
22################OracleEnd###########################
23EOF
📢 注意: 每个节点的 ORACLE_SID 不一样(+ASM1/+ASM2),需要自行修改!
oracle用户环境变量:
1cat <<EOF >>/home/oracle/.profile
2################OracleBegin#########################
3umask 022
4export TMP=/tmp
5export TMPDIR=\$TMP
6export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
7export ORACLE_BASE=/u01/app/oracle
8export ORACLE_HOME=/u01/app/oracle/product/19.3.0/db
9export ORACLE_HOSTNAME=suse01
10export ORACLE_TERM=xterm
11export TNS_ADMIN=\$ORACLE_HOME/network/admin
12export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib
13export ORACLE_SID=orcl1
14export PATH=/usr/sbin:\$PATH
15export PATH=\$ORACLE_HOME/bin:\$ORACLE_HOME/OPatch:\$PATH
16alias sas='sqlplus / as sysdba'
17alias alert='tail -500f \$ORACLE_BASE/diag/rdbms/\$ORACLE_SID/\$ORACLE_SID/trace/alert_\$ORACLE_SID.log|more'
18export PS1="[\`whoami\`@\`hostname\`:"'\$PWD]\$ '
19alias sqlplus='rlwrap sqlplus'
20alias rman='rlwrap rman'
21alias lsnrctl='rlwrap lsnrctl'
22alias asmcmd='rlwrap asmcmd'
23alias adrci='rlwrap adrci'
24alias ggsci='rlwrap ggsci'
25alias dgmgrl='rlwrap dgmgrl'
26################OracleEnd###########################
27EOF
📢 注意: 每个节点的 ORACLE_HOSTNAME(suse01/suse02)和 ORACLE_SID(orcl1/orcl2)不一样,需要自行修改!
16、安装介质上传解压(rac01)
安装包使用 XFTP 工具进行上传,只需要上传至一节点 /soft 目录下:
1##上传安装介质到/soft目录
2LINUX.X64_193000_db_home.zip
3LINUX.X64_193000_grid_home.zip
4p33182768_190000_Linux-x86-64.zip
5p6880880_190000_Linux-x86-64.zip

📢 注意: 19C 的安装包需要解压到对应的 ORACLE_HOME 目录下!
静默解压grid安装包:
1chown -R grid:oinstall /soft
2su - grid -c "unzip -q /soft/LINUX.X64_193000_grid_home.zip -d /u01/app/19.3.0/grid/"
静默解压oracle安装包:
1chown -R oracle:oinstall /soft
2su - oracle -c "unzip -q /soft/LINUX.X64_193000_db_home.zip -d /u01/app/oracle/product/19.3.0/db/"
静默解压 RU 补丁安装包:
1cd /soft
2chown -R grid:oinstall /soft
3su - grid -c "unzip -q -o /soft/p6880880_190000_Linux-x86-64.zip -d /u01/app/19.3.0/grid"
4su - grid -c "unzip -q /soft/p33182768_190000_Linux-x86-64.zip -d /soft"
5chown -R oracle:oinstall /soft
6su - oracle -c "unzip -q -o /soft/p6880880_190000_Linux-x86-64.zip -d /u01/app/oracle/product/19.3.0/db"
7chown -R grid:oinstall /soft/33182768
📢 注意: 由于19C支持安装grid软件前打RU补丁,因此提前解压OPatch和RU补丁,为安装做准备!
root用户下,cvuqdisk安装(rac01&rac02):
1rpm -ivh /u01/app/19.3.0/grid/cv/rpm/cvuqdisk-1.0.10-1.rpm
2##传输到节点二安装
3scp /u01/app/19.3.0/grid/cv/rpm/cvuqdisk-1.0.10-1.rpm suse02:/soft
4rpm -ivh /soft/cvuqdisk-1.0.10-1.rpm

📢 注意: 19C 版本的 cvu 包换位置了,目录为:$ORACLE_HOME/cv/rpm/,以上所有软件只需要在节点一上传解压即可。
至此,准备工作已经完成,安装前重启主机!
重启后,检查 numa 和透明大页:

📢 注意: 重启后别忘记两个节点 ISCSI 连接共享存储:
1iscsiadm -m node -T iqn.2008-08.com.starwindsoftware:10.211.55.61-lucifer -p 10.211.55.61 -l
四、安装Grid软件(rac01)
关于 VNC 配置具体可参考文章:
配置 grid 用户 vnc 图形界面:
1##root用户下切换到grid用户
2chown -R grid:oinstall /soft
3su - grid
4##执行vncserver,按提示输入密码即可
5vncserver

在 vnc 客户端界面输入 10.211.55.100:2,输入刚才输入的密码即可连接:

打开终端命令行:

开始安装:
1source ~/.profile
2cd $ORACLE_HOME
3##执行安装程序开始安装,通过-applyRU参数指向补丁解压位置,提前安装grid补丁
4./gridSetup.sh -applyRU /soft/33182768

📢 注意: 可以看到,已经开始对 ORACLE_HOME 进行补丁安装。
补丁打完,进入安装界面,选择集群安装:

选择 standlone 模式:

修改 scan 名称,与 hosts 文件配置 scan 名称保持一致:

添加节点二信息,进行互信:

输入 grid 用户密码,创建用户时两节点必须保持一致。先执行 setup,再执行 test,开始互信:


确保对应网卡和IP网段对应即可,19C 心跳网段需要选 ASM & Private,用于 ASM 实例的托管:

选择存储类型,19C 只有两个选项,ASM 只能选 Flex:

GIMR,这里不选择安装:

安装时填创建 OCR 盘,一块盘冗余 External,目录选择 udev 绑的路径:

填写 sys/system 密码,需要记住自己设置的密码:

默认即可:

EM 选择不开,比较占资源,后面安装好后可以配置:

默认即可:




安装预检查:

两个节点执行依赖安装:
1zypper in -y libcap-ng0-32bit libcap1-32bit libcap2-32bit libgcc_s1-32bit libXtst6-32bit nfs-kernel-server libXi6-32bit libXrender1-32bit libpcre1-32bit libpng16-16-32bit libstdc++6-32bit libaio1-32bit
重新检查后,剩下的报错都是 DNS 相关的,可直接忽略:

开始安装 grid:


两节点顺序执行 root.sh,先节点一执行完,再节点二执行:

两个节点的 root.sh 都执行完之后,继续安装:

这个错误查过 MOS 可以忽略:

安装完成:

检查集群状态:

检查 grid 补丁:
1su - grid
2opatch lspatches
3sqlplus -version

五、创建 ASM 数据盘 DATA
这里创建的 DATA 磁盘组主要用于存放数据文件、日志文件等数据库文件!
使用图形化方式添加 ASM DATA 数据盘:




检查 asm 磁盘:

建议重启两台主机,检查重启后 Grid 集群是否正常运行!
六、安装Oracle软件
配置 oracle 用户 vnc 图形界面:
1chown -R oracle:oinstall /soft
2##root用户下切换到grid用户
3su - oracle
4##执行vncserver,按提示输入密码即可
5vncserver
6##在vnc客户端界面输入10.211.55.100:1,输入刚才输入的密码即可连接。

在 vnc 客户端界面输入 10.211.55.100:1,输入刚才输入的密码即可连接:

右键打开终端:

开始安装:
1##应用环境变量
2source ~/.profile
3##进入ORACLE_HOME目录
4cd $ORACLE_HOME
5##执行安装程序开始安装,加上jar包防止弹窗不显示问题
6./runInstaller -applyRU /soft/33182768

📢 注意: 可以看到,已经开始对 ORACLE_HOME 进行补丁安装!
补丁打完,进入安装界面,选择仅安装 Oracle 软件:

选择集群模式:

输入 oracle 用户密码,先执行 setup,再执行 test,开始互信:


选择企业版:

默认即可:



安装预检查,由于我们只配了一个 SCAN,所以关于 DNS 相关的都无视,继续:

开始安装:


root 用户下,两个节点顺序执行 root.sh:

安装完成:

检查补丁版本:
1su - oracle
2opatch lspatches
3sqlplus -version

七、创建数据库实例
这里建库还是在第四步安装 Oracle 软件的 vnc 界面中继续:

选择创建数据库实例:

选择自定义模式:

选择基础安装即可:

选择节点:

填写实例名orcl,由于默认添加为1,2,实例名规划为orcl1/2;选择安装 CDB 模式,不创建PDB:

默认即可,使用 OMF 模式:

不开闪回,不开归档,可以建完实例后再配置:


配置内存,使用 ASMM 模式,数据库总内存占用物理内存 70%-90% 之间:

使用基础模式安装,block_size 是无法修改的,process 进程数修改为1500,根据实际情况修改:

配置数据库字符集,默认 AL32UTF8,国家字符集,默认 AL16UTF16;根据实际情况修改:

建议全关掉,有可能导致 bug:

填写sys/system密码:

默认即可:

安装预检查,DNS 相关忽略:

开始安装:



经过漫长的等待,数据库建完了:

至此,数据库实例创建完成!
八、数据库优化配置(rac01)
1、开启数据库归档模式
关于开启归档模式,具体可参考文章:
1##关闭数据库实例
2srvctl stop database -d orcl
3##开启单个节点到mount模式
4srvctl start instance -d orcl -i orcl1 -o mount
5##开启归档
6sqlplus / as sysdba
7alter database archivelog;
8##设置归档路径
9ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=+DATA';
10exit;
11##重启数据库实例
12srvctl stop instance -d orcl -i orcl1
13srvctl start database -d orcl
14##检查归档
15sqlplus / as sysdba
16archive log list
2、配置定期删除归档计划任务
关于归档日志删除,具体可参考文章:
1##进入oracle用户
2su - oracle
3mkdir -p /home/oracle/scripts/
4##写入脚本
5{
6 echo '#!/bin/bash'
7 echo 'source ~/.profile'
8 echo 'deltime=`date +"20%y%m%d%H%M%S"`'
9 echo "rman target / nocatalog msglog /home/oracle/scripts/del_arch_\${deltime}.log<<EOF"
10 echo 'crosscheck archivelog all;'
11 echo "delete noprompt archivelog until time 'sysdate-7';"
12 echo "delete noprompt force archivelog until time 'SYSDATE-10';"
13 echo 'EOF'
14} >>/home/oracle/scripts/del_arch.sh
15chmod +x /home/oracle/scripts/del_arch.sh
切换到 oracle 用户写入计划任务:
1cat <<EOF>>/var/spool/cron/oracle
212 00 * * * /home/oracle/scripts/del_arch.sh
3EOF
4##手动执行测试
5su - oracle
6/home/oracle/scripts/del_arch.sh
3、配置数据库开机自启
配置数据库实例随集群服务自启动:
1##root用户下执行
2/u01/app/19.3.0/grid/bin/crsctl modify resource "ora.orcl.db" -attr "AUTO_START=always" -unsupported
📢 注意: ora.orcl.db 中的 orcl 是指 db 名称;需要在 root 用户下执行!
所有都配置完成之后,关闭数据库,重启主机!
往期精彩文章
感谢您的阅读,这里是 Lucifer三思而后行,欢迎点赞+关注,我会持续分享数据库知识、运维技巧。