虚拟机RHEL8.5部署oracle19c集群
参考资料:
https://gitcode.com/Open-source-documentation-tutorial/beb05/
https://blog.csdn.net/Shengliang2014/article/details/124608984
https://blog.csdn.net/FJ_MUsea/article/details/127143778
https://blog.csdn.net/Fairchild_1947/article/details/128177871
https://blog.csdn.net/naisiing/article/details/135356940
第一部分 安装规划
环境
虚拟环境:VMware Workstation 17.6
虚拟机:
Oracle主机:2*RHEL8.5(4u+8g+50g+双网卡)
asm主机:1*OpenFiler2.99(1u+1g+100g)
根据本次安装过程中的提示信息,oracle主机需要(建议)至少8G内存和5G交换分区。
主机
Oracle主机
OS 版本:RHEL 8.5.2111
数据库版本:19.3.0.0.0
安装介质:
LINUX.X64_193000_db_home.zip
LINUX.X64_193000_grid_home.zip
软件安装目录:
grid: /u01/app/19.3.0/grid
oracle: /u01/app/oracle/product/19.3.0/db_1
用户和组:
uid=1002(oracle)gid=501(oinstall) groups=501(oinstall),10(wheel),506(asmdba),502(dba),503(oper)
uid=1001(grid) gid=501(oinstall) groups=501(oinstall),502(dba),503(oper),504(asmadmin),505(asmoper),506(asmdba)
网络规划
192.168.165.131 rac1
192.168.165.133 rac2
192.168.165.132 rac1-vip
192.168.165.134 rac2-vip
172.1.1.131 rac1-priv
172.1.1.132 rac2-priv
192.168.165.135 rac-scan
asm主机
ASM磁盘组:
OCRDG: 2G * 3
DATADG: 10G * 2
ARCDG: 10G * 1
OpenFiler
安装配置过程略。
当Firefox显示‘此网站可能不支持TLS1.2’的错误时,用户可以通过修改about:config中的security.tls.version.min设置为1来访问,但这存在安全风险。最佳解决方案是网站升级到TLS1.2协议。

初始账号:openfiler/password


第二部分 Oracle主机系统环境配置
1 更改IO调度为deadline,关闭numa和透明大页
[root@rac1 proc]#cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
[root@rac1 queue]#cat /sys/block/sda/queue/scheduler
noop deadline [cfq]
(1).vi /etc/default/grub(编辑 /etc/default/grub 文件,在GRUB_CMDLINE_LINUX_DEFAULT
条目后面添加"elevator=deadline","transparent_hugepage=never" 和”numa=off”,
执行grub2-mkconfig -o /boot/grub2/grub.cfg 最后重启操作系统)
GRUB_CMDLINE_LINUX_DEFAULT="resume=/dev/rootvg/lvswap mitigations=auto elevator=deadline transparent_hugepage=never numa=off splash=silent quiet showopts crashkernel=183M,high crashkernel=72M,low"
grub2-mkconfig -o /boot/grub2/grub.cfg
(2). 重启操作系统使配置生效.
验证结果:
[root@rac1 ~]#cat /sys/block/sda/queue/scheduler
noop [deadline] cfq
[root@rac1 ~]#cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
2 使用CTSS时钟同步
/sbin/service ntpd stop
chkconfig ntpd off
mv /etc/ntp.conf /etc/ntp.conf.org
systemctl stop chronyd
systemctl disable chronyd
3 配置/etc/hosts解析表
vi /etc/hosts添加
192.168.165.131 rac1
192.168.165.132 rac1-vip
172.1.1.131 rac1-priv
192.168.165.133 rac2
192.168.165.134 rac2-vip
172.1.1.132 rac2-priv
192.168.165.135 racdb-scan
2.4 关闭防火墙
systemctl disable firewalld.service
systemctl stop firewalld.service
5 关闭selinux
vi /etc/selinux/config
SELINUX=disabled
6 关闭NetworkManager(rhel8 禁用后网卡无法正常启动)
systemctl disable NetworkManager
systemctl stop NetworkManager
7 禁用avahi-daemon
systemctl stop avahi-daemon.socket avahi-daemon.service
systemctl disable avahi-daemon.socket avahi-daemon.service
8 配置NOZEROCONF
vi /etc/sysconfig/network
# Created by anaconda
# Recommended value for NOZEROCONF
NOZEROCONF=yes
9 内核参数修改
vi /etc/sysctl.conf
#kernel configuration for oracle 19c
fs.file-max = 13631488
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 2147483648
kernel.shmmax = 4398046510080
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
net.ipv4.ip_local_port_range = 9000 65500
参数说明:
fs.aio-max-nr = 1048576 fs.aio-max-nr:该参数限制了异步 I/O 事件的数量,即在系统上可以同时进行的异步 I/O 操作的最大数目。
fs.file-max = 6815744 fs.file-max:该参数控制了系统上打开文件描述符的最大数量,也就是系统可以打开的文件数目。
kernel.shmall = 4294967296 kernel.shmall:该参数定义了共享内存段总大小的最大值,以页面(4KB)为单位。
kernel.shmmax = 68719476736 kernel.shmmax:该参数指定了单个共享内存段的最大大小,以字节为单位。
kernel.shmmni = 4096 kernel.shmmni:该参数控制了系统上可用的共享内存标识符的最大数目。
kernel.sem = 250 256000 100 1024 kernel.sem:该参数设置了系统上可用的信号量集的最大数目、单个信号量集中的最大信号量数目以及系统范围内的信号量操作数组大小。
net.ipv4.ip_local_port_range = 9000 65500 net.ipv4.ip_local_port_range:该参数定义了本地端口号的范围,这些端口号可以被普通用户进程使用。
net.core.rmem_default = 262144 net.core.rmem_default:该参数定义了 socket 接收缓冲区的默认大小,以字节为单位。
net.core.rmem_max = 10485860 net.core.rmem_max:该参数定义了 socket 接收缓冲区的最大大小,以字节为单位。
net.core.wmem_default = 262144 net.core.wmem_default:该参数定义了 socket 发送缓冲区的默认大小,以字节为单位。
net.core.wmem_max = 10485860 net.core.wmem_max:该参数定义了 socket 发送缓冲区的最大大小,以字节为单位。
vm.min_free_kbytes = 524288 vm.min_free_kbytes:该参数指定了系统上保留未使用内存的最小值,以 KB 为单位。
net.ipv4.ipfrag_high_thresh = 16777216 net.ipv4.ipfrag_high_thresh:该参数定义了一个阈值,当 IP 分片占用的内存超过这个阈值时,系统会采取特定的行动来管理此类分片。
net.ipv4.ipfrag_low_thresh = 15728640 net.ipv4.ipfrag_low_thresh:该参数定义了一个阈值,当 IP 分片占用的内存低于这个阈值时,系统将不再采取特定的行动来管理此类分片。
vm.swappiness = 10 vm.swappiness:该参数控制了页面换入/换出的行为方式,取值范围为 0 到 100,数值越大表示更倾向于使用交换分区,数值越小表示更倾向于使用物理内存。
vm.dirty_background_ratio = 3 vm.dirty_background_ratio:该参数定义了脏页在内存中的最小百分比,当脏页达到此百分比时后台写回进程开始执行。
vm.dirty_ratio = 80 vm.dirty_ratio:该参数定义了脏页在内存中的最大百分比,当脏页达到此百分比时,用户进程被阻塞,操作系统开始强制写回脏页。
vm.dirty_expire_centisecs = 500 vm.dirty_expire_centisecs:该参数定义了脏页的过期时间(以 1/100 秒为单位),在此时间之前,脏页不会被写回磁盘。
vm.dirty_writeback_centisecs = 100 vm.dirty_writeback_centisecs:该参数定义了后台写回进程的唤醒间隔时间(以 1/100 秒为单位)。
内存相关核心参数:
https://www.modb.pro/db/1876813124968398848
1. kernel.shmmax :
是核心参数中最重要的参数之一,用于定义单个共享内存段的最大值。设置应该足够大,能在一个共享内存段下容纳下整个的 SGA , 设置的过低可能会导致需要创建多个共享内存段,这样可能导致系统性能的下降。至于导致系统下降的主要原因为在实例启动以及 ServerProcess 创建的时候,多个小的共享内存段可能会导致当时轻微的系统性能的降低 ( 在启动的时候需要去创建多个虚拟地址段,在进程创建的时候要让进程对多个段进行“识别”,会有一些影响 ) ,但是其他时候都不会有影响。
官方建议值:
32 位 linux 系统:可取最大值为 4GB ( 4294967296bytes ) -1byte ,即 4294967295 。建议值为多于内存的一半,所以如果是 32 为系统,一般可取值为 4294967295 。 32 位系统对 SGA 大小有限制,所以 SGA 肯定可以包含在单个共享内存段中。
64 位 linux 系统:可取的最大值为物理内存值 -1byte ,建议值为多于物理内存的一半,一般取值大于 SGA_MAX_SIZE 即可,可以取物理内存 -1byte 。
内存为 12G 时,该值为 12*1024*1024*1024-1 = 12884901887
内存为 16G 时,该值为 16*1024*1024*1024-1 = 17179869183
内存为 32G 时,该值为 32*1024*1024*1024-1 = 34359738367
内存为 64G 时,该值为 64*1024*1024*1024-1 = 68719476735
内存为 128G 时,该值为 128*1024*1024*1024-1 = 137438953471
2. kernel.shmall :
该参数控制可以使用的共享内存的总页数。 Linux 共享内存页大小为 4KB, 共享内存段的大小都是共享内存页大小的整数倍。
一个共享内存段的最大大小是 16G ,那么需要共享内存页数是 16GB/4KB==4194304 (页),
当内存为 12G 时, kernel.shmall = 3145728
当内存为 16G 时, kernel.shmall = 4194304
当内次为 32G 时, kernel.shmall = 8388608
当内存为 64G 时, kernel.shmall = 16777216
当内存为 128G 时, kernel.shmall = 33554432
#使配置修改生效
sysctl -p
10 添加用户和组
/usr/sbin/groupadd -g 501 oinstall
/usr/sbin/groupadd -g 502 dba
/usr/sbin/groupadd -g 503 oper
/usr/sbin/groupadd -g 504 asmadmin
/usr/sbin/groupadd -g 505 asmoper
/usr/sbin/groupadd -g 506 asmdba
useradd -u 1002 -g oinstall -G dba,asmdba,oper oracle
useradd -u 1001 -g oinstall -G asmadmin,asmdba,asmoper,oper,dba grid
echo grid| passwd --stdin grid
echo oracle | passwd --stdin oracle
11 创建软件安装目录
mkdir -p /u01/app/19.0.0/grid
mkdir -p /u01/app/grid
mkdir -p /u01/app/oracle/product/19.0.0/db_1
chown -R grid:oinstall /u01
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/
mkdir -p /u01/app/19.3.0/grid
mkdir -p /u01/app/19.3.0/db_1
mkdir -p /u01/app/grid
mkdir -p /u01/app/oracle
chown -R grid:oinstall /u01
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/
12 用户环境变量配置
#为grid用户添加环境变量
vi /home/grid/.bash_profile
export ORACLE_BASE=/u01/app/grid
export ORACLE_SID=+ASM1 #(节点2改为ASM2)
export ORACLE_HOME=/u01/app/19.3.0/grid
export PATH=$ORACLE_HOME/OPatch:$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
#为oracle用户添加环境变量
vi /home/oracle/.profile
export ORACLE_BASE=/u01/app/oracle
export ORACLE_SID=racdb1 #(节点2改为racdb2)
export ORACLE_HOME=/u01/app/19.3.0/db_1
export PATH=$ORACLE_HOME/OPatch:$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
13 配置用户资源限制
vi /etc/security/limits.conf
oracle soft nproc 8192
oracle hard nproc 16384
oracle soft nofile 8192
oracle hard nofile 65536
oracle soft stack 10240
grid soft nproc 8192
grid hard nproc 16384
grid soft nofile 8192
grid hard nofile 65536
grid soft stack 10240
vi /etc/pam.d/login 添加
#this is for oracle user
session required pam_limits.so
14 配置全局profile
vi /etc/profile 添加
#this is for oracle user
if [ $USER = "oracle" ]||[ $USER = "grid" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
15 安装rpm依赖包
Oracle官网资料
必需rpm 包:
bc
binutils
elfutils-libelf
elfutils-libelf-devel
fontconfig-devel
glibc
glibc-devel
ksh
libaio
libaio-devel
libXrender
libX11
libXau
libXi
libXtst
libgcc
libnsl
librdmacm
libstdc++
libstdc++-devel
libxcb
libibverbs
make
smartmontools
sysstat
可选rpm 包:
ipmiutil (for Intelligent Platform Management Interface)
libnsl2 (for Oracle Database Client only)
libnsl2-devel (for Oracle Database Client only)
libvirt-libs (for KVM)
net-tools (for Oracle RAC and Oracle Clusterware)
nfs-utils (for Oracle ACFS)
检查依赖包缺失情况:
rpm -q bc \
binutils \
elfutils-libelf \
elfutils-libelf-devel \
fontconfig-devel \
glibc \
glibc-devel \
ksh \
libaio \
libaio-devel \
libXrender \
libX11 \
libXau \
libXi \
libXtst \
libgcc \
libnsl \
librdmacm \
libstdc++ \
libstdc++-devel \
libxcb \
libibverbs \
make \
smartmontools \
sysstat
YUM源配置
将OS系统镜像挂在到虚拟机,挂载镜像:
mkdir /media/rhel
mount /dev/sr0 /media/rhel
配本地置yum源
vi /etc/yum.repos.d/rhel.repo
######################
[BaseOS]
name = BaseOS
baseurl = file:///media/rhel/BaseOS
enabled = 1
gpgcheck = 0
gpgkey = file:///media/rhel/RPM-GPG-KEY-oracle
[AppStream]
name = AppStream
baseurl = file:///media/rhel/AppStream
enabled = 1
gpgcheck = 0
gpgkey = file:///media/rhel/RPM-GPG-KEY-oracle
######################
yum clean all
yum -y install bc \
binutils \
elfutils-libelf \
elfutils-libelf-devel \
fontconfig-devel \
glibc \
glibc-devel \
ksh \
libaio \
libaio-devel \
libXrender \
libX11 \
libXau \
libXi \
libXtst \
libgcc \
libnsl \
librdmacm \
libstdc++ \
libstdc++-devel \
libxcb \
libibverbs \
make \
smartmontools \
sysstat
16 共享存储配置
先把openfiler配置好在进行这一步骤设置。
iscsi 配置:
iscsiadm -m discovery -t st -p 192.168.165.97:3260
iscsiadm -m node -T iqn.2006-01.com.openfiler97:tsn.f45f54616b7c -P 192.168.165.97 --login
iscsiadm -m node
iscsiadm -m session
fdisk -l

systemctl enable iscsi.service
设置共享盘权限
[root@rac1 ~]# cat /etc/udev/rules.d/99-oracle-asmdevice.rules
KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="14f504e46494c45524e49665845412d643177672d73424374", NAME="ocr1", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="14f504e46494c45526d38736f36662d6a356f342d4e4c7346", NAME="ocr2", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="14f504e46494c45524654555941652d4972624d2d6f537a64", NAME="ocr3", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="14f504e46494c4552574a467638462d395043342d5956785a", NAME="data", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="14f504e46494c45526830754948362d556635632d3752324b", NAME="fra", OWNER="grid", GROUP="asmadmin", MODE="0660"
重启后查看磁盘权限

17 SSH互信设置
也可以使用后面grid软件安装过程中的配置用户ssh对等性步骤,我倾向于老办法。
grid用户
su - grid
mkdir ~/.ssh
chmod 755 ~/.ssh
ssh-keygen -t rsa
ssh-keygen -t dsa
在一个节点1 上
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
在传到另一个节点
scp ~/.ssh/authorized_keys rac2:~/.ssh/authorized_keys
在一个节点2 上
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
在传到另一个节点
scp ~/.ssh/authorized_keys rac1:~/.ssh/authorized_keys
验证等效性
exec /usr/bin/ssh-agent $SHELL
/usr/bin/ssh-add
ssh racdb1 date
ssh racdb2 date
ssh racdb1-priv date
ssh racdb2-priv date
Oracle用户
su - oracle
mkdir ~/.ssh
chmod 755 ~/.ssh
ssh-keygen -t rsa
ssh-keygen -t dsa
在一个节点1 上
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
在传到另一个节点
scp ~/.ssh/authorized_keys rac2:~/.ssh/authorized_keys
在一个节点2 上
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
在传到另一个节点
scp ~/.ssh/authorized_keys rac1:~/.ssh/authorized_keys
验证等效性
exec /usr/bin/ssh-agent $SHELL
/usr/bin/ssh-add
ssh rac1 date
ssh rac2 date
ssh rac1-priv date
ssh rac2-priv date
第三部分 安装GRID软件
1 解压及安装cvuqdisk
节点1执行
su - grid
将grid包解压到程序安装位置,安装位置即是以后程序的运行位置:
unzip LINUX.X64_193000_grid_home.zip -d /u01/app/19.3.0/grid
使用root用户安装cvuqdisk包:
su -
[root@rac1 rpm]#rpm -ivh /u01/app/19.3.0/grid/cv/rpm/cvuqdisk-1.0.10-1.rpm
节点2由节点1 scp过去,再进行安装。
2 配置用户ssh互信
(也可以OUI界面配置)
su - grid
cd /u01/app/19.3.0/grid/oui/prov/resources/scripts
./sshUserSetup.sh -user grid -hosts "rac1 rac2" -advanced -noPromptPassphrase
3 安装前环境预检查
su - grid
cd /u01/app/19.3.0/grid
export CV_ASSUME_DISTID=OL8.5
./runcluvfy.sh stage -pre crsinst -n rac1,rac2 -fixup -verbose
开始安装grid
./gridSetup.sh
1.选择安装操作方式
2.选择集群类型
3.配置集群信息
4.配置集群节点
在rhel8中,节点验证会出现ssh验证报错,网上说是因为系统中ssh版本过高导致
[INS-44000] Passwordless SSH connectivity is not setup from the local node rac1 to the following nodes: [rac2]
These nodes will be ignored and not participate in the configured Grid Infrastructure.
[INS-44015] Passwordless SSH connectivity is not setup from the local node rac1 to itself.
[INS-06003] Failed to setup passwordless SSH connectivity with the following node(s): [rac2, rac1]
https://blog.csdn.net/FJ_MUsea/article/details/127143778
#ssh -V
OpenSSH_8.0p1, OpenSSL 1.0.2r 26 Feb 2019
# Rename the original scp.
mv /usr/bin/scp /usr/bin/scp.orig
# Create a new file </usr/bin/scp>.
vi /usr/bin/scp
# Add the below line to the new created file </usr/bin/scp>.
/usr/bin/scp.orig -T $*
# Change the file permission.
chmod 555 /usr/bin/scp
5.配置网络接口

6.选择存储类型

7.是否配置GIMR

8.创建表决磁盘

9.设置asm密码

10.是否配置IPMI
失败隔离是失败的节点从其他的集群中被隔离,防止失败的节点破坏数据。这里的隔离是个外部机制,包括在没有Oracle Clusterware或者在节点运行的操作系统的合作下重启问题节点的能力。为了提供这个能力,Oracle Clusterware 11gR2支持IPMI。IPMI(Intelligent Management Platform. Interface)规范,是标准的工业管理协议。也被叫做BMC(Baseboard Management Controller)。在Grid Infrastructure安装期间你使用IPMI配置失败隔离,当你在失败隔离支持屏幕提供了配置IPMI的选项。如果你在安装期间没有配置IPMI,那么安装之后你能使用CRSCTL工具配置它。
为了失败隔离使用IPMI,每个集群成员节点必须配置IPMI设备,运行固件与IPMI 1.5版本兼容,支持IPMI在LAN上。在数据库操作期间,通过LAN和失败节点的IPMI设备通信,将CSS守护进程驱逐,完成失败隔离。在LAN上的IPMI协议存储认证会话,通过用户名和密码收到保护,用户名和密码是在安装期间从管理员处获得。

11.注册集群到EMCC

12.设置管理组

13.设置grid根目录

14.oraInventory,记录oracle安装目录相关信息,在oracle软件安装过程中会自动创建。

15.root用户执行的脚本

16.预检查



17.安装信息总览

18.开始安装

root用户下手动执行脚本

[root@rac1 ~]# /u01/app/oraInventory/orainstRoot.sh
Changing permissions of /u01/app/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.
Changing groupname of /u01/app/oraInventory to oinstall.
The execution of the script is complete.
[root@rac1 ~]# /u01/app/19.3.0.0/grid/root.sh
Performing root user operation.
The following environment variables are set as:
ORACLE_OWNER= grid
ORACLE_HOME= /u01/app/19.3.0.0/grid
Enter the full pathname of the local bin directory: [/usr/local/bin]:
The file "dbhome" already exists in /usr/local/bin. Overwrite it? (y/n)
[n]: y
Copying dbhome to /usr/local/bin ...
The file "oraenv" already exists in /usr/local/bin. Overwrite it? (y/n)
[n]: y
Copying oraenv to /usr/local/bin ...
The file "coraenv" already exists in /usr/local/bin. Overwrite it? (y/n)
[n]: y
Copying coraenv to /usr/local/bin ...
Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Relinking oracle with rac_on option
Using configuration parameter file: /u01/app/19.3.0.0/grid/crs/install/crsconfig_params
The log of current session can be found at:
/u01/app/grid/crsdata/rac1/crsconfig/rootcrs_rac1_2025-07-15_02-55-09AM.log
2025/07/15 02:55:15 CLSRSC-594: Executing installation step 1 of 19: 'SetupTFA'.
2025/07/15 02:55:15 CLSRSC-594: Executing installation step 2 of 19: 'ValidateEnv'.
2025/07/15 02:55:15 CLSRSC-363: User ignored prerequisites during installation
2025/07/15 02:55:15 CLSRSC-594: Executing installation step 3 of 19: 'CheckFirstNode'.
2025/07/15 02:55:16 CLSRSC-594: Executing installation step 4 of 19: 'GenSiteGUIDs'.
2025/07/15 02:55:17 CLSRSC-594: Executing installation step 5 of 19: 'SetupOSD'.
2025/07/15 02:55:17 CLSRSC-594: Executing installation step 6 of 19: 'CheckCRSConfig'.
2025/07/15 02:55:17 CLSRSC-594: Executing installation step 7 of 19: 'SetupLocalGPNP'.
2025/07/15 02:55:27 CLSRSC-594: Executing installation step 8 of 19: 'CreateRootCert'.
2025/07/15 02:55:30 CLSRSC-594: Executing installation step 9 of 19: 'ConfigOLR'.
2025/07/15 02:55:37 CLSRSC-4002: Successfully installed Oracle Trace File Analyzer (TFA) Collector.
2025/07/15 02:55:41 CLSRSC-594: Executing installation step 10 of 19: 'ConfigCHMOS'.
2025/07/15 02:55:41 CLSRSC-594: Executing installation step 11 of 19: 'CreateOHASD'.
2025/07/15 02:55:44 CLSRSC-594: Executing installation step 12 of 19: 'ConfigOHASD'.
2025/07/15 02:55:44 CLSRSC-330: Adding Clusterware entries to file 'oracle-ohasd.service'
2025/07/15 02:56:04 CLSRSC-594: Executing installation step 13 of 19: 'InstallAFD'.
2025/07/15 02:56:08 CLSRSC-594: Executing installation step 14 of 19: 'InstallACFS'.
2025/07/15 02:56:11 CLSRSC-594: Executing installation step 15 of 19: 'InstallKA'.
2025/07/15 02:56:15 CLSRSC-594: Executing installation step 16 of 19: 'InitConfig'.
ASM has been created and started successfully.
[DBT-30001] Disk groups created successfully. Check /u01/app/grid/cfgtoollogs/asmca/asmca-250715AM025644.log for details.
2025/07/15 02:57:35 CLSRSC-482: Running command: '/u01/app/19.3.0.0/grid/bin/ocrconfig -upgrade grid oinstall'
CRS-4256: Updating the profile
Successful addition of voting disk 8134e85ffff24f28bff05c2e70dfdb41.
Successful addition of voting disk 44258aa4c37e4ff4bf8e7ffb554f1d39.
Successful addition of voting disk e857487d62e54f51bfa5113e562a33c6.
Successfully replaced voting disk group with +ocrdb.
CRS-4256: Updating the profile
CRS-4266: Voting file(s) successfully replaced
## STATE File Universal Id File Name Disk group
-- ----- ----------------- --------- ---------
1. ONLINE 8134e85ffff24f28bff05c2e70dfdb41 (/dev/sdb) [OCRDB]
2. ONLINE 44258aa4c37e4ff4bf8e7ffb554f1d39 (/dev/sdc) [OCRDB]
3. ONLINE e857487d62e54f51bfa5113e562a33c6 (/dev/sdd) [OCRDB]
Located 3 voting disk(s).
2025/07/15 02:59:01 CLSRSC-594: Executing installation step 17 of 19: 'StartCluster'.
2025/07/15 03:00:05 CLSRSC-343: Successfully started Oracle Clusterware stack
2025/07/15 03:00:05 CLSRSC-594: Executing installation step 18 of 19: 'ConfigNode'.
2025/07/15 03:01:06 CLSRSC-594: Executing installation step 19 of 19: 'PostConfig'.
2025/07/15 03:01:26 CLSRSC-325: Configure Oracle Grid Infrastructure for a Cluster ... succeeded
[root@rac1 ~]#
[root@rac2 oraInventory]# /u01/app/oraInventory/orainstRoot.sh
Changing permissions of /u01/app/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.
Changing groupname of /u01/app/oraInventory to oinstall.
The execution of the script is complete.
[root@rac2 oraInventory]#
[root@rac2 oraInventory]# /u01/app/19.3.0.0/grid/root.sh
Performing root user operation.
The following environment variables are set as:
ORACLE_OWNER= grid
ORACLE_HOME= /u01/app/19.3.0.0/grid
Enter the full pathname of the local bin directory: [/usr/local/bin]:
Copying dbhome to /usr/local/bin ...
Copying oraenv to /usr/local/bin ...
Copying coraenv to /usr/local/bin ...
Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Relinking oracle with rac_on option
Using configuration parameter file: /u01/app/19.3.0.0/grid/crs/install/crsconfig_params
The log of current session can be found at:
/u01/app/grid/crsdata/rac2/crsconfig/rootcrs_rac2_2025-07-15_03-03-01AM.log
2025/07/15 03:03:04 CLSRSC-594: Executing installation step 1 of 19: 'SetupTFA'.
2025/07/15 03:03:04 CLSRSC-594: Executing installation step 2 of 19: 'ValidateEnv'.
2025/07/15 03:03:04 CLSRSC-363: User ignored prerequisites during installation
2025/07/15 03:03:04 CLSRSC-594: Executing installation step 3 of 19: 'CheckFirstNode'.
2025/07/15 03:03:05 CLSRSC-594: Executing installation step 4 of 19: 'GenSiteGUIDs'.
2025/07/15 03:03:05 CLSRSC-594: Executing installation step 5 of 19: 'SetupOSD'.
2025/07/15 03:03:05 CLSRSC-594: Executing installation step 6 of 19: 'CheckCRSConfig'.
2025/07/15 03:03:05 CLSRSC-594: Executing installation step 7 of 19: 'SetupLocalGPNP'.
2025/07/15 03:03:06 CLSRSC-594: Executing installation step 8 of 19: 'CreateRootCert'.
2025/07/15 03:03:06 CLSRSC-594: Executing installation step 9 of 19: 'ConfigOLR'.
2025/07/15 03:03:13 CLSRSC-594: Executing installation step 10 of 19: 'ConfigCHMOS'.
2025/07/15 03:03:13 CLSRSC-594: Executing installation step 11 of 19: 'CreateOHASD'.
2025/07/15 03:03:14 CLSRSC-594: Executing installation step 12 of 19: 'ConfigOHASD'.
2025/07/15 03:03:14 CLSRSC-330: Adding Clusterware entries to file 'oracle-ohasd.service'
2025/07/15 03:03:26 CLSRSC-4002: Successfully installed Oracle Trace File Analyzer (TFA) Collector.
2025/07/15 03:03:32 CLSRSC-594: Executing installation step 13 of 19: 'InstallAFD'.
2025/07/15 03:03:33 CLSRSC-594: Executing installation step 14 of 19: 'InstallACFS'.
2025/07/15 03:03:33 CLSRSC-594: Executing installation step 15 of 19: 'InstallKA'.
2025/07/15 03:03:34 CLSRSC-594: Executing installation step 16 of 19: 'InitConfig'.
2025/07/15 03:03:42 CLSRSC-594: Executing installation step 17 of 19: 'StartCluster'.
2025/07/15 03:04:28 CLSRSC-343: Successfully started Oracle Clusterware stack
2025/07/15 03:04:28 CLSRSC-594: Executing installation step 18 of 19: 'ConfigNode'.
2025/07/15 03:04:36 CLSRSC-594: Executing installation step 19 of 19: 'PostConfig'.
2025/07/15 03:04:41 CLSRSC-325: Configure Oracle Grid Infrastructure for a Cluster ... succeeded
[root@rac2 oraInventory]#
19.安装完成

4 安装完成
安装完成,查看crs状态。

查看asm磁盘组
[grid@rac1 ~]$asmca


添加asm磁盘组
[grid@rac1 ~]$asmca
添加asm磁盘组datadg、fradg,用于后面数据库安装过程的数据文件和快速恢复区。


第四部分 安装Oracle
节点1执行
1 解压软件
su - oracle
unzip /u01/soft/LINUX.X64_193000_db_home.zip -d /u01/app/19.3.0/db_1
2 配置用户ssh对等性
(也可以OUI界面配置)
su - oracle
cd /u01/app/oracle/product/19.3.0/db_1/oui/prov/resources/scripts
./sshUserSetup.sh -user oracle -hosts "rac1 rac2" -advanced -noPromptPassphrase
3 开始安装db软件
只安装软件,不建库。
cd /u01/app/oracle/product/19.3.0/db_1
export CV_ASSUME_DISTID=OL8.5
./runInstaller












[root@rac1 19.3.0.0]# /u01/app/19.3.0.0/oracle/root.sh
Performing root user operation.
The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /u01/app/19.3.0.0/oracle
Enter the full pathname of the local bin directory: [/usr/local/bin]:
The contents of "dbhome" have not changed. No need to overwrite.
The contents of "oraenv" have not changed. No need to overwrite.
The contents of "coraenv" have not changed. No need to overwrite.
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
[root@rac1 ~]#
[root@rac2 19.3.0.0]#/u01/app/19.3.0.0/oracle/root.sh
Performing root user operation.
The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /u01/app/19.3.0.0/oracle
Enter the full pathname of the local bin directory: [/usr/local/bin]:
The contents of "dbhome" have not changed. No need to overwrite.
The contents of "oraenv" have not changed. No need to overwrite.
The contents of "coraenv" have not changed. No need to overwrite.
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
[root@rac2 19.3.0.0]#

第五部分 创建数据库
节点1执行
su - oracle
dbca
过程略。
如果是创建非容器数据库,全程几乎没有报错,建库成功;
如果是创建容器数据库,过程中有报错,且最终建库失败,主节点数据库实例启动,但是没有生成种子数据库和其他pdb数据库;实例在手动关闭后无法启动,原因是建库过程没有完成,没有生成spfile文件和pfile文件以及其他很多文件;
可以尝试的解决方法:在最后一步开始建库开始执行后,待到磁盘组中生成了数据库目录,马上手动在asm磁盘组中创建容器数据库目录:
asmcmd
cd datadg
ls (看数据库目录是否生成,生成后继续)
cd racdb/
mkdir pdbseed
mkdir pdb1
......
通过以上方式可以成功建库,实例和集群都正常。
查看数据库文件结构
[grid@rac1 ~]$ asmcmd
ASMCMD> cd datadg/racdb
ASMCMD> ls
3A93E2D364914D98E06383A5A8C05952/
3A94A32F33DDCB51E06383A5A8C05336/
86B637B62FE07A65E053F706E80A27CA/
CONTROLFILE/
DATAFILE/
ONLINELOG/
PARAMETERFILE/
PASSWORD/
TEMPFILE/
control01.ctl
pdb1/
pdbseed/
redo01.log
redo02.log
redo03.log
redo04.log
sysaux01.dbf
system01.dbf
temp01.dbf
undotbs01.dbf
undotbs02.dbf
users01.dbf
ASMCMD> cd pdbseed
ASMCMD> ls
sysaux01.dbf
system01.dbf
temp012025-07-23_14-34-11-867-PM.dbf
undotbs01.dbf
ASMCMD> cd ..
ASMCMD> cd pdb1
ASMCMD> ls
sysaux01.dbf
system01.dbf
system01_i2_undo.dbf
temp012025-07-23_14-34-11-867-pm.dbf
undotbs01.dbf
users01.dbf
ASMCMD> cd ..
ASMCMD> cd parameterfile
ASMCMD> ls
spfile.281.1207233757
ASMCMD>
最后 查看状态
系统状态


心疼拯救者1秒钟
集群状态
[grid@rac1 ~]$ crsctl status res -t
--------------------------------------------------------------------------------
Name Target State Server State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
ONLINE ONLINE rac1 STABLE
ONLINE ONLINE rac2 STABLE
ora.chad
ONLINE ONLINE rac1 STABLE
ONLINE ONLINE rac2 STABLE
ora.net1.network
ONLINE ONLINE rac1 STABLE
ONLINE ONLINE rac2 STABLE
ora.ons
ONLINE ONLINE rac1 STABLE
ONLINE ONLINE rac2 STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup)
1 ONLINE ONLINE rac1 STABLE
2 ONLINE ONLINE rac2 STABLE
3 ONLINE OFFLINE STABLE
ora.DATADG.dg(ora.asmgroup)
1 ONLINE ONLINE rac1 STABLE
2 ONLINE ONLINE rac2 STABLE
3 OFFLINE OFFLINE STABLE
ora.FRADG.dg(ora.asmgroup)
1 ONLINE ONLINE rac1 STABLE
2 ONLINE ONLINE rac2 STABLE
3 OFFLINE OFFLINE STABLE
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE rac1 STABLE
ora.OCRDG.dg(ora.asmgroup)
1 ONLINE ONLINE rac1 STABLE
2 ONLINE ONLINE rac2 STABLE
3 OFFLINE OFFLINE STABLE
ora.asm(ora.asmgroup)
1 ONLINE ONLINE rac1 Started,STABLE
2 ONLINE ONLINE rac2 Started,STABLE
3 OFFLINE OFFLINE STABLE
ora.asmnet1.asmnetwork(ora.asmgroup)
1 ONLINE ONLINE rac1 STABLE
2 ONLINE ONLINE rac2 STABLE
3 OFFLINE OFFLINE STABLE
ora.cvu
1 ONLINE ONLINE rac1 STABLE
ora.qosmserver
1 ONLINE ONLINE rac1 STABLE
ora.rac1.vip
1 ONLINE ONLINE rac1 STABLE
ora.rac2.vip
1 ONLINE ONLINE rac2 STABLE
ora.racdb.db
1 ONLINE ONLINE rac1 Open,HOME=/u01/app/1
9.3.0/db_1,STABLE
2 ONLINE ONLINE rac2 Open,HOME=/u01/app/1
9.3.0/db_1,STABLE
ora.scan1.vip
1 ONLINE ONLINE rac1 STABLE
--------------------------------------------------------------------------------
[grid@rac1 ~]$
pfile参数文件
racdb1.__data_transfer_cache_size=0
racdb2.__data_transfer_cache_size=0
racdb2.__db_cache_size=1728053248
racdb1.__db_cache_size=1711276032
racdb1.__inmemory_ext_roarea=0
racdb2.__inmemory_ext_roarea=0
racdb1.__inmemory_ext_rwarea=0
racdb2.__inmemory_ext_rwarea=0
racdb1.__java_pool_size=0
racdb2.__java_pool_size=0
racdb1.__large_pool_size=16777216
racdb2.__large_pool_size=16777216
racdb1.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
racdb2.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
racdb1.__pga_aggregate_target=822083584
racdb2.__pga_aggregate_target=822083584
racdb1.__sga_target=2449473536
racdb2.__sga_target=2449473536
racdb1.__shared_io_pool_size=117440512
racdb2.__shared_io_pool_size=117440512
racdb2.__shared_pool_size=570425344
racdb1.__shared_pool_size=587202560
racdb1.__streams_pool_size=0
racdb2.__streams_pool_size=0
racdb1.__unified_pga_pool_size=0
racdb2.__unified_pga_pool_size=0
*.audit_file_dest='/u01/app/oracle/admin/racdb/adump'
*.audit_trail='db'
*.cluster_database=true
*.compatible='19.0.0'
*.control_files='+DATADG/RACDB/control01.ctl','+FRADG/RACDB/control02.ctl'
*.db_block_size=8192
*.db_name='racdb'
*.db_recovery_file_dest='+FRADG'
*.db_recovery_file_dest_size=20480m
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=racdbXDB)'
*.enable_pluggable_database=true
family:dw_helper.instance_mode='read-only'
racdb1.instance_number=1
racdb2.instance_number=2
*.local_listener='-oraagent-dummy-'
*.log_archive_format='%t_%s_%r.dbf'
*.nls_language='AMERICAN'
*.nls_territory='AMERICA'
*.open_cursors=300
*.pga_aggregate_target=774m
*.processes=320
*.remote_login_passwordfile='exclusive'
*.sga_target=2322m
racdb2.thread=2
racdb1.thread=1
racdb2.undo_tablespace='UNDOTBS2'
racdb1.undo_tablespace='UNDOTBS1'
asm磁盘组

数据库
[oracle@rac1 ~]$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Wed Jul 23 18:08:40 2025
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> select * from v$version;
BANNER
--------------------------------------------------------------------------------
BANNER_FULL
--------------------------------------------------------------------------------
BANNER_LEGACY
--------------------------------------------------------------------------------
CON_ID
----------
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
0
BANNER
--------------------------------------------------------------------------------
BANNER_FULL
--------------------------------------------------------------------------------
BANNER_LEGACY
--------------------------------------------------------------------------------
CON_ID
----------
SQL>
SQL> select name,open_mode from v$pdbs;
NAME
--------------------------------------------------------------------------------
OPEN_MODE
----------
PDB$SEED
READ ONLY
PDB1
READ WRITE
SQL>
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 6
Next log sequence to archive 7
Current log sequence 7
SQL>
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)