您的位置:首页 > 数据库 > Oracle

Oracle 11g笔记——RAC简介、意义

2016-05-11 16:34 309 查看
一、RAC简介

1、高可用性

是指整合了硬件和软件技术的综合解决方案。它保证在不丢失数据的前提下,应用程序(服务)能够不间断运行,也就是服务的有效性或服务的可持续访问性。

特征:可靠性:可靠的硬件和可靠的软件

可恢复性:提供各种机制,确保能从失败中恢复丢失的数据和失败的进程

错误自动检测:能自动探测各种错误,并采取相应措施

可持续性:当某些组件失败时,仍然能够继续对外界提供服务

Oracle HA解决方案:Oracle Golden Gate、Oracle Data Guard、Oracle Stream Replication和Oracle Real Application Cluster(RAC)

(1)Oracle Golden Gate是一种基于日志的结构化数据复制备份软件,它通过解析源数据库在线日志(Online Redo)或归档日志获得数据的增量变化,再将这些变化应用到目标数据库,从而实现源数据库与目标数据库同步。

(2)Oracle Data Guard通常由两台机器组成,其中一台叫primary database,另外一台叫standby database,两台机器为复制关系。当primary database宕机时,standby database可以代替primary database,不间断地对外提供服务。

(3)Oracle Stream Replication叫流复制,它是基于消息队列的一种复制技术

(4)Oracle集群(RAC)是HA常用的一种解决方案,它通过共享存储等一系列技术实现数据库的高可用性。

2、Oracle集群

一个Oracle集群(RAC)通常由多台服务器(每台服务器称作一个“节点”)组成,多台服务器形成一个整体,对外提供服务。

但对外来说,好像只有一台机器。集群内部很复杂,但对外的访问接口却很简单。一个集群最多可支持100个节点。

节点间通过私有网络进行通信,数据库被放在共享存储上。集群中的每个节点都运行一个实例(instance),每个实例都有自己的内存和进程。

集群中的多个实例可以并行地访问共享存储上的数据库。通常,一个数据库对应一个实例 ,但是在RAC环境下,一个数据库对应多个实例。

RAC优点:

(1)高可用性:结合硬件(RAID)技术,当一块硬盘失败时,数据没有丢失,数据库仍然正常运行。当一个节点掉线时,另外一个节点将接管失败节点的负载,并正常对外提供数据库访问服务

(2)负载均衡:集群中的多个节点同时工作,共同接受客户端连接,共同分担负载。

(3)可扩展性:当性能或者容量成为瓶颈时,我们可以往集群中增加新的节点或新的磁盘

3、RAC硬件架构

A.分类

(1)外挂式(Direct Attached Storage, DAS),又名“直接附着存储”、“直接附加存储”

存储设备不在主机内,存储是一个单独的设备,它通过主机总线适配器(Host Bus Adapter, HBA)与主机直接进行连接。主机和存储设备之间没有任何网络设备(交换机、路由、HUB)

优点:速度快、安全、成本低廉、容易实施

缺点:服务器和存储设备间的距离短,对存储设备的访问会增加服务器的负载,服务器发生故障,数据将不可访问,难于扩展,集中度低。

(2)网络式(Network Attached Storage,NAS),又名“网络附加存储”、“网络附着存储”

存储设备通过网络和主机进行连接。利用普通网络(以太网)进行数据传输,可以利用现有的网络,因此成本较低。

(3)网络式(Storage Area Network,SAN)存储区域网络

存储设备也通过网络和主机进行连接。利用光纤通道的专有网络进行数据传输

优点:速度快,传输距离远,可靠性高,易于扩展。SAN代表了存储技术的主流,但成本较高

B.RAID级别

通过RAID技术,可以把几块物理硬盘虚拟成一块大硬盘,或者N块硬盘。

RAID技术两大意义:数据保护、提高I/O的吞吐量。

C.网络简介

(1)公有网络(Public Network):客户端通、Web通过公有网络访问RAC

(2)私有网络(Private Network):用于节点成员之间的相互通信,也就是节点互联,只有节点才能使用私有网络。不能用于公有网络,以免引起节点之间的通信延迟,从而影响RAC的性能。

注:无论是公用网络还是私有网络,都应该考虑网络的冗余性、高可用性。

4、软件架构

(1)软件分层

A. Oracle RAC:是一个独立的软件(不和Orae Grid Infrastructure集成到一起),是数据库软件,但加入了集群功能,负责集群数据库的管理。

一个集群中有一个数据库,每个节点上有一个实例,多个实例并发地访问数据库,每个实例有自己的内存和后台进程。

B.Orae Grid Infrastructure(网格基础层、网格基础软件、集群软件):是一个软件,负责管理集群中的节点、各种资源及存储的管理,是RAC的基础。先安装GI,再安装RAC。GI可以再分为:

a. Oracle Clusterware

b. 自动存储管理ASM(Oracle Automatic Storage Management),用于管理共享存储

oracle 11g将Oracle Clusterware与ASM整合到了一起

C.硬件

(2)Oracle Clusterware软件

是一个集群软件,称为“集群构件”,它将多台服务器整合为一个集群,使它们作为一个相互协作的系统。

主要管理节点及各种资源,这些资源包括虚拟IP(Virtual IP,VIP)、数据库(Databases) 、监听器(Listeners)以及各种服务(Services)等。

Oracle Clusterware软件是Oracle公司提供的集群组件。第三方也提供了类似功能的软件,如IBM的High Availability Cluster Multi-Processing, HACMP

原理:Clusterware启动时,会自动启动各种注册的资源(如VIP),并监控各种资源的状态,一量有资源失败,Clusterware会自动重启失败的资源,Clusterware的后台进程运行在各个节点上。

资源:任命被Clusterware管理的东西都叫CRS资源。资源可以是数据库、实例、监听器、VIP、服务或应用程序。

步骤:a.安装Oracle时,Oracle会创建各种资源,我们可以使用srvctl命令管理这些Oracle预定义的资源

b.安装Oracle后,我们可以创建自己的资源。当启动资源时,Oracle会读取资源的配置信息(记录了资源的各种属性),资源的配置信息被放在Oracle集群注册表(Oracle Cluster Registry, OCR)中。

c.资源配置信息放在OCR中,而OCR必须放在共享存储中(磁盘陈列)

共享存储中包含:Data files、SPFILE、Online Redo Log、Voting Disks、Control Files、OCR

Clusterware组成:集群注册表(OCR)、表决盘(Voting Disks)、共享存储、网络、后台进程

(2.1)集群注册表(Oracle Cluster Registry, OCR)

OCR存放资源配置,为防止OCR丢失或损坏,应多路镜像OCR,把它同时放到多个路径下(最多可有5个)

(2.2)表决盘(Voting Disks)

用于判断哪些节点在同一个集群,也必须放在共享存储中,多个节点共享这些信息。为了防止表决盘丢失或损坏,也应将它放在多个路径,以实现多路镜像,通常应该至少需要3个表决盘。

(2.3)共享存储(软件层)

从软件的角度,如何访问共享存储,形式:

a.Oracle集群文件系统(OCFS)

是Oracle官方提供的。各普通的文件系统(Ext2、Ext3)一样,首先,它是一种文件系统,其次,集群文件系统用于实现多台服务器共享存放在共享存储中的数据,这是它的最大特性。OCFS具有高性能各高可用性等优点。

b.网络文件系统(NFS)

NFS是一种分布式文件系统协议,它允许客户端通过网络访问另一台机器上的数据(目录),通过NFS,可以把远程机器上的目录映射成本地机器上的目录,本地机器只要访问本地的目录,就可以实现对远程机器上的目录的访问。

NFS服务器通常是文件服务器,为整个网络提供文件共享服务。

c.自动存储管理(ASM)

ASM是一种高性能的、易于管理的存储解决方案。ASM替Oracle管理磁盘,而Oracle数据库通过ASM实现对共享数据的存储和访问。

Oracle主推的还是自动存储管理(ASM)。它利华了磁盘管理,将数据分布到多块磁盘,重新平衡数据,最终实现数据的高可用性和访问的高性能。

(2.4)网络

a.公有IP地址

在安装Orae Grid Infrastructure时,要设置公有网卡地址,通常用于从外部连接集群中指定的节点,每个节点都有一个公有IP地址

b.节点互联(节点间通信)----私有网络

私有网络把组成集群的节点连接在一起。私有网络是专用的,只供节点间通信使用。

通信协议:UDP(User Datagram protocol,用户数据报文协议)、RDS(Reliable Data Socket Protocol,可靠数据套接字协议)

c.虚拟IP(VIP)

VIP是一个不与特定计算机工计算机中的网卡绑定死的IP地址。通常一台服务器有一个VIP,当该VIP所在的节点宕机时,该VIP可以从一台机器漂移到另外一台机器,继续为外界提供数据库访问服务。VIP是Oracle高可用性的一个重要环节。

VIP是在安装Orae Grid Infrastructure时创建的。

一个集群中可以有多个VIP,也就是多个对集群的访问接口。缺点:当特定的节点从集群中被删除/增加时,我们需要重新配置客户端。

d.集群统一入口(Single Client Access Name, SCAN)

SCAN是一个主机名,它提供了单一的名字(单一的访问集群的接口),这个名字不对应某个节点,而是对应整个集群。

集群和SCAN的关系是一一对应的。当客户端想访问集群时,不需要指定VIP,只需要指定SCAN即可。

当集群内部发生变化时(如删除一个节点),对SCAN没有影响,也不需要重新配置客户端

一个SCAN可以对应一个或者多个IP地址(最多3个),出于高可用性的目的,一个SCAN应该对应多个IP地址,但可对应多个SCAN VIP

SCAN优点:

负载均衡:当客户端请求数据库连接时,SCAN的名字要被解析成IP地址,利用DNS的轮询调度算法,每次SCAN都会被解析成不同的IP地址,根据IP地址(SCAN VIP)客户端会去连接指定的SCAN监听器。

轮询调度算法也可以用Oracle的GNS(Grid Naming Service)来实现。若使用GNS,Oracle会自动创建SCAN,若使用DNS解析,需要我们自己定义SCAN

高可用性:若SCAN对应多个IP地址,当尝试第一个IP地址失败时,Oracle会尝试使用SCAN中的第二个IP地址,依此类推。若失败,Oracle才返回错误。

(2.5)后台进程

Clusterware运行在集群中的每个节点上,它被分成两个层次,上层为:Cluster Ready Services(crsd),下层是Oracle High Availability Services(ohasd)

每层都由一系列的组件组成,这些组件表现为进程或服务。

二、RAC的意义----负载均衡和失败转移

1、负载均衡分类:

(1)服务器端负载均衡

(2)客户端负载均衡:SCAN负载均衡、非SCAN VIP负载均衡、混合型

2、负载均衡示例

(1)非SCAN VIP负载均衡

是传统负载均衡,需要修改客户端的tnsnames.ora文件,并设置LOAD_BALANCE=ON,加入数据库服务器的VIP(不是SCAN VIP)

客户端请求连接时,将从地址列表中随机选择一台主机进行连接。

如:

orcl =(DESCRIPTION =

(LOAD_BALANCE=0N)

(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.83)(PORT=1521))

(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.84)(PORT=1521))

(CONNECT_DATE=

(SERVICE_NAME=ZERODB)

)

)

注:LOAD_BALANCE=0N表示开户客户端负载均衡,ZERODB是服务名,通常和数据库的名字相同

192.168.0.83、192.168.0.84是VIP(不是SCAN VIP)

测试tnsnames.ora配置是否正确:SQL>tnsping orcl

测试tnsnames.ora成功后,登录,查看当前会话的实例:SQL>select instance_name from v$instance;

测试发现:在不同的实例间切换

(2)SCAN负载均衡

本例中myscan对应3个IP地址(192.168.0.85、192.168.0.86、192.168.0.87)

修改客户端的tnsnames.ora文件

orcl =(DESCRIPTION =

(ADDRESS=(PROTOCOL=TCP)(HOST=myscan)(PORT=1521))

(CONNECT_DATE=

(SERVICE_NAME=ZERODB)

)

)

注:ZERODB是服务名,myscan就SCAN的名字(其实是通过DNS进行解析的一个主机名),注host必须为主机名,不能是IP地址。

测试tnsnames.ora配置是否正确:SQL>tnsping orcl

测试tnsnames.ora成功后,登录,查看当前会话的实例:SQL>select instance_name from v$instance;

测试发现:在不同的实例间切换

(3)混合型负载均衡

混合型融合了普通的VIP和SCAN VIP。若使用混合型,需要修改参数REMOTE_LISTENER

SQL>ALTER SYSTEM SET REMOTE_LISTENER='......' SCOPTE=BOTH SID='*';

若我们使用的是Oracle 11.2,推荐使用SCAN负载均衡方式。

3、服务器端负载均衡

当客户端选择特定的IP地址连接到指定的监听器后,监听器需要决定要让客户端连接至哪个实例。监听器会根据第个实例的繁忙程度,让客户端连接到最空闲的实例。

选择实例后,如果数据库实例被配置成共享服务器模式(Shared Server),则监听器会让最空闲的高度进程(dispatcher)为该客户服务。

服务器端负载均衡由Oracle自动完成,基本不需要DBA的干预。

4、失败转移

(1)分类:连接时失败转移(Connet-time Failover)、透明应用程序失败转发(Transparent Application Failover, TAF)

连接时失败转移:当客户端连接数据库里,会尝试连接第一个监听器,失败后再尝试别的监听器

注:配置网络服务名时,可以设置FAILOVER=ON,表示开户连接时失败转移

透明应用程序失败转发:是运行时发生的失败转移,如节点失败时,该节点上的会话会重新建立连接。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: