Chinaunix首页 | 论坛 | 博客
  • 博客访问: 832754
  • 博文数量: 199
  • 博客积分: 6363
  • 博客等级: 准将
  • 技术积分: 2225
  • 用 户 组: 普通用户
  • 注册时间: 2007-04-28 10:01
个人简介

来自农村的老实娃

文章分类

全部博文(199)

文章存档

2017年(1)

2014年(2)

2013年(3)

2012年(6)

2011年(26)

2010年(34)

2009年(50)

2008年(44)

2007年(33)

我的朋友

分类: Oracle

2011-08-03 13:44:16

Oracle RAC 是什么?

对于新接触集群环境的人来说,Oracle RAS 是这样一项技术:两个或多个共享相同物理数据库的 Oracle 关系数据库管理系统 (RDBMS) 实例。多个用户可以通过参与集群的任何实例访问数据(即,数据的相同实例),他们可以查看数据的准确副本。

 murali-fig2

图 2 Oracle RAC 配置

如图 2 所示,以下是 Oracle RAC 实现相对于单实例配置特有的特征:

  • 许多 Oracle Database 实例在许多节点上运行。通过实现 Oracle Database 11g 第 2 版中提供的特性(如服务器池),不再像之前版本中那样对实例到服务器/节点的亲和性作硬性要求,从而为基于集群环境中的负载动态供应实例提供了机遇。

  • 多个实例共享一个物理数据库。

  • 所有实例具有通用的数据和控制文件。无论集群中有多少实例,只有一组数据文件和控制文件。

  • 每个实例都有自己的日志文件和还原段。

  • 所有实例可同时对一个物理数据库执行事务。

  • 参与集群配置的实例利用缓存融合技术通过集群互连进行通信。

  • Oracle RAC 跨集群互连在实例间维护缓存同步。

  • 每个节点都包含一个虚拟 IP 地址,供连接到数据库的用户会话使用。

  • 集群维护一个 SCAN 地址,该允许用户动态连接到负载最低的任意服务器。(SCAN 地址类似于 OpenVMS 和 Tru64 操作系统中的集群别名特性。这些地址是智能的,知道集群中的哪些服务器的负载最低,从而将新连接放在负载最低的服务器上。有关 SCAN 工作原理的讨论不在本文档的讨论范围内。)

  • 每个节点都包含一个 Oracle Automatic Storage Manager 实例,提供对存储基础架构的访问并提供选项,例如在数据库得到有效利用时添加和删除存储。

  • 所有参与的节点利用 Oracle Clusterware 彼此协调,实现成员可用性和表决。

缓存同步

用户查询数据库中的数据时,将从存储子系统检索数据并加载到缓冲区缓存中,遍历数据直至提取出最终结果集。然后将最终数据集发送给用户。之后,如果其他用户执行相同的查询,将从缓冲区缓存中读取数据,并将数据结果集返回给用户。数据并非始终可用。如果缓冲区空间不足或者另一个会话修改了数据,则要求刷新并重新加载缓冲区中的数据。

在 Oracle RAC 环境中,用户从不同实例执行查询时,不再是使用每次都必须从 I/O 子系统检索数据的 DBWR 进程,而是(通常)通过一个实例到另一个实例的互连传输数据。(在 Oracle Database 11g 第 2 版中,缓存合并技术内使用的新增的“bypass reader”算法会在读取大量行时跳过数据传输,转为使用来自请求实例的本地 I/O 子系统检索数据。)这能提供可观的性能收益,因为从 I/O 子系统检索数据的延迟与通过网络传输数据相比要高得多。基本上,网络延迟比 I/O 延迟要低得多。

数据传输给请求实例之后,执行计划就会遍历行,提取用户请求的实际结果集。

有多种类型的数据访问模式可以在 Oracle RAC 环境中实现,具体取决于应用程序和数据库的类型,例如:

  • 方法 1:普通查询执行 — 如果针对较小的数据子集进行查询,例如在 OLTP 实现中,将从存储中本地访问数据。

  • 方法 2:并行查询执行 — 如果针对较大的数据集进行查询,例如在数据仓库实现中,应考虑使用并行执行并利用多个实例中可用的资源。

  • 方法 3:结果缓存 — 如果查询执行分析函数或者是一个汇总表,应考虑利用 Oracle 11g 中的结果缓存特性,其最终结果将存储在结果缓存中,可供系统中的其他用户使用。

让我们利用之前使用过的查询来进行演示。在 Oracle Database 11g 第 2 版中,这些选项中的每一个都用不同的方法检索数据,在某些情况下,这些方法与之前版本的 Oracle Database 中有所不同。

阅读(780) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~