APP下载

大数据时代下RAC集群模式的应用

2018-05-28张莹张潇予

电脑知识与技术 2018年9期
关键词:高可用性高性能大数据

张莹 张潇予

摘要:基于大数据环境,对Oracle 数据库RAC集群模式的体系结构和原理进行了介绍,并举出了具体的实用实例。RAC集群模式的高可用性、负载均衡和高性能的特性,是未来信息技术的发展趋势,也是人才培养的方向之一。

关键词:大数据;RAC集群;高可用性;缓存融合;高性能

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2018)09-0027-04

1 大数据的背景简介

随着数据库以及网络信息技术的飞速发展,标志着大数据时代的到来。信息技术与人们的工作、生活紧密相连,各种网络社交网站,软件以及智能设备每时每刻都在产生着不同形式的大量数据,由此产生了超越以往任何时代的巨量数据。海量数据成为资源共享和社会进步基础的同时,也存在各种隐患。大数据技术的目标之一就是处理批量数据,让数据具有更高的可靠性和可用性,筛选出真正有利用有价值的信息,从而形成变革之力。从国家安全部门、互联网创业公司到金融机构,无处不需要大数据项目来做创新驱动。大数据时代也催生了大量相关人才的缺口。

2 Oracle RAC集群体系结构简介

哈佛大学社会学教授加里·金说过:“这是一场革命,庞大的数据资源使得各个领域开始了量化进程,无论学术界、商界还是政府,所有领域都将开始这种进程。” 随着数据处理能力的增强,数据量已经从TB(1024GB=1TB)级别跃升到PB(1024TB=1PB)、 EB(1024PB=1EB)乃至ZB(1024EB=1ZB)级别。

巨量数据的应用对数据库的要求越来越高。随着数据量的增大,除记录数据外,数据库还要面对存储容量是否可扩展、保存数据是否安全、数据的可利用性和数据的处理速度等问题。如何合理运用数据库并且减轻它负担,由此衍生出来针对企业信息系统的oracle数据库的 RAC集群运行模式。

集群是若干互联节点充当一个单台服务器。集群软件隐藏了结构,所有节点都可以对磁盘进行读写操作。RAC全称 Real Application Clusters ,简单说它就是一个软件,RAC通过集群互连使得多个实例间可以互传协调信息和数据映象。从外部应用人员的角度看,RAC就像是一个节点在提供服务。 RAC的层次架构有三层:

2.1 存储类

存储类中RAC是一个多实例、单数据库的系统。很多个节点共用一个磁盘来存储和共享数据。database files、control files、redo logs 等。

底层存储方式 raid 0 两块盘disk,条带化

raid 1 两块盘disk,镜像

raid 5 三块盘 disk,条带化+镜像 底层配置raid卡,5更稳定。

2.2 网络类

RAC中,在TNS中配置网络相关的IP地址。有四种情况:Public、Private、vip和scanip。

由公网网卡接入的网络,可以对外的提高查询的服务。由私网网卡构建的,为了使内部的节点之间可以相互通信,完成缓存融合的功能。由游离的IP的组成的,为了实现高可用的性能的IP地址。实例如表1所示。

2.3 应用类

CRS则是应用层的,通过一些CRS的命令对上层进行管理。用于检查后台进程状态,启动所有CRS资源。检查ocr设置信息用ocrcheck,检查磁盘信息,查看所有CRS资源基本信息等。

3 RAC集群原理及实例

3.1 RAC集群相关原理

1)RAC集群原理

RAC 主要是一个database,可以由多个instance访问,每个节点运行一个instance。

CRS:Cluster Ready Service,Oracle集群软件。

GRID:网格管理,11g通过 GRID架构集中管理RAC节点。

RAC:较更早的OPS提供更好的性能。

2)RAC 体系的优势

(1)高可用性:提供节点容错和负载均衡。如果主实例出现故障,服务将从故障实例转移到仍正常运行的替代实例。

(2)扩展性和高性能:提高业务吞吐量,允许同时运行多个批处理。允许更大的并行度和更多的并行执行操作。允许大幅度增加联机事务处理系统中的连接用户数量。

3)CRS的重要后台进程

CRS是RAC的集群件,它是RAC体系的主要组件,由若干个进程组成,其中最重要的3个是CRSD、CSSD和EVMD。

4)VIP

VIP是RAC提供节点间服务切换的网络组件,是为了替代OS层面的TCP/IP超时阈值机制。

(1)绑定固定的对外提供服务的是公网IP,但是可以浮动的是VIP。VIP可以附着在公网IP上,因此此时最少就有两个网卡IP了。

(2)当某一个节点网卡故障坏掉时,VIP会自动游附到好的节点上,这样此VIP的就可以继续不断使用

(3)一般VIP是配置在客户端的TNS文件中的。

5)缓存融合Cache Fusion

RAC的前身是OPS,OPS的一个缺点是当一个节点修改了某个数据块,而第二个节点也要修改同一数据块时,必须等待第一个节点将该块写入磁盘数据文件,然后第二个节点从磁盘上读取该块,这种方式比较低效。

RAC有多个节点,总体上RAC的Buffer Cache的數据块比单实例的数量更多,修改更为密集。RAC采用了一种叫做Cache Fusion的机制,可以通过节点间的高速内网传递同一个要修改的块,大大提高了DML操作的效率。整个Cache Fusion有两个服务组成,GCS和GES。它们具体体现为一些服务进程。

以缓存融合为例,当一个实例修改了某个数据块,而另一个实例也要修改该块时,第一个实例会把修改的数据块即Current Copy通过Cashe Fusion传给第二个实例,然后保存原数据块在实例的内存中,但是不能再进行任何修改操作,第一个实例就相对的成为主节点。 这一机制是为了保护事务的一致性,并有利于Crash Recovery的恢复过程。

3.2实际操作RAC搭建过程

1)注意事项

在RAC中,grid用户的权限要比oracle的权限大,所以在RAC中监听listener已经不属于oracle来管理了,而是grid用户来管理。listener作为一种启动的资源来配置。lsnrctl status命令可以查看有几个实例注册了进来。

2)搭建过程

(1)首先需要配置网络,建立本地盘和共享盘

(2)建用户及组、目录、权限并更新配置文件

groupadd -g 200 oinstall

groupadd -g 201 dba

groupadd -g 202 oper

groupadd -g 203 asmadmin

groupadd -g 204 asmoper

groupadd -g 205 asmdba

useradd -u 200 -g oinstall -G dba,asmdba,oper oracle

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

(3)修改内核参数vi /etc/sysctl.conf

fs.aio-max-nr = 1048576

fs.file-max = 6815744

kernel.shmall = 2097152

kernel.shmmax = 536870912

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

net.ipv4.ip_local_port_range = 9000 65500

net.core.rmem_default = 262144

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048586

(4)配置共享存储

運用 ASM磁盘管理配置规划

磁盘组OCR_VOTE,3个1G互为镜像

(5)建立主机间的信任关系

(6) 配置Grid用户信任关系:

生成密钥rsa类型:id_rsa为私钥,id_rsa.pub为公钥,它们自动保存到.ssh下

[grid@tim1 ~]$ cd

[grid@tim1 ~]$ ssh-keygen -t rsa

[grid@tim1 ~]$ ssh-keygen -t dsa

配置grid用户信任关系(Node1、Node2)

Node1:

[grid@tim1 ~]$ ls .ssh

id_dsa、 id_rsa 、id_dsa.pub 、id_rsa.pub

第一步,先把Node1的两把公钥收集到它的authorized_keys文件中。

我们只关心公钥,不关心私钥

[grid@tim1 ~]$ cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys

[grid@tim1 ~]$ cat ~/.ssh/id_dsa.pub >>~/.ssh/authorized_keys

第二步,把其他节点的公钥追加到node1的authorized_keys文件中。

[grid@tim1 ~]$ ssh tim2 cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys

[grid@tim1 ~]$ ssh tim2 cat ~/.ssh/id_dsa.pub >>~/.ssh/authorized_keys

第三步,把node1的authorized_keys文件派发给其他节点。

[grid@tim1 ~]$ scp ~/.ssh/authorized_keys tim2:~/.ssh

[grid@tim2 ~]$ cat ~/.ssh/authorized_keys

(7)安装Grid

解压安装包

以root身份解压grid安装包和database安装包

Node1:

[root@tim1 ~]#cd /soft

[root@tim1 soft]#ls

asm linux_11gR2_database_1of2.zip linux_11gR2_database_2of2.zip linux_11gR2_grid.zip

[root@tim1 soft]#unzip linux_11gR2_grid.zip

[root@tim1 soft]#unzip linux_11gR2_database_1of2.zip

[root@tim1 soft]#unzip linux_11gR2_database_2of2.zip

检查两个节点的共享盘

看到的共享盘ASMDisk已经准备就绪

Node1:

[root@tim1 ~]#ll /dev/raw/raw*

Node2:同上

[root@tim2 ~]#ll /dev/raw/raw* 两节点看到的盘一致

(8)启动GRID安装界面

启动Xmanager Passive,一般端口是[:0.0],如图1所示。

DISPLAY的意思是把图形显示到某个客户端上,图2显示的是win7本地客户端。

使用ASM,Oracle11gR2取消了raw选项,如图3所示。

然后建立GRID并执行如图4和5所示。

如上图所示分别在两个节点实例tim1(node1)和tim2(node2)中,分别各执行两个脚本orainstRoot.sh和root.sh,且顺序一定不可以变,当一个执行成功后方可执行下一个。

Node1执行第一个脚本(root用户)

[root@tim1 ~]# /u01/app/oraInventory/orainstRoot.sh

Node2执行第一个脚本(root用户)

[root@tim2 ~]# /u01/app/oraInventory/orainstRoot.sh

The execution of the script is complete.

Node1 执行第二个脚本(root用户)

[root@tim1 /]# /u01/11.2.0/grid/root.sh

Node2 执行第二个脚本(root用户)

[root@tim2 ~]# /u01/11.2.0/grid/root.sh

运行脚本,如图6所示。

最后一步,点击Close,结束图形安装。

3.3操作实例

以某单位信息中心迁移为例,进行具体操作描述。

1)项目要求描述

(1)在新信息中心搭建高可用双机于备服务器;

(2)将旧服务器数据库迁至新服务器中。

硬件环境:IBM 磁盘阵列、IBM 小型机

软件环境:AIX5.3、ORALCE 10.2.0.1.0

2)过程描述

(1)配置存储环境。根据项目要求,对空间进行规划,使用 6 块 SCSI 硬盘构建 Raid10,使用 4 块 SCSI 硬盘构建 Raid5。在 Raid 10 上创建 ASM 磁盘组,将 Raid 5 创建成文件系统;

(2)在新信息中心配置安装环境并部署 RAC ,安装应用软件,为数据库迁移做准备;

(3)选择一个时间点,暂停中间件(MQ)数据上传,用 RMAN 对数据库进行迁移。

4 结语

在当前大数据纷杂的时代,一台机器提供的性能是远远不够的,RAC(rac application cluster)可以同时利用两台服务器对外提供服务,做一个高性能的一套架构。它可以根据负载情况连接到不同的机器上,此时业务相对打散,减轻了负担。体现了RAC的高性能。

当instance1从磁盘中访问某条数据到自己的内存中时,instance2也正想访问这条数据,此时会有主从节点的概念,且instance2会从instance1的内存中读取这条数据而不是从磁盘中。这样使查询更快更方便并且减少了磁盘的吞吐量和次数,也减轻了磁盘的负担。即实现了缓存融合。

当通过客户端,通过远程连到服务器时,RAC会通过考虑看两个实例(instance)都分别持有的会话总数,来将新的会话连接到会话少的实例中,来减轻某服务器的负担。体现了rac的负载均衡。

而为了实现负载均衡,实现会话的自动连接,在绑定IP地址时,就不应该只是在TNS中绑定固定的对外提供服务的公网IP地址,而是建一个挂在公网IP上的虚拟IP,叫VIP(virtual ip)。它是可以浮动的。当搭建RAC之后,系统会自动产生一个虚拟IP附在公网IP上,作用是当某网卡坏掉时,附在上面的VIP地址会自动的漂到网络通的其他的机器上,如果此时TNS用的是VIP的地址则即使出现网络中断,业务却并没有中断,即实现了高可用性。

RAC集群模式,让用户可以不用花大的成本就实现了高可用性,同时也因为有了负载均衡和高性能的特性解决了如果发生故障,业务断停会给企业带来的损失。当业务增大,需要进一步扩展时,也可以直接按照需求量增加节点,当业务高峰期过后,也可以直接按照需求量减少节点,无需更换服务器或者修改应用程序及环境。这些应用都大大地解决了现在企业所困扰或者面临的问题。RAC的优势是企业所需要及未来信息技术的发展方向,也是人才培养的方向之一。

参考文献:

[1] 陈吉平. 构建高可用环境[ M ]. 北京:电子工业出版社,2008,1.

[2] Richard J.Niemiec. Oracle Database 10g 性能调整与优化[M]. 薛莹,译. 北京:清华大学出版社,2009.

[3] 周卓镛.Oracle R A C 数据库缓存优化方法探讨[J].科技创新导报, 2010(5):12- 12.

[4] 林波.基于 Oracle RAC 数据库的应用系统的容错处理机制[J].中国传媒科技,2010(9):50-51.

[5] 周芹等.基于 Oracle Spatial 的空间数据库缓存的关键技术[J].地球信息科学,2007(3):40-44.

[6] 王曦. Oracle 数据库安全技术与策略[J]. 科技资讯,2016(30):9-11.

[7] 童超城,高唯一. 關于 Oracle数据库安全管理的研究[J].电子技术与软件工程,2016(11):228.

[8] 刘嘉琦 . 探究 oracle 数据库的备份与恢复[J]. 数字技术与应用,2017(2):246.

[9] 袁勇,简岩,孙小林. 基于 Oracle RAC的数字校园平台架构分析[J].江苏科技信息,2017(8):42-43.

猜你喜欢

高可用性高性能大数据
超长公路隧桥高可用性监控平台方案分析
一款高性能BGO探测器的研发
高性能砼在桥梁中的应用
OpenStack云计算平台高可用性的研究
一种虚拟化集群心跳算法
SATA推出全新高性能喷枪SATAjet 5000 B
高性能可变进气岐管降低二氧化碳排放