本帖最后由 新手386710 于 2022-9-15 19:47 编辑
一、需求背景
为了保证数据库数据的高可用、数据冗余,保证数据的安全性,以及数据库的稳定运行,搭建数据库时,也可以采用集群方式部署,在oracle数据库中集群部署,名字是Oracle Real Application Cluster (RAC,实时应用集群),简称oracle rac。有幸在近期项目中需要把原有物理服务器的oracle rac数据库通过科力锐备份一体机恢复到超融合平台,为了验证oracle rac在超融合的承载业务能力,需要先自己搭建一套平台作为测试环境。 二、oracle rac基本原理和超融合环境准备 2.1 oracle rac基本原理 简单理解,oracle rac就像集群部署一样,比如交换机的堆叠、M-lag,防火墙的双机热备,负载均衡的双主集群部署。oracle rac数据库与单实例oracle数据库相比: (1)都只有一个数据库,但oracle rac数据库有多个实例,单实例数据库只有一个; (2)oracle rac需要两个节点部署,比如物理服务器就需要两台或者虚拟机也是需要两台,单实例数据只需要一个节点,单台物理服务器或者单台虚拟机就可以部署完成; (3)oracle rac数据库环境使用的是共享存储,也因为这一点,在物理环境下部署oracle rac数据库是很耗时的,并且部署过程中会因为挂载存储出现各种问题(度娘或者找dba),单实例oracle数据库用本地存储,也就是本地磁盘就行; (4)oracle rac数据库对于存储的文件系统一般是集群文件系统,但是在新推出的12C 18C 19C版本已经不常用,单实例oracle数据库存储的文件系统就是普通文件系统; (5)组网环境,oracle rac部署至少需要7个地址,分别是2个Public IP、2个Vip、2个Private IP和1个Scan IP,单实例oracle数据库,一般只需安装操作系统时的一个IP地址就可以部署完成。 注: Public IP :也是单机数据库IP地址或者通俗易懂的说他就是安装操作系统的IP地址,比如图片中public ip我使用的地址就是服务器操作系统的登录地址。主要是对数据库进行管理,比如我们登录数据库,进行用户切换,环境变量设置和免密登录数据库sqlplus /nolog使用。需要与业务网络在同一网段或者可以和业务网络通信。 Virtual IP: 就拿超融合来说,不管我们是两节点、还是三节点部署,添加主机时,都是通过集群地址登录也就是虚ip,然后添加主机,但在oracle rac他不是集群地址的意思,功能相近,它的主要用处就是节点之间故障了可以通过virtual ip地址登录设备或者进行故障迁移,这个virtual ip地址会浮动到正常节点,它需要和public ip处于同网段,这个也不难理解,我们超融合组集群时,管理地址和集群IP也是同一个段的地址,保证互访没有问题。 Private IP: 也拿超融合举例,超融合的四张网中的存储网,存储网就是用于 aSAN 存储,负责 HCI 节点间存储数据通信,并且网段可以设置生僻网段,只要保证不和客户内网环境地址冲突就行。同理,在oracle rac中的private ip是负责节点间内部数据通信,不对外开放,也是可以用生僻网段IP代替。 Scan IP: 原理上scan是一个访问机制,是由oracle rac的多节点决定,根据 LBA 算法将该客户端的连接数据库的请求,oracle rac会自动为客户端分配一个节点进行访问。需要与publicip、vip在同一个网段。 2.2 超融合环境准备 (1)操作系统镜像CentOS-7-x86_64-DVD-2009.iso
(2)数据库安装包和运行脚本 -rw-r--r--. 1 root root 5877466 Aug 23 09:59 oracle_rac_deploy-master20191219.zip -rw-r--r--. 1 root root 1395582860 Aug 23 10:02 p13390677_112040_Linux-x86-64_1of7.zip -rw-r--r--. 1 root root 1151304589 Aug 23 10:03 p13390677_112040_Linux-x86-64_2of7.zip -rw-r--r--. 1 root root 1205251894 Aug 23 10:05 p13390677_112040_Linux-x86-64_3of7.zip -rw-r--r--. 1 root root 656026876 Aug 23 10:06 p13390677_112040_Linux-x86-64_4of7.zip -rw-r--r--. 1 root root 599170344 Aug 23 10:07 p13390677_112040_Linux-x86-64_5of7.zip -rw-r--r--. 1 root root 488372844 Aug 23 10:07 p13390677_112040_Linux-x86-64_6of7.zip -rw-r--r--. 1 root root 119521122 Aug 23 10:08 p13390677_112040_Linux-x86-64_7of7.zip 提取码:12we --来自百度网盘超级会员V6的分享 (3)超融合的vxlan网络必须开启巨帧,如果此项功能开不起来,是绝不建议部署oracle rac数据库,超融合平台自身开启这个不会有限制,需要对端交换机支持mtu设置为1600及以上,所以考虑到这些,部署超融合平台,不仅存储交换机有限制,接vxlan交换机也需要查看一下mtu的性能(项目上就遇到过,对端友商交换机只支持mtu1536,达不到1600,所以每次超融合巡检就一直有这个告警)
三、安装步骤 3.1 超融合新增oracle rac数据库 3.2 新增虚拟共享磁盘 3.3 安装操作系统 3.4 新增虚拟交换机 超融合平台找到网络与安全,编辑拓扑,新增一台虚拟交换机,作为oracle rac的心跳交换机,连接private ip地址
3.5 确认虚拟机配置 3.6 正式安装操作系统 3.7 安装步骤省略,查看一般分区要求 df -h 查看交换分区 free -m 3.8 安装性能优化工具,然后关闭虚拟机 ll /dev/sr* 我们点立即安装会多出 /dev/srx,一般就是sr1,大家根据现有环境查看
3.9 设置虚拟共享磁盘大小 注:需要配置三组磁盘:仲裁盘、日志盘、数据盘。具体计算方法可以找400
3.10 克隆数据库节点1rac01虚拟机,作为数据库节点2rac02的虚拟机
注:互斥策略必须开启,因为数据库两个节点不能同时运行在一个主机上面,避免数据库两个节点运行在同一台,因为主机故障导致oracle rac运行异常,达不到数据库的高可用和冗余。 3.11 超融合环境准备完毕 3.12 数据库节点配置查看 rac01
rac02
四、上传脚本和数据库安装包 4.1 在对linux安装软件时,尽量养成和安装windows一样的习惯,自己新建一个目录,安装完在清除目录或者目录下的文件,但是这个只针对一些安装方式,比如linux的编译安装 ./configure 跟路径 && make && make install需要指定目录,比如/usr/下的某个文件夹才可以。此次实施我新增了/data路径,存放数据库安装包和脚本 rac01需要上传数据库安装包和脚本 rac02上传脚本 4.2 设置节点主机名 rac01 rac02
4.3 编辑虚拟机IP地址,这里切记,需要在超融合平台的物理出口处,确定网卡的名称 rac01 进入网卡配置目录 cd /etc/sysconfig/network-scripts/ 编辑网卡,网卡配置确认 rac02
4.4 脚本配置修改,脚本配置修改为一样即可 rac01 解压脚本unzip oracle_rac_deploy-master20191219.zip 注:只需要把脚本上传到rac02,解压就行,脚本参数不用修改,执行安装脚本会自己调取rac01的脚本
五、执行脚本,正式安装oracle rac数据库 注:脚本执行时间过长,建议上面操作步骤都通过mobaxterm操作,但是执行脚本操作在HCL的控制台进行操作,这样就不用担心电脑锁屏导致超时或者现场安装电脑网络中断导致安装失败。 5.1 执行脚本:bash -x install_rac.sh | tee rac.log,其中rac.log 记录安装日志。 经过44分钟,安装完成
5.2 验证oracle rac是否安装成功 注:这里必须切换到oracle用户,然后设置环境变量,不然就算免密登录sqlplus /nolog都是不能执行的 解决办法:执行. oraenv (有空格) 输入实例名,实例名对应安装脚本的sid,只是数据库节点不一样,名字相应加上节点数字,然后输入数据库安装路径,在oracle数据库这边,路径一般都是/u01/app/oracle/product/路径下
/u01/app/oracle/product/11.2.0.3/db_1 oracle rac验证: (1)查看RAC数据库服务器主机名映射 ,两个节点的主机映射地址是脚本设置的地址说明部署成功 cat /etc/hosts rac01
rac02 (2)查看集群状态,都为running说明部署成功 srvctl status database -d racdb |