本地环境安装部署Oracle Rac集群(双节点)

目录

一、前期准备工作

1.1.下载所需的环境包

二、部署操作系统

[2.1. 部署两台虚拟机](#2.1. 部署两台虚拟机)

2.2.配置节点网络

2.3.配置yum源

2.4.安装软件包或直接安装预安装包

2.4.安装Oracle的预安装包

2.5.网络配置

2.6.添加共享磁盘

2.7.修改虚拟机配置文件

2.8.安装多路径软件multipath

2.9.配置UDEV规则

2.9.1.使用整盘,推荐方式(这里也是以这种为示例)

[2.10. 应用UDEV规则](#2.10. 应用UDEV规则)

2.11.配置hosts文件

2.11.1.配置hostname

2.11.2.配置hosts文件

2.12.配置防火墙

2.13.关闭Selinux

2.14.时间同步配置

2.14.1.禁用chronyd

2.14.2.配置ntpdate时间同步计划任务

2.15.关闭透明大页和NUMA

2.15.1.方式一

步骤1:编辑grub配置文件

步骤2:修改内核参数

步骤3:重新生成grub配置

2.15.2.方式二

2.16.Avahi-daemon配置

2.17.系统参数配置

2.18.系统资源配置限制

2.19.创建用户、用户组和安装目录

[2.19.1. 创建用户和组](#2.19.1. 创建用户和组)

2.19.2.创建目录结构

2.20.配置环境变量

2.20.1.grid用户环境变量设置

2.20.2.oracle用户环境变量设置

2.21.上传所需所有安装包

2.21.1.解压安装包

2.21.2.安装cvuqdisk包

2.22.配置SSH互信

2.22.1.使用rsa非对称算法生成密钥对

2.22.2.p19c01

2.22.3.p19c02

三、安装GRID集群软件

3.1.授权

3.2.集群安装环境自检

3.2.开始安装

3.3.修改scan名称

3.4.添加节点信息,进行互信

3.5.输入grid的密码进行测试ssh连接

3.7.确保对应网卡和IP网段对应

3.8.选择存储类型,ASM只能选择FLEX

3.9.GIMR

3.10.安装时选择OCR盘

3.11.填写SYS/SYSTEM密码

3.12.默认即可

3.13.默认不开启

3.14.默认即可

3.15.选择grid的基位置

3.16.选择是否自动运行配置脚本

3.17.执行安装检查

3.18.查看预检查结果,并处理失败项

​编辑

1)多点传送或广播检查

步骤1:检查当前实际网卡

步骤2:删除错误的ens36配置

步骤3:重命名ens34为ens36(正确方法)

步骤4:重载配置并重启网络

2)ASM完整性

3)单客户机访问名(SCAN)

4)节点连接性

5)网络时间协议(NTP)

6)DNS/NIS名称服务

3.19.再次进行预检查

3.20.忽略提示项,执行安装

[3.20.1. 执行root脚本(关键步骤)](#3.20.1. 执行root脚本(关键步骤))

3.20.2.完成安装配置

3.21.检查集群状态

3.21.1.检查集群状态

3.21.2.检查节点状态

3.21.3.检查节点状态

3.21.4.检查监听和SCAN

四、创建ASM数据盘DATA

4.1.使用图形化的方式进行创建

​编辑

4.2.检查ASM磁盘

4.2.1.检查ASM实例状态

4.2.2.查看ASM磁盘组

4.2.3.连接到ASM实例

4.2.4.检查OCR和投票磁盘

[五、安装Oracle Database软件](#五、安装Oracle Database软件)

[5.1. 运行oracle数据库软件安装图形化界面](#5.1. 运行oracle数据库软件安装图形化界面)

5.2.选择安装类型

5.3.选择数据库安装类型

5.4.选择安装节点信息

5.5.选择数据库的安装版本(企业版)

5.6.选择安装位置(默认即可)

5.7.选择操作系统组成员

5.8.选择是否自动运行配置脚本

5.9.执行安装前预检查

1)/etc/resolve.conf问题

2)用户oracle的ASM存储权限问题

3)安装界面点击"重新检查"

[5.10. 执行root脚本](#5.10. 执行root脚本)

六、创建RAC数据库实例

[6.1. 使用DBCA](#6.1. 使用DBCA)

[6.3. 验证数据库](#6.3. 验证数据库)


一、前期准备工作

前期准备:着重准备操作系统镜像、Oracle19c集群软件、Oracle19c的数据库软件。

1.1.下载所需的环境包

前期准备:准备操作系统镜像、Oracle19c集群软件、Oracle19c的数据库软件。

通过网盘分享的文件:LINUX.X64_193000_db_home.zip等2个文件

链接: https://pan.baidu.com/s/1apIzHXQWEELWULhGWUR1Hg?pwd=iz4h 提取码: iz4h

--来自百度网盘超级会员v4的分享

|-----------------|------------------|--------|--------|
| 软件 | 版本 | 大小 | 用途 |
| Oracle Linux7.6 | GUI | 2~3G | 操作系统 |
| Oracle 19c Grid | 19.3.0 for Linux | 2~3G | 集群软件 |
| Oracle 19c DB | 19.3.0 for Linux | 2~3G | 数据库软件 |

二、部署操作系统

2.1. 部署两台虚拟机

以下是虚拟机配置(资源够的一定多给点空间)

  1. 文件 > 新建虚拟机

  2. 选择 自定义(高级)

  3. 硬件兼容性:Workstation 16.x

  4. 安装来源:使用ISO映像(选择准备的镜像文件)

  5. 操作系统:Linux > Oracle Linux 7 64位

  6. 虚拟机名称:自定义

  7. 位置:自定义

  8. 处理器:2个处理器,每个2核心(共4个逻辑CPU)

  9. 内存:6G MB

  10. 网络:

    • 第一个适配器:自定义 > VMnet2 (NAT)

    • 第二个适配器:自定义 > VMnet3 (仅主机)

  11. SCSI控制器:LSI Logic(必须)

  12. 磁盘:创建新虚拟磁盘

  13. 磁盘大小:80 GB,选择 将虚拟磁盘拆分成多个文件

  14. 磁盘文件:默认名称

2.2.配置节点网络

网络规划(准备两张网卡即可)

编辑->虚拟网络编辑器

|---------------|----------------|----------------|---------------------------------|
| 网络类型 | 节点1 | 节点2 | 作用说明 |
| 共有网络(Public) | 192.168.75.101 | 192.168.75.102 | 用于客户端连接、管理连接、SCAN监听(必须) |
| 私有网络(Private) | 172.25.254.211 | 172.25.254.212 | 用于节点间心跳、缓存融合、ASM通信 |
| SCAN网络 | 192.168.75.103 | 192.168.75.104 | 单一客户端访问名称、负载均衡(依赖公有网络) |
| 存储网络 | 192.168.75.120 | 192.168.75.120 | ASM/OCR/Voting Disk访问(可复用私有或独立) |

2.3.配置yum源

Linux操作系统如何使用ISO镜像文件来搭建本地镜像源?_linux iso-CSDN博客

2.4.安装软件包或直接安装预安装包

|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| yum groupinstall -y "Server with GUI" 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* \ tigervnc* \ psmisc --skip-broken |

2.4.安装Oracle的预安装包

yum install oracle* y

通常Oracle预安装的话,会创建对应的组和用户,但还需要进一步检查。

Oracle安装需专用用户和组(避免使用root直接操作):

创建必需的操作系统用户和组:

-- oinstall:系统安装组

-- dba:数据库管理员组

可选组(如果要在多个用户间划分职责):

-- oper:OSOPER/SYSOPER权限(受限管理),用于职责分离

-- asmdba:ASM数据库管理员组(OSDBA)

-- asmoper:ASM实例管理员组(OSPER)

-- asmadmin:ASM实例管理员组(OSASM)

用户:

-- 软件所有者,通常为 oracle

-- 可以为多个产品安装创建多个用户

检查安装包:

rpm -qa bc binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat motif motif-devel smartmontools net-tools

2.5.网络配置

在添加完网卡之后,如果没有找到配置文件,就手动创建一个

sudo cat > /etc/sysconfig/network-scripts/ifcfg-ens36 << 'EOF'

DEVICE=ens36

TYPE=Ethernet

ONBOOT=yes

BOOTPROTO=static

IPADDR=192.168.215.212

NETMASK=255.255.255.0

NM_CONTROLLED=no

DEFROUTE=no

EOF

2.6.添加共享磁盘

|----------|-----------------|----------|
| 磁盘名称 | 磁盘用途 | 磁盘大小 |
| asm-ocr | OCR/Voting File | 20G |
| asm-data | Data Files | 25G |

如下:

添加第二个节点的共享盘时,选择现有的虚拟磁盘即可。

2.7.修改虚拟机配置文件

在rac01、rac02修改虚拟机配置文件追加:

scsi1.sharedBus = "virtual"

disk.locking = "false"

diskLib.dataCacheMaxSize = "0"

diskLib.dataCacheMaxReadAheadSize = "0"

diskLib.dataCacheMinReadAheadSize = "0"

diskLib.dataCachePageSize = "4096"

diskLib.maxUnsyncedWrites = "0"

disk.EnableUUID = "TRUE"

打开虚拟机,前往查看

2.8.安装多路径软件multipath

yum install -y device-mapper*

mpathconf --enable --with_multipathd y

查看共享盘的scsi_id

/usr/lib/udev/scsi_id -g -u /dev/sdb

/usr/lib/udev/scsi_id -g -u /dev/sdc

配置multipath配置文件/etc/multipath

激活multipath多路径

查看是否有任何多路径设备

dmsetup ls

重新加载multipath配置

multipath -F # 刷新所有多路径设备

multipath -v2 # 重新扫描

multipath -ll # 查看多路径设备

2.9.配置UDEV规则

UDEV 是 Userspace DEVice management(用户空间设备管理)的缩写。

在两节点上创建UDEV规则 sudo vi /etc/udev/rules.d/99-oracle-asm.rules

2.9.1.使用整盘,推荐方式(这里也是以这种为示例)

1)说明

KERNEL=="sd*", ENV{DEVTYPE}=="disk", SUBSYSTEM=="block",PROGRAM="/usr/lib/udev/scsi_id -g -u -d devnode", RESULT=="36000c29f le44953dc3bf6bde7ff6ifd1", RUN+="/bin/sh -c 'mknod /dev/asmdisk1 b major $minor; chown grid:asmadmin /dev/asmdisk1; chmod 0660 /dev/asmdisk1'"

注意:

KERNEL=="sd*", # 匹配内核设备名以"sd"开头(SCSI/SAS磁盘)

ENV{DEVTYPE}=="disk", # 设备类型必须是物理磁盘(不是分区)

SUBSYSTEM=="block", # 子系统必须是块设备

PROGRAM="/usr/lib/udev/scsi_id -g -u -d $devnode", # 执行程序获取SCSI ID

RESULT=="36000c29f le44953dc3bf6bde7ff6ifd1", # 匹配特定SCSI ID的磁盘

RUN+="/bin/sh -c 'mknod /dev/asmdisk1 b major minor; chown grid:asmadmin /dev/asmdisk1; chmod 0660 /dev/asmdisk1'" # 匹配成功后执行的操作

2)收集设备信息:

cd /dev/mapper

for i in asm*; do

printf "%s %s\n" "i" "(udevadm info --query=all --name=/dev/mapper/"$i" | grep -i dm_uuid)" >>/dev/mapper/udev_info

done

3)生成UDVE规则

while read -r line; do

dm_uuid=(echo "{line}" | awk -F '=' '{print $2}')

disk_name=(echo "{line}" | awk '{print $1}')

echo "KERNEL==\"dm-*\",ENV{DM_UUID}=\"{dm_uuid}\\",SYMLINK+=\\"{disk_name}\",OWNER=\"grid\",GROUP=\"asmadmin\",MODE=\"0660\"" >> /etc/udev/rules.d/99-oracle-asmddevices.rules

done </dev/mapper/udev_info

4)或则手动配置UDVE规则(推荐)

使用 DM_NAME 匹配多路径别名

KERNEL=="dm-*", ENV{DM_NAME}=="asm_ocr", SYMLINK+="asm_ocr", OWNER="grid", GROUP="asmadmin", MODE="0660"

KERNEL=="dm-*", ENV{DM_NAME}=="asm_data", SYMLINK+="asm_data", OWNER="grid", GROUP="asmadmin", MODE="0660"

2.10. 应用UDEV规则

# 重新加载UDEV规则

systemctl restart systemd-udevd.service

udevadm control --reload-rules

/sbin/udevadm trigger --type=devices --action=add

/sbin/udevadm trigger --type=devices --action=change

# 检查权限 ls -l /dev/sd[c-d]* # 应该显示:grid:asmadmin(目前我们没有grid用户,晚点创建,请看2.19节)

ls -l /dev/asm*

但是,可以看到,其用户及用户组并没有归属到grid:asmadmin,检查一下看是否存在asmadmin组

命令:cat /etc/group

可以看到并没有这个组,那就新建一个这个组:groupadd asmadmin

groupadd dba

groupadd asmdba

groupadd asmadmin

groupadd asmoper

usermod -aG dba,asmdba,asmadmin,asmoper grid

将dba,asmdba,asmadmin,asmoper组附加给grid用户

再次刷新前面UDEV的规则配置,如果还不行,直接授权

命令:chown -R grid:asmadmin /dev/asm*

2.11.配置hosts文件

2.11.1.配置hostname

hostnamectl set-hostname p19c01

hostname

hostnamectl set-hostname p19c02

hostname

注意:因为这里需要重启才能生效,我这里先不重启,因为后续还会涉及到重启。

2.11.2.配置hosts文件

cd /etc/hosts

#Public IP

192.168.75.101 p19c01

192.168.75.102 p19c02

#Private IP

172.25.254.211 p19c01-priv

172.25.254.212 p19c02-priv

#Vip IP

192.168.75.103 p19c01-vip

192.168.75.104 p19c02-vip

Scan IP

192.168.75.105 p19c-scan

2.12.配置防火墙

systemctl status firewalld

systemctl stop firewalld

systemctl disabled firewalld

systemctl status firewalld

2.13.关闭Selinux

cd /etc/selinux/

vi config

注意:(selinux 配置需要重启才能生效!)

2.14.时间同步配置

2.14.1.禁用chronyd

systemctl stop chronyd.service

systemctl disable chronyd.service

2.14.2.配置ntpdate时间同步计划任务

node1:yum install -y ntpdate

node2:yum install -y ntpdate

ntpdate -u ntp1.aliyun.com

hwclock -w # 写入硬件时钟

2.15.关闭透明大页和NUMA

Linux7配置内核文件,关闭透明大页和numa:

查看当前是否开启透明大页(如果开启的话,往下边执行,相反则跳过这个步骤)

cat /sys/kernel/mm/transparent_hugepage/enabled

输出说明:

  • [always] madvise never → 透明大页已开启

  • always [madvise] never → 使用madvise模式

  • always madvise [never] → 透明大页已关闭

2.15.1.方式一

步骤1:编辑grub配置文件

备份原配置

cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak

cp /etc/default/grub /etc/default/grub.bak

编辑grub配置

vi /etc/default/grub

步骤2:修改内核参数

找到GRUB_CMDLINE_LINUX行,在双引号内添加:

原行可能类似:

GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=ol/root rd.lvm.lv=ol/swap"

修改后(添加 transparent_hugepage=never):

GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=ol/root rd.lvm.lv=swap transparent_hugepage=never"

步骤3:重新生成grub配置

CentOS/RHEL 7

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

2.15.2.方式二

或者直接执行

sed -i 's/quiet/quiet transparent_hugepage=never numa=off/' /etc/default/grub

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

reboot

注意:需要重启才能生效

2.16.Avahi-daemon配置

有些主机安装选择最小化安装,没有安装avahi-daemon功能,建议安装之后禁用,防止以后误操作导致出问题。

systemctl status avahi-daemon.socket

systemctl stop avahi-daemon.service

pgrep -f avahi-daemon | awk '{print "kill -9 "$2}'

systemctl disable avahi-daemon.socket

systemctl disable avahi-daemon.service

配置NOZEROCONF

vi /etc/sysconfig/network

添加:

NOZECOCONF=yes

2.17.系统参数配置

安装过oracle-database-preinstall-19c一般默认会进行配置,如果没有的话,可以配置如下:

执行:vi /etc/sysctl.d/99-oracle-rac.conf

添加:

bash 复制代码
[root@p19c01 yum.repos.d]# vi /etc/sysctl.d/99-oracle-database-preinstall-19c-sysctl.conf
[root@p19c01 yum.repos.d]# 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

[root@p19c01 yum.repos.d]#

命令:sysctl -p,打印内核参数

2.18.系统资源配置限制

配置limits.conf

cp /etc/security/limits.conf /etc/security/limits.conf.bak

cat /etc/security/limits.conf

vi /etc/security/limits.conf

bash 复制代码
# 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

grid soft nofile 1024
grid hard nofile 65536
grid soft statck 10240
grid hard statck 32768
grid soft nproc 2047
grid hard nproc 16384

配置pam.d/login:

cat /etc/pam.d/login

add

session required pam_limits.so

session required /lib64/security/pam_limits.so

或者:

配置用户限制

vi /etc/security/limits.d/20-nproc.conf

grid soft nproc 2047

grid hard nproc 16384

grid soft nofile 1024

grid hard nofile 65536

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 1024

oracle hard nofile 65536

2.19.创建用户、用户组和安装目录

2.19.1. 创建用户和组

如果已经执行了Oracle预安装包的话,通常会进行创建,但需要检查:

bash 复制代码
[root@p19c01 security]# cat /etc/group
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
lp:x:7:
mem:x:8:
kmem:x:9:
wheel:x:10:
cdrom:x:11:
mail:x:12:postfix
man:x:15:
dialout:x:18:
floppy:x:19:
games:x:20:
tape:x:33:
video:x:39:
ftp:x:50:
lock:x:54:
audio:x:63:
nobody:x:99:
users:x:100:
utmp:x:22:
utempter:x:35:
stapusr:x:156:
stapsys:x:157:
stapdev:x:158:
input:x:999:
systemd-journal:x:190:
systemd-network:x:192:
dbus:x:81:
polkitd:x:998:
printadmin:x:997:
libstoragemgmt:x:996:
colord:x:995:
rpc:x:32:
saned:x:994:
dip:x:40:
cgred:x:993:
ssh_keys:x:992:
saslauth:x:76:
abrt:x:173:
rtkit:x:172:
pulse-access:x:991:
pulse-rt:x:990:
pulse:x:171:
radvd:x:75:
chrony:x:989:
rpcuser:x:29:
nfsnobody:x:65534:
unbound:x:988:
gluster:x:987:
kvm:x:36:qemu
qemu:x:107:
tss:x:59:
libvirt:x:986:
usbmuxd:x:113:
geoclue:x:985:
setroubleshoot:x:984:
gdm:x:42:
gnome-initial-setup:x:983:
sshd:x:74:
slocate:x:21:
avahi:x:70:
postdrop:x:90:
postfix:x:89:
ntp:x:38:
tcpdump:x:72:
wireshark:x:982:
oinstall:x:54321:oracle
dba:x:54322:oracle
oper:x:54323:oracle
backupdba:x:54324:oracle
dgdba:x:54325:oracle
kmdba:x:54326:oracle
racdba:x:54330:oracle
[root@p19c01 security]# id oracle
uid=54321(oracle) gid=54321(oinstall) 组=54321(oinstall),54322(dba),54323(oper),54324(backupdba),54325(dgdba),54326(kmdba),54330(racdba)
[root@p19c01 security]# id grid
id: grid: no such user
[root@p19c01 security]#

创建组

groupadd -g 54321 oinstall

groupadd -g 54322 dba

groupadd -g 54323 oper

groupadd -g 54323 backupdba

groupadd -g 54325 dgdba

groupadd -g 54326 kmdba

groupadd -g 54327 asmadmin

groupadd -g 54328 asmdba

groupadd -g 54329 asmoper

groupadd -g 54330 racdba

创建grid用户

useradd -u 11012 -g oinstall -G asmadmin,asmdba,asmoper,dba,racdba,oper grid

echo "grid:oracle" | chpasswd

创建oracle用户

useradd -u 54321 -g oinstall -G dba,oper,backupdba,dgdba,kmdba,racdba,asmdba oracle

echo "oracle:oracle" | chpasswd

修改grid、oracle两个用户的密码

重载UDEV规则

2.19.2.创建目录结构

mkdir -p /u01/app/19.3.0/grid

mkdir -p /u01/app/grid

mkdir -p /u01/app/oracle/product/19.3.0/dbhome_1

mkdir -p /u01/app/oraInventory

mkdir -p /backup

mkdir -p /home/oracle/scripts

chown -R oracle:oinstall /backup

chown -R oracle:oinstall /home/oracle/scripts

chown -R grid:oinstall /u01

chown -R grid:oinstall /u01/app/grid

chown -R grid:oinstall /u01/app/19.3.0/grid

chown -R oracle:oinstall /u01/app/oracle

chmod -R 775 /u01

2.20.配置环境变量

2.20.1.grid用户环境变量设置

su - grid

vi .bash_profile

umask 022

export TMP=/tmp

export TMPDIR=$TMP

字符集设置(与oracle用户保持一致)

export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

Grid Infrastructure路径

export ORACLE_BASE=/u01/app/grid

export ORACLE_HOME=/u01/app/19.3.0/grid

export ORACLE_TERM=xterm

通常不需要单独设置TNS_ADMIN

export TNS_ADMIN=$ORACLE_HOME/network/admin

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib

ASM实例名:单机用+ASM,RAC用+ASM1、+ASM2等

export ORACLE_SID=+ASM1 # 请根据实际环境调整

====== 关键:正确的PATH设置 ======

export PATH=ORACLE_HOME/bin:ORACLE_HOME/OPatch:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:$PATH

修正的别名

alias sas='sqlplus / as sysasm' # 连接ASM实例

alias ac='asmcmd' # asmcmd快捷方式

alias crs='crsctl status resource -t' # 集群状态检查

2.20.2.oracle用户环境变量设置

su - oracle

vi ~/.bash_profile

umask 022

export TMP=/tmp

export TMPDIR=$TMP

字符集设置(根据您的需求选择)

export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 # 英文环境

如需中文:export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1

export ORACLE_TERM=xterm

通常不需要单独设置TNS_ADMIN,除非有特殊配置

export TNS_ADMIN=$ORACLE_HOME/network/admin

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib

ORACLE_SID应设为数据库实例名,不是主机名

export ORACLE_SID=p19c02_orcl # 改为您实际的实例名

!!!关键:正确的PATH设置!!!

export PATH=ORACLE_HOME/bin:ORACLE_HOME/OPatch:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:$PATH

修正的SQLPlus别名

alias sas='sqlplus / as sysasm' # 连接ASM实例

alias sql='sqlplus / as sysdba' # 建议添加:连接数据库实例

2.21.上传所需所有安装包

chown -R grid:oinstall /opt/soft/

2.21.1.解压安装包

2.21.2.安装cvuqdisk包

su - root

cd /u01/app/19.3.0/grid/cv/rpm

rpm -ivh /u01/app/19.3.0/grid/cv/rpm/cvuqdisk-1.0.10-1.rpm

##传输到节点二安装

scp cvuqdisk-1.0.10-1.rpm p19c02:/soft

2.22.配置SSH互信

2.22.1.使用rsa非对称算法生成密钥对

整体执行步骤:

为grid用户配置

su - grid

ssh-keygen -t rsa -N ""

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

chmod 600 ~/.ssh/authorized_key

为oracle用户配置

su - oracle

ssh-keygen -t rsa -N ""

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

chmod 600 ~/.ssh/authorized_keys

2.22.2.p19c01

获取Node1的公钥

su - grid

cat ~/.ssh/id_rsa.pub

su - oracle

cat ~/.ssh/id_rsa.pub

2.22.3.p19c02

将Node1的公钥添加到Node2的私钥authorized_keys中

su - grid

vi ~/.ssh/authorized_keys

su - oracle

vi ~/.ssh/authorized_keys

粘贴Node1 grid的公钥

# 同样,将Node2的公钥复制到Node1中

这个在每个用户下互相ssh生成对应的记录

至此,准备工作已经完成,安装前重启主机!

三、安装GRID集群软件

注意:这里可以先保存个镜像,防止安装过程中出错

接下来在图形界面操作

可以使用虚拟机也可以使用VNC

VNC安装教程:VNC安装教程

接下来开始操作

3.1.授权

chown -R grid:oinstall /opt/soft/

3.2.集群安装环境自检

su - grid

cd /grid_disks/app/oracle/product/19.3.0/grid

./runcluvfy.sh stage -pre crsinst -n p19c01,p19c02 -fixup -verbose

./runcluvfy.sh stage -pre crsinst -n p19c01,p19c02 -fixup -verbose

3.2.开始安装

tip:中间可能会因为图形界面显示出问题,如果实在虚拟机的话需要执行export DISPLAY=:0解决

如果是vnc的话,需要执行export DISPLAY=:1然后再执行xhost +解决

3.3.修改scan名称

与hosts文件配置scan名称保存一直(参考之前的配置)

cat /etc/hosts

3.4.添加节点信息,进行互信

3.5.输入grid的密码进行测试ssh连接

3.7.确保对应网卡和IP网段对应

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

3.8.选择存储类型,ASM只能选择FLEX

优点

  • 自动管理:ASM自动平衡和冗余

  • 高性能:直接裸设备访问,无文件系统开销

  • 高可用:磁盘故障自动恢复

  • Oracle推荐:19c标准配置

适用场景

  • 生产环境

  • 有专用存储磁盘(SAN/NAS/本地磁盘)

  • 需要高可用性和性能

3.9.GIMR

这里不选择安装:

3.10.安装时选择OCR盘

一块盘冗余 External,目录选择udev绑的路径:

3.11.填写SYS/SYSTEM密码

需要记住自己设置的密码(这里密码是要以字母开头):

3.12.默认即可

3.13.默认不开启

比较占资源,后面安装好后可以配置:

3.14.默认即可

3.15.选择grid的基位置

3.16.选择是否自动运行配置脚本

这里我们选择手动进行,直接下一步

3.17.执行安装检查

3.18.查看预检查结果,并处理失败项

1)多点传送或广播检查

详细:

多点传送或广播检查,此任务检查子网中的网络接口是否能够通过多点传送组或广播IP地址进行通信

-错误:PRVG-11081:在节点"p19c02"上,找不到接口"ens36"和子网"172.25.254.0"的匹配网络

-原因:集群验证实用程序(CVU)连接性检查确定 在所指示节点上找不到接口/子网组合。

-操作:确保安装了接口/子网组合,该组合在所指示节点上联机,然后重试节点连接性检查,

以下节点上的检查失败:[p19c02]

修复步骤:

步骤1:检查当前实际网卡

在p19c02上查看真实网卡

ip link show

应该看到ens34,没有ens36

查看网络配置文件

ls /etc/sysconfig/network-scripts/ifcfg-*

步骤2:删除错误的ens36配置

删除ens36配置(因为它不存在)

sudo rm -f /etc/sysconfig/network-scripts/ifcfg-ens36

如果有ens36的NetworkManager连接,也删除

sudo nmcli connection delete ens36 2>/dev/null

步骤3:重命名ens34为ens36(正确方法)

1. 获取ens34的MAC地址(关键!)

MAC=$(cat /sys/class/net/ens34/address)

echo "ens34的MAC地址: $MAC"

2. 重命名配置文件

sudo mv /etc/sysconfig/network-scripts/ifcfg-ens34.back /etc/sysconfig/network-scripts/ifcfg-ens36

3. 修改配置文件内容 sudo sed -i "s/NAME=.*/NAME=ens36/" /etc/sysconfig/network-scripts/ifcfg-ens36 sudo sed -i "s/DEVICE=.*/DEVICE=ens36/" /etc/sysconfig/network-scripts/ifcfg-ens36 sudo sed -i "s/HWADDR=.*/HWADDR=$MAC/" /etc/sysconfig/network-scripts/ifcfg-ens36

4. 创建udev规则(永久重命名) sudo cat > /etc/udev/rules.d/10-rename-network.rules << EOF SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="$MAC", NAME="ens36" EOF

步骤4:重载配置并重启网络

重新加载udev规则

sudo udevadm control --reload-rules sudo udevadm trigger

重启网络(先down再up)

sudo ifdown ens34 2>/dev/null sudo ifup ens36

或者使用NetworkManager

sudo nmcli connection reload sudo nmcli connection up ens36

2)ASM完整性

问题原因由网卡名引起

3)单客户机访问名(SCAN)

这个可以忽略

4)节点连接性

问题原因由IP地址引起

5)网络时间协议(NTP)

将节点1,节点2的配置文件进行重命名

mv /etc/chrony.conf /etc/chrony.conf.back

6)DNS/NIS名称服务

由于我们只配了一个SCAN,所以关于 DNS 相关的都无视,继续!!!

3.19.再次进行预检查

3.20.忽略提示项,执行安装

开始安装:

3.20.1. 执行root脚本(关键步骤)

安装程序运行到约85%时,会提示在两个节点上执行root脚本。

到这一步时先不要选择OK(一定一定不要先点OK,除非你有镜像随便造),先执行脚本,操作如下:

两节点顺序执行 root.sh,先节点一执行完,再节点二执行(不可以同时执行):

新开一个命令窗口

一节点:

在节点1(注意节点顺序)上执行:

切换到root用户

su - root

第一个脚本(创建oraInventory目录) /u01/app/oraInventory/orainstRoot.sh

第二个脚本(配置Grid Infrastructure) /u01/app/grid/product/19.0.0/grid/root.sh

监控root.sh输出,直到看到: # CRS-4134: Oracle High Availability Services has been started. # CRS-4133: Oracle High Availability Services has been started on node rac-node1. # CRS-2672: Attempting to start 'ora.cssdmonitor' on 'rac-node1' # 等等...

bash 复制代码
[root@p19c01 rules.d]# /u01/app/oraInventory/orainstRoot.sh
更改权限/u01/app/oraInventory.
添加组的读取和写入权限。
删除全局的读取, 写入和执行权限。

更改组名/u01/app/oraInventory 到 oinstall.
脚本的执行已完成。
[root@p19c01 rules.d]# /u01/app/19.3.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/grid

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.
Relinking oracle with rac_on option
Using configuration parameter file: /u01/app/19.3.0/grid/crs/install/crsconfig_params
The log of current session can be found at:
  /u01/app/grid/crsdata/p19c01/crsconfig/rootcrs_p19c01_2026-02-03_04-04-35PM.log
2026/02/03 16:04:44 CLSRSC-594: Executing installation step 1 of 19: 'SetupTFA'.
2026/02/03 16:04:44 CLSRSC-594: Executing installation step 2 of 19: 'ValidateEnv'.
2026/02/03 16:04:44 CLSRSC-363: User ignored prerequisites during installation
2026/02/03 16:04:44 CLSRSC-594: Executing installation step 3 of 19: 'CheckFirstNode'.
2026/02/03 16:04:44 CLSRSC-4002: Successfully installed Oracle Trace File Analyzer (TFA) Collector.
2026/02/03 16:04:47 CLSRSC-594: Executing installation step 4 of 19: 'GenSiteGUIDs'.
2026/02/03 16:04:48 CLSRSC-594: Executing installation step 5 of 19: 'SetupOSD'.
2026/02/03 16:04:48 CLSRSC-594: Executing installation step 6 of 19: 'CheckCRSConfig'.
2026/02/03 16:04:48 CLSRSC-594: Executing installation step 7 of 19: 'SetupLocalGPNP'.
2026/02/03 16:04:50 CLSRSC-594: Executing installation step 8 of 19: 'CreateRootCert'.
2026/02/03 16:04:56 CLSRSC-594: Executing installation step 9 of 19: 'ConfigOLR'.
2026/02/03 16:04:57 CLSRSC-594: Executing installation step 10 of 19: 'ConfigCHMOS'.
2026/02/03 16:04:57 CLSRSC-594: Executing installation step 11 of 19: 'CreateOHASD'.
2026/02/03 16:04:58 CLSRSC-594: Executing installation step 12 of 19: 'ConfigOHASD'.
2026/02/03 16:05:01 CLSRSC-594: Executing installation step 13 of 19: 'InstallAFD'.
2026/02/03 16:05:02 CLSRSC-594: Executing installation step 14 of 19: 'InstallACFS'.
2026/02/03 16:05:05 CLSRSC-594: Executing installation step 15 of 19: 'InstallKA'.
2026/02/03 16:05:10 CLSRSC-594: Executing installation step 16 of 19: 'InitConfig'.

已成功创建并启动 ASM。

[DBT-30001] 已成功创建磁盘组。有关详细信息, 请查看 /u01/app/grid/cfgtoollogs/asmca/asmca-260203下午040606.log。

2026/02/03 16:06:53 CLSRSC-482: Running command: '/u01/app/19.3.0/grid/bin/ocrconfig -upgrade grid oinstall'
CRS-4256: 更新概要文件
已成功添加表决磁盘 d1f39f11e66e4fa3bf1848d75ddb6b8b。
已成功将表决磁盘组替换为 +OCR。
CRS-4256: 更新概要文件
CRS-4266: 已成功替换表决文件
##  STATE    File Universal Id                File Name Disk group
--  -----    -----------------                --------- ---------
 1. ONLINE   d1f39f11e66e4fa3bf1848d75ddb6b8b (/dev/asm_ocr) [OCR]
找到了 1 个表决磁盘。
2026/02/03 16:08:38 CLSRSC-594: Executing installation step 17 of 19: 'StartCluster'.
2026/02/03 16:10:18 CLSRSC-343: Successfully started Oracle Clusterware stack
2026/02/03 16:10:18 CLSRSC-594: Executing installation step 18 of 19: 'ConfigNode'.
2026/02/03 16:13:05 CLSRSC-594: Executing installation step 19 of 19: 'PostConfig'.
2026/02/03 16:14:12 CLSRSC-325: Configure Oracle Grid Infrastructure for a Cluster ... succeeded
[root@p19c01 rules.d]#

等待节点1的root.sh完全完成后,在节点2上执行:

登录到节点2执行(脚本执行路径根据自身设置安装目录有关)

su - root

/u01/app/oraInventory/orainstRoot.sh

/u01/app/grid/product/19.3.0/grid/root.sh

bash 复制代码
[root@p19c02 oraInventory]# ./orainstRoot.sh
更改权限/u01/app/oraInventory.
添加组的读取和写入权限。
删除全局的读取, 写入和执行权限。

更改组名/u01/app/oraInventory 到 oinstall.
脚本的执行已完成。
[root@p19c02 oraInventory]# /u01/app/19.3.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/grid

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.
Relinking oracle with rac_on option
Using configuration parameter file: /u01/app/19.3.0/grid/crs/install/crsconfig_params
The log of current session can be found at:
  /u01/app/grid/crsdata/p19c02/crsconfig/rootcrs_p19c02_2026-02-03_04-15-12PM.log
2026/02/03 16:15:20 CLSRSC-594: Executing installation step 1 of 19: 'SetupTFA'.
2026/02/03 16:15:20 CLSRSC-594: Executing installation step 2 of 19: 'ValidateEnv'.
2026/02/03 16:15:20 CLSRSC-363: User ignored prerequisites during installation
2026/02/03 16:15:20 CLSRSC-594: Executing installation step 3 of 19: 'CheckFirstNode'.
2026/02/03 16:15:20 CLSRSC-4002: Successfully installed Oracle Trace File Analyzer (TFA) Collector.
2026/02/03 16:15:22 CLSRSC-594: Executing installation step 4 of 19: 'GenSiteGUIDs'.
2026/02/03 16:15:22 CLSRSC-594: Executing installation step 5 of 19: 'SetupOSD'.
2026/02/03 16:15:22 CLSRSC-594: Executing installation step 6 of 19: 'CheckCRSConfig'.
2026/02/03 16:15:23 CLSRSC-594: Executing installation step 7 of 19: 'SetupLocalGPNP'.
2026/02/03 16:15:25 CLSRSC-594: Executing installation step 8 of 19: 'CreateRootCert'.
2026/02/03 16:15:25 CLSRSC-594: Executing installation step 9 of 19: 'ConfigOLR'.
2026/02/03 16:15:40 CLSRSC-594: Executing installation step 10 of 19: 'ConfigCHMOS'.
2026/02/03 16:16:12 CLSRSC-594: Executing installation step 11 of 19: 'CreateOHASD'.
2026/02/03 16:16:14 CLSRSC-594: Executing installation step 12 of 19: 'ConfigOHASD'.
2026/02/03 16:16:14 CLSRSC-330: Adding Clusterware entries to file 'oracle-ohasd.service'
2026/02/03 16:16:36 CLSRSC-594: Executing installation step 13 of 19: 'InstallAFD'.
2026/02/03 16:16:38 CLSRSC-594: Executing installation step 14 of 19: 'InstallACFS'.
2026/02/03 16:16:40 CLSRSC-594: Executing installation step 15 of 19: 'InstallKA'.
2026/02/03 16:16:41 CLSRSC-594: Executing installation step 16 of 19: 'InitConfig'.
2026/02/03 16:16:54 CLSRSC-594: Executing installation step 17 of 19: 'StartCluster'.
2026/02/03 16:18:53 CLSRSC-343: Successfully started Oracle Clusterware stack
2026/02/03 16:18:53 CLSRSC-594: Executing installation step 18 of 19: 'ConfigNode'.
2026/02/03 16:19:48 CLSRSC-594: Executing installation step 19 of 19: 'PostConfig'.
2026/02/03 16:20:12 CLSRSC-325: Configure Oracle Grid Infrastructure for a Cluster ... succeeded
[root@p19c02 oraInventory]#

3.20.2.完成安装配置

当两个节点的root.sh都完成后,返回RAC01的安装会话,按Enter键继续完成剩余的15%安装。

安装结束之后,发现有失败案例!!!

3.21.检查集群状态

以grid用户执行

su - grid

检查集群状态

crsctl check cluster -all

crsctl check crs

查看详细资源状态

crsctl stat res -t

crsctl stat res -t -init

检查节点状态

olsnodes -n

crsctl stat node -n

3.21.1.检查集群状态

3.21.2.检查节点状态

bash 复制代码
[grid@p19c01 ~]$ crsctl check cluster -all
**************************************************************
p19c01:
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
**************************************************************
p19c02:
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
**************************************************************
[grid@p19c01 ~]$ crsctl stat res -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
               ONLINE  ONLINE       p19c01                   STABLE
               ONLINE  ONLINE       p19c02                   STABLE
ora.chad
               ONLINE  ONLINE       p19c01                   STABLE
               ONLINE  ONLINE       p19c02                   STABLE
ora.net1.network
               ONLINE  ONLINE       p19c01                   STABLE
               ONLINE  ONLINE       p19c02                   STABLE
ora.ons
               ONLINE  ONLINE       p19c01                   STABLE
               ONLINE  ONLINE       p19c02                   STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup)
      1        ONLINE  ONLINE       p19c01                   STABLE
      2        ONLINE  ONLINE       p19c02                   STABLE
      3        ONLINE  OFFLINE                               STABLE
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       p19c01                   STABLE
ora.OCR.dg(ora.asmgroup)
      1        ONLINE  ONLINE       p19c01                   STABLE
      2        ONLINE  ONLINE       p19c02                   STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.asm(ora.asmgroup)
      1        ONLINE  ONLINE       p19c01                   Started,STABLE
      2        ONLINE  ONLINE       p19c02                   Started,STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.asmnet1.asmnetwork(ora.asmgroup)
      1        ONLINE  ONLINE       p19c01                   STABLE
      2        ONLINE  ONLINE       p19c02                   STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.cvu
      1        ONLINE  ONLINE       p19c01                   STABLE
ora.p19c01.vip
      1        ONLINE  ONLINE       p19c01                   STABLE
ora.p19c02.vip
      1        ONLINE  ONLINE       p19c02                   STABLE
ora.qosmserver
      1        ONLINE  ONLINE       p19c01                   STABLE
ora.scan1.vip
      1        ONLINE  ONLINE       p19c01                   STABLE
--------------------------------------------------------------------------------
[grid@p19c01 ~]$

3.21.3.检查节点状态

3.21.4.检查监听和SCAN

检查监听状态

srvctl status listener

srvctl status scan

srvctl status scan_listener

查看SCAN配置

srvctl config scan

srvctl config scan_listener

四、创建ASM数据盘DATA

DATA 磁盘组主要用于存放数据文件、日志文件等数据库文件!

Oracle ASM Configuration Assistant (ASMCA) 支持安装 Oracle ASM 实例, Oracle ASM 磁盘组, Oracle ASM Dynamic Volume Manager(Oracle ADVM)卷以及 Oracle自动存储管理集群文件系统(Oracle ACFS)。此外,您可以使用 ASMCA命令行接口:

利用 Oracle ASM Configuration Assistant, 您可以:

管理磁盘组:

创建,配置或删除Oracle ASM磁盘组

在磁盘组中漆加或者删除磁盘

编辑磁盘组属性

管理磁盘组的模板

在磁盘组上创建 Oracle ACFS文件系统供数据库使用装载或卸装磁盘组

添加,列出或册除限额组添加,移动或删除文件组

管理Oracle ADVM卷:

创建或配置 OracleADVM卷

启用或禁用Oracle ADVM卷

查看状态详细信息

调整卷大小或删除卷

管理0racle ACFS文件系统:

创建或配置Oracle ACFS文件系统

查看状态详细信息

装载或卸装文件系统

调整文件系统的大小

删除文件系统

显示或执行安全命令

创建或删除快照

提示:要对某个项执行操作,请右键单击该项。

4.1.使用图形化的方式进行创建

su - grid

asmca

4.2.检查ASM磁盘

4.2.1.检查ASM实例状态

检查ASM实例状态

srvctl status asm -a

srvctl config asm

4.2.2.查看ASM磁盘组

asmcmd lsdg

asmcmd lsdsk

4.2.3.连接到ASM实例

sqlplus / as sysasm

SELECT name, state, total_mb, free_mb FROM v$asm_diskgroup;

4.2.4.检查OCR和投票磁盘

检查OCR状态

ocrcheck -local

ocrcheck -config

检查投票磁盘

crsctl query css votedisk

建议重启两台主机,检查重启后 Grid 集群是否正常运行!

重启之后需要等待一会,集群自启动有几分钟延迟

五、安装Oracle Database软件

5.1. 运行oracle数据库软件安装图形化界面

su - oracle

cd /u01/app/oracle/product/19.0.0/dbhome_1 或则 cd $ORACLE_HOME

设置DISPLAY

export DISPLAY=:0

启动安装 ./runInstaller

5.2.选择安装类型

仅安装数据库软件

5.3.选择数据库安装类型

Oracle Rac数据库安装:选择集群模式

5.4.选择安装节点信息

勾选所有节点

输入 oracle 用户密码,先执行 setup(设置),再执行 test(测试),开始互信:

5.5.选择数据库的安装版本(企业版)

5.6.选择安装位置(默认即可)

5.7.选择操作系统组成员

5.8.选择是否自动运行配置脚本

这里我选择不勾选

5.9.执行安装前预检查

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

检查结果:

1)/etc/resolve.conf问题

这里很奇怪,明明之前都配置好了的,重启之后掉配置了??

2)用户oracle的ASM存储权限问题

oracle 用户不在 ASM 的 OSDBA 组中,因此无法访问 ASM 存储。

1. 在两节点添加 oracle 到 asmdba 组

sudo usermod -a -G asmdba oracle

2. 验证

id oracle

3. 重新登录 oracle 用户使组生效

su - oracle

groups

3)安装界面点击"重新检查"

其他的告警就忽略吧!

直接开始安装:

安装过程ing

终于等到你!!!

5.10. 执行root脚本

按照提示在两个节点上执行:

su - root

在两个节点上执行:/u01/app/oracle/product/19.3.0/dbhome_1/root.sh

执行完毕,回去点ok

六、创建RAC数据库实例

6.1. 使用DBCA

切换用户

su - oracle

设置环境变量

export ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1

export PATH=ORACLE_HOME/bin:PATH

启动DBCA

dbca

选择创建数据库实例:

选择高级配置:等待系统自动初始化

选择基础安装即可:

选择安装节点

填写实例名 p19c0,由于默认添加为1,2,实例名规划为 p19c01/02,所以需要加个0;选择安装 CDB 模式,不创建PDB:

默认即可,使用OMF模式:

数据库配置向导:

步骤 选择 配置
1 创建数据库
2 高级配置
3 Oracle RAC数据库 选中两个节点
4 数据库类型 一般用途或事务处理
5 数据库标识符 全局数据库名:racdb,SID前缀:racdb
6 存储类型 ASM
7 数据库文件位置 使用OMF,选择 +DATA 磁盘组
8 快速恢复区 +DATA,大小 1024 MB
9 示例方案 不创建
10 内存 启用自动内存管理,总内存 600 MB
11 字符集 AL32UTF8
12 连接模式 专用服务器模式
13 初始化参数 默认
14 创建选项 创建数据库

6.3. 验证数据库

bash

复制代码
# 检查数据库状态
srvctl status database -d racdb

# 连接到数据库
sqlplus system/oracle@racdb

# 查看实例
SELECT instance_name, host_name, status FROM gv$instance;

# 测试负载均衡
sqlplus system/oracle@rac-scan/racdb
相关推荐
Axis tech4 小时前
使用VR触觉手套进行更安全的飞机货物舱门操作培训
vr
Hody915 天前
【XR技术介绍】一文理清 OpenVR、OpenXR、SteamVR 与各厂商 SDK等容易混淆的概念
ar·vr·mr
xhyyvr6 天前
VR雷霆双翼:双人沉浸式航空航天体验,解锁科普娱乐新维度
vr·娱乐·vr航空航天·vr雷霆双翼·vr飞机模拟
gxdtgsy7 天前
数字博物馆虚拟展厅建设服务商技术方案解读,服务商评测
ar·vr
星幻元宇VR7 天前
VR智慧教室设备|VR科普学习机助力消防、校园安全与环保教育
安全·vr·虚拟现实
xhyyvr8 天前
VR时空直升机:坐进VR直升机,把航天课堂“飞”起来
vr·vr直升机·vr时空直升机·vr航空航天·vr航天体验设备·vr航天科普
永霖光电_UVLED8 天前
光学计量工具瞄准 AR/VR、显示器和光源
计算机外设·ar·vr
科技AI训练师8 天前
CAXA CAD兼容性实测,老图纸与多格式文件的适配方案
人工智能·智能家居·vr
2501_948120159 天前
基于图像生成的虚拟现实交互优化
交互·vr