Oracle RAC 19c集群搭建指南:实现高可用、高性能的数据库集群(超详细)

本文详细介绍了如何搭建OracleRAC19c集群,包括新建节点、配置共享盘、网络设置、关闭防火墙和SELINUX、设置环境变量、安装必备软件包以及配置ASM存储和创建数据库实例。通过这种方式,可以实现数据库的高可用性和高性能。
摘要由CSDN通过智能技术生成

Oracle RAC 19c集群搭建指南:实现高可用、高性能的数据库集群(超详细)

1.新建节点

因为rac集群使用的是共享盘(esxi设置共享盘步骤如下):

首先添加一个iSCSI控制器

在这里插入图片描述

SCSI总线共享选择虚拟

在这里插入图片描述

添加硬盘

!!!注意:组成data盘的三块硬盘空间必须一致,metadata盘也需要三块空间一致的盘

在这里插入图片描述

新添加的盘(所有刚添加的!)要设置磁盘置备为‘厚置备,置零’,并且控制器选择新添加的iSCSI控制器,磁盘模式为独立持久

在这里插入图片描述

iso自行选择或者重新安装centos系统
总配置如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zbzzTQwF-1683161440622)(C:\Users\86132\AppData\Roam

cpu选择的4c,也可以调大一些

安装系统的话自行安装!
创建第二个节点,也可以多个节点,我这里因为资源不够问题,创建两个

在这里插入图片描述

!!!注意:节点二上也需要添加一个新的iSCSI控制器

在这里插入图片描述

节点二SCSI总线共享也选择‘虚拟’

在这里插入图片描述

节点二添加硬盘的话选择现有硬盘

在这里插入图片描述

找到rac1节点的盘,可以看到在rac1添加的6块共享盘,选择这6块盘

在这里插入图片描述

添加好之后,记得修改iSCSI控制器以及磁盘模式(磁盘模式选不选的吧,没啥关系)

在这里插入图片描述

下面五块盘一样的操作
!!!注意:我这里忘了添加第二块网卡(两个节点都要添加),一定要有两块网卡!!!
为什么Oraclerac19c要用两块网卡?
Oracle RAC 19c通常需要使用两个网卡,一个用于公共网络(Public Network),另一个用于专用网络(Private Network)。这是因为Oracle RAC是一种集群技术,它需要多台服务器之间进行高速数据传输和协作,以提供高可用性和高性能的数据库服务
具体来说,使用两个网卡的原因如下:

1.公共网络:公共网络用于连接客户端和应用程序到数据库服务。在Oracle RAC中,公共网络通常使用标准的TCP/IP协议,通过标准的以太网交换机进行通信。公共网络可以使用单独的物理网卡或者虚拟网络接口(VNIC)实现。

2.专用网络:专用网络用于连接Oracle RAC集群中的各个节点之间。在Oracle RAC中,专用网络通常使用InfiniBand或者其他高速互连技术,以实现低延迟、高带宽的数据传输。专用网络可以使用单独的物理网卡或者虚拟网络接口(VNIC)实现。

使用两个网卡可以有效地隔离客户端访问和节点间通信的流量,从而提高系统的安全性和稳定性。此外,专用网络的高速传输也可以显著提高Oracle RAC集群的性能和可扩展性。
如果软件安装选择的最小安装,安装好系统之后要记得安装一下图形化界面
参考文档:https://blog.csdn.net/weixin_43224306/article/details/127358806
GUI图形化界面安装的话,就不用

在这里插入图片描述

网络配置
!!!注意哈:内部通信的网卡不需要输入网关 DNS

在这里插入图片描述

硬盘配置
两个节点都是一样的,只选择第一块盘配置!

在这里插入图片描述

之后就是苦逼的等待安装好了

2.先决条件–主机配置–两台主机都操作

1.设置主机名和映射–双网卡

节点一
hostnamectl set-hostname rac1
vim /etc/hosts

在这里插入图片描述

节点二
hostnamectl set-hostname rac2
scp -p 192.168.110.56:/etc/hosts /etc/
在Oracle数据库中,SCAN(Single Client Access Name)是一种虚拟名称,用于代表整个Oracle RAC集群。它允许客户端应用程序通过单个名称来访问整个集群,而不需要知道实际的节点名称和IP地址。

具体来说,当客户端应用程序需要连接到Oracle RAC集群时,它可以使用SCAN名称来代替实际的节点名称或IP地址。在这种情况下,客户端会将请求发送到SCAN IP地址,然后由Oracle Clusterware根据负载均衡算法将请求转发到实际的节点上。这样,客户端就可以无需关心集群中的节点数量和位置,而只需要连接到一个虚拟名称即可。

修改内部通信网卡配置文件

在这里插入图片描述

修改完后重启网卡

systemctl restart network

2.新建账号和组

/usr/sbin/groupadd -g 54321 oinstall

/usr/sbin/groupadd -g 54322 dba

/usr/sbin/groupadd -g 54323 oper

/usr/sbin/groupadd -g 54324 backupdba

/usr/sbin/groupadd -g 54325 dgdba

/usr/sbin/groupadd -g 54326 kmdba

/usr/sbin/groupadd -g 54327 asmdba

/usr/sbin/groupadd -g 54328 asmoper

/usr/sbin/groupadd -g 54329 asmadmin

/usr/sbin/groupadd -g 54330 racdba

/usr/sbin/useradd -u 54321 -g oinstall -G dba,asmdba,oper oracle

/usr/sbin/useradd -u 54322 -g oinstall -G dba,oper,backupdba,dgdba,kmdba,asmdba,asmoper,asmadmin,racdba grid

echo "oracle" | passwd --stdin oracle

echo "grid" | passwd --stdin grid

3.关闭防火墙和selinux

防火墙:

systemctl stop firewalld.service
systemctl disable firewalld.service

关闭SELINUX:

sed -i  "s/SELINUX=enforcing/SELINUX=disabled/"  /etc/selinux/config
cat /etc/selinux/config

4.关闭时钟同步

systemctl stop chronyd
systemctl disable chronyd

移除chrony配置文件:(必须移除,否则校验NTP失败)
mv /etc/chrony.conf /etc/chrony.conf.bak

5.关闭avahi-daemon

systemctl stop avahi-daemon
systemctl disable avahi-daemon

6.创建目录

mkdir -p /u01/app/19.3.0/grid
mkdir -p /u01/app/grid
mkdir -p /u01/app/oracle/product/19.3.0/db_1
chown -R grid:oinstall /u01
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/

7.设置环境变量

vim /home/oracle/.bash_profile 

ORACLE_SID=cndba1;export ORACLE_SID
ORACLE_UNQNAME=cndba;export ORACLE_UNQNAME
JAVA_HOME=/usr/local/java; export JAVA_HOME
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/19.3.0/db_1; export ORACLE_HOME
ORACLE_TERM=xterm; export ORACLE_TERM
NLS_DATE_FORMAT="YYYY:MM:DDHH24:MI:SS"; export NLS_DATE_FORMAT
NLS_LANG=american_america.ZHS16GBK; export NLS_LANG
TNS_ADMIN=$ORACLE_HOME/network/admin; export TNS_ADMIN
ORA_NLS11=$ORACLE_HOME/nls/data; export ORA_NLS11
PATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin:$ORA_CRS_HOME/bin
PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export CLASSPATH
THREADS_FLAG=native; export THREADS_FLAG
export TEMP=/tmp
export TMPDIR=/tmp
umask 022
vim /home/grid/.bash_profile

PATH=$PATH:$HOME/bin
export ORACLE_SID=+ASM1 
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/19.3.0/grid
export PATH=$ORACLE_HOME/bin:$PATH:/usr/local/bin/:.
export TEMP=/tmp
export TMP=/tmp
export TMPDIR=/tmp
umask 022
export PATH

8.修改资源限制

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

9.设置 PAM和NOZEROCONF

cat >> /etc/pam.d/login <<EOF
session required pam_limits.so
EOF
vi /etc/sysconfig/network增加以下内容
NOZEROCONF=yes
也可以直接执行如下语法完成修改:
echo "NOZEROCONF=yes"  >>/etc/sysconfig/network

10.修改内核参数

/etc/sysctl.d/sysctl.conf or /etc/sysctl.d/98-oracle.conf

cat >> /etc/sysctl.d/sysctl.conf <<EOF 
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
kernel.panic_on_oops = 1
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.conf.all.rp_filter = 2
net.ipv4.conf.default.rp_filter = 2
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500
EOF

sysctl -p

11.安装必须要的包

cd /opt/

wget http://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm

yum localinstall -y oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm

yum update -y  #大概1000多个包(我新安装的系统😁),等吧(安装过程中会卡一小会儿,正常现象)
yum clean all
yum install binutils  compat-libstdc++-33 compat-libstdc++-33.i686 -y gcc  gcc-c++  glibc  glibc.i686  glibc-devel  ksh  libgcc.i686  libstdc++-devel  libaio  libaio.i686  libaio-devel  libaio-devel.i686  libXext  libXext.i686  libXtst  libXtst.i686  libX11  libX11.i686  libXau  libXau.i686  libxcb  libxcb.i686  libXi  libXi.i686  make  sysstat  unixODBC  unixODBC-devel  zlib-devel  zlib-devel.i686 compat-libcap1 -y

12.配置互信(两个节点都要配置)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-olLHzLma-1683161440626)(C:\Users\86132\AppData\Roaming\Typora\typora-user-images\image-20230427103354151.png)]

ssh-copy-id rac1
ssh-copy-id rac2

切换用户grid

ssh-copy-id rac1
ssh-copy-id rac2

Oracle用户

在这里插入图片描述

ssh-copy-id rac1
ssh-copy-id rac2

3.配置共享盘

切换回root用户

lsblk  #看一下磁盘情况

在这里插入图片描述

生成asm命名的磁盘

使用udev配置Asm磁盘

vi asm.sh  //编辑脚本
#!/bin/bash
for i in b c d e f g ;
do
echo "KERNEL==\"sd*\",ENV{DEVTYPE}==\"disk\",SUBSYSTEM==\"block\",PROGRAM==\"/usr/lib/udev/scsi_id -g -u -d \$devnode\",RESULT==\"`/usr/lib/udev/scsi_id -g -u /dev/sd$i`\", RUN+=\"/bin/sh -c 'mknod /dev/asmdisk$i b  \$major \$minor; chown grid:asmadmin /dev/asmdisk$i; chmod 0660 /dev/asmdisk$i'\""
done

chmod +x asm.sh

./asm.sh  //运行脚本

KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="36000c29726af9e28f0fff1eb68332efe", RUN+="/bin/sh -c 'mknod /dev/asmdiskb b  $major $minor; chown grid:asmadmin /dev/asmdiskb; chmod 0660 /dev/asmdiskb'"
KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="36000c29489b1433445c0e319c861b453", RUN+="/bin/sh -c 'mknod /dev/asmdiskc b  $major $minor; chown grid:asmadmin /dev/asmdiskc; chmod 0660 /dev/asmdiskc'"
KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="36000c29860c1a4c08b7344006cdf81bb", RUN+="/bin/sh -c 'mknod /dev/asmdiskd b  $major $minor; chown grid:asmadmin /dev/asmdiskd; chmod 0660 /dev/asmdiskd'"
KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="36000c295280791ed04403e7f5fe4222a", RUN+="/bin/sh -c 'mknod /dev/asmdiske b  $major $minor; chown grid:asmadmin /dev/asmdiske; chmod 0660 /dev/asmdiske'"
KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="36000c29b55e4b3acd130917d38bf2154", RUN+="/bin/sh -c 'mknod /dev/asmdiskf b  $major $minor; chown grid:asmadmin /dev/asmdiskf; chmod 0660 /dev/asmdiskf'"
KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="36000c29fd176d048954f94dbd82bc1fd", RUN+="/bin/sh -c 'mknod /dev/asmdiskg b  $major $minor; chown grid:asmadmin /dev/asmdiskg; chmod 0660 /dev/asmdiskg'"

vi /etc/udev/rules.d/99-oracle-asmdevices.rules //把上面的运行脚本之后生成的内容复制到这个规则 

udevadm control --reload  //udevadm配置重载生效

udevadm trigger

 ll /dev/asm*   ##两个节点是一样的哦~

重启

reboot

4.上传介质,开始安装(只需要在节点1操作即可)

1.上传介质在这里插入图片描述

从Oracle 12cR2开始,软件直接解压缩到GRID_HOME 或者ORACLE_HOME,而不是在安装时复制过去。 该操作只需要在节点1上完成解压缩即可。

安装grid

设置grid安装包的属主属组

chown -R grid:oinstall LINUX.X64_193000_grid_home.zip 

切换为grid用户解压压缩包

unzip LINUX.X64_193000_grid_home.zip -d /u01/app/19.3.0/grid
2.安装cvuqdisk 两个节点都安装
节点一操作:  ##root用户安装
cd /u01/app/19.3.0/grid/cv/rpm

 rpm -ivh cvuqdisk-1.0.10-1.rpm

 scp -p /u01/app/19.3.0/grid/cv/rpm/cvuqdisk-1.0.10-1.rpm rac2:/opt/
 
节点二操作:
cd /opt/
 rpm -ivh cvuqdisk-1.0.10-1.rpm
3.运行安装脚本gridSetup.sh

打开图形化界面,或者用vnc连接也可以

使用grid用户登录

在这里插入图片描述

在这里插入图片描述

执行安装脚本
./gridSetup.sh

注意:第一次执行一般会出现两个错误,一个是需要我们在grid 用户下执行脚本,第二个是需要我们配置图形显示 环境变量设置。如:export DISPLAY=192.168.110.56:0.0 查看电脑的ip地址 加上:0.0 0.0不行的话就1.0

在这里插入图片描述

在这里插入图片描述

配置集群名称以及scan名称
注意:scan name必须和 /etc/hosts里面scan的名字一样,cluster name 可以默认不改

这里选择添加
需要添加节点二
要保证心跳ip能互相ping通,而且互信没有问题

在这里插入图片描述

在这里插入图片描述

网段选择
一般的话会有一个virbr0网卡,自行百度删掉即可,或者在Use for中选择不使用选项

在这里插入图片描述

选择asm存储

在这里插入图片描述

选择配置GIMR

在这里插入图片描述

默认

在这里插入图片描述

选择asm磁盘组

在这里插入图片描述

正常模式需要两块盘,还需要一块冗余盘也就是一共需要三块

在这里插入图片描述

选择三块盘

在这里插入图片描述

选择剩余的三块

在这里插入图片描述

这里选择统一密码,生产环境选择单独的,嫌麻烦也可以选择统一密码

在这里插入图片描述

默认

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

确认grid的安装目录

在这里插入图片描述

默认

在这里插入图片描述

这里是自动执行脚本,不自动执行就不选

在这里插入图片描述

这里是在检查环境,选择ignore all
像我这个就没啥,如果有别的问题还是要解决一下的

在这里插入图片描述

安装前摘要

在这里插入图片描述

点击安装

在这里插入图片描述

执行脚本
当提示框弹出来的时候,我们先在节点一上使用root用户执行脚本,执行完成执行节点二的脚本。
执行过程中,会遇到各种各样的问题,1.ASM磁盘的名字不对 2.和节点二的互信不通
解决:重新配置ASM将宿主名字改为grid,即可完成;重新配置心跳IP;按照顺序执行脚本
先在rac1执行orainstROot.sh,执行完了之后在rac2执行,rac2执行完orainstRoot.sh脚本之后,在rac1执行root.sh脚本,然后rac2执行,等待脚本执行完毕之后再点击ok。 ##root用户下执行!!

在这里插入图片描述

执行第一个脚本,这是现在rac1上执行,再在rac2上执行的

在这里插入图片描述

执行第二个脚本,一定要按顺序来

在这里插入图片描述

节点一执行完毕后,在节点二执行

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

脚本执行完毕后,点击ok,然后等待他安装完成即可(又是一段很漫长的时间)

在这里插入图片描述

安装完成之后出了一个报错,能ping通自己设置的scanip就可以忽略掉

在这里插入图片描述

安装oracle

切换回Oracle用户

在这里插入图片描述

root用户修改db压缩包的属主属组

chown -R oracle:oinstall LINUX.X64_193000_db_home.zip 

oracle用户解压压缩包

 unzip LINUX.X64_193000_db_home.zip -d  /u01/app/oracle/product/19.3.0/db_1/

解压完成,进入

cd /u01/app/oracle/product/19.3.0/db_1/

执行安装脚本

./runInstaller 
选择software only

在这里插入图片描述

选择RAC

在这里插入图片描述

SSH互信验证

在这里插入图片描述

默认

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

我这个可以忽略全部,你们如果有别的的话,建议看一下哈

在这里插入图片描述

描述

在这里插入图片描述

在这里插入图片描述

在root用户下执行脚本,按顺序来
/u01/app/oracle/product/19.3.0/db_1/root.sh

在这里插入图片描述

执行完毕后点ok,然后就可以看到安装完成了

在这里插入图片描述

创建数据库实例

在Oracle用户下执行dbca
选择创建数据库

在这里插入图片描述

选择高级安装

在这里插入图片描述

选择General Purpose or Transaction Processing

在这里插入图片描述

检查节点互信

在这里插入图片描述

!!!注意:数据库名称可以写别的,但是SID必须写和你设置的Oracle用户环境变量里边的ORACLE_SID一致!

pdb不想创建就不选,默认是选的

在这里插入图片描述

选择数据盘

在这里插入图片描述

在这里插入图片描述

勾选快速回复  开启归档日志

默认

在这里插入图片描述

选择字符集

在这里插入图片描述

默认

在这里插入图片描述

使用统一密码

在这里插入图片描述

默认

在这里插入图片描述

校验时也是之前的dns和scan ip错误,可以忽略,进行下一步安装

在这里插入图片描述

在这里插入图片描述

等待安装完成即可(慢的很。。。)

在这里插入图片描述

可算安装完了。。

在这里插入图片描述

好~这个时候,激动的心颤抖的手,打开grid终端,输入
crsctl stat res -t
好好好,非常的好,可以看到安装成功😏

在这里插入图片描述

参考文档:https://blog.csdn.net/weixin_36065860/article/details/105772692
https://www.cndba.cn/dave/article/4073
https://oracle-base.com/articles/19c/oracle-db-19c-rac-installation-on-oracle-linux-7-using-virtualbox
  • 19
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
Oracle RAC(Real Application Clusters)是Oracle公司提供的一种数据库集群方案,它可以实现高可用性和高性能数据库集群。下面是Oracle RAC 19c集群搭建指南的一些主要步骤和要点。 1. 操作系统要求:首先,验证操作系统是否满足Oracle RAC 19c的要求。例如,必须使用受支持的操作系统版本,并正确设置操作系统参数。 2. 硬件要求:确保服务器硬件满足Oracle RAC 19c的要求。这包括处理器、内存、网络和存储等方面。 3. 安装Oracle Grid Infrastructure:先安装和配置Oracle Grid Infrastructure,在所有的集群节点上安装相同版本的Oracle Grid Infrastructure,并创建共享的存储。 4. 创建Oracle Clusterware:安装和配置Oracle Clusterware,这包括配置集群网络和集群存储等。 5. 安装Oracle Database 软件:在每个集群节点上安装相同版本的Oracle Database软件。确保所有节点上的软件版本一致。 6. 创建数据库:使用Oracle Database软件创建数据库。在创建数据库时,选择RAC数据库选项,并配置适当的参数和选项。 7. 配置连接和负载均衡:在客户端机器上配置连接到Oracle RAC集群的连接字符串,并配置合适的负载均衡策略。 8. 测试和优化集群:使用适当的测试工具和方法对Oracle RAC集群进行测试和优化,以确保系统的高可用性和高性能。 9. 运维和监控:建立适当的运维和监控机制,监控集群的状态和性能,并及时采取措施以确保集群的正常运行。 总结起来,Oracle RAC 19c集群的搭建需要正确安装和配置Oracle Grid Infrastructure和Oracle Clusterware,创建数据库,并配置适当的连接和负载均衡。同时还需要进行系统测试和优化,并建立适当的运维和监控机制。通过遵循这些步骤和要点,可以实现一个高可用性和高性能Oracle RAC 19c数据库集群
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值