lzdyxin 发表于 2011-12-22 08:54

RAC中使用 Oracle Database 11gR2的结果缓存特性(2)

<DIV>
<H3>Oracle RAC 是什么?</H3>
<P>对于新接触集群环境的人来说,Oracle RAS 是这样一项技术:两个或多个共享相同物理数据库的 Oracle 关系数据库管理系统 (RDBMS) 实例。多个用户可以通过参与集群的任何实例访问数据(即,数据的相同实例),他们可以查看数据的准确副本。</P>
<P align=center>&nbsp;<IMG alt=murali-fig2 src="http://www.oracle.com/ocom/groups/public/@otn/documents/webcontent/284613.jpg"></P>
<P align=center><STRONG>图 2</STRONG> Oracle RAC 配置</P>
<P>如图 2 所示,以下是 Oracle RAC 实现相对于单实例配置特有的特征:</P>
<UL>
<LI>
<P>许多 Oracle Database 实例在许多节点上运行。通过实现 Oracle Database 11<EM>g</EM> 第 2 版中提供的特性(如服务器池),不再像之前版本中那样对实例到服务器/节点的亲和性作硬性要求,从而为基于集群环境中的负载动态供应实例提供了机遇。</P></LI>
<LI>
<P>多个实例共享一个物理数据库。</P></LI>
<LI>
<P>所有实例具有通用的数据和控制文件。无论集群中有多少实例,只有一组数据文件和控制文件。</P></LI>
<LI>
<P>每个实例都有自己的日志文件和还原段。</P></LI>
<LI>
<P>所有实例可同时对一个物理数据库执行事务。</P></LI>
<LI>
<P>参与集群配置的实例利用缓存融合技术通过集群互连进行通信。</P></LI>
<LI>
<P>Oracle RAC 跨集群互连在实例间维护缓存同步。</P></LI>
<LI>
<P>每个节点都包含一个虚拟 IP 地址,供连接到数据库的用户会话使用。</P></LI>
<LI>
<P>集群维护一个 SCAN 地址,该允许用户动态连接到负载最低的任意服务器。(SCAN 地址类似于 OpenVMS 和 Tru64 操作系统中的集群别名特性。这些地址是智能的,知道集群中的哪些服务器的负载最低,从而将新连接放在负载最低的服务器上。有关 SCAN 工作原理的讨论不在本文档的讨论范围内。)</P></LI>
<LI>
<P>每个节点都包含一个 Oracle Automatic Storage Manager 实例,提供对存储基础架构的访问并提供选项,例如在数据库得到有效利用时添加和删除存储。</P></LI>
<LI>
<P>所有参与的节点利用 Oracle Clusterware 彼此协调,实现成员可用性和表决。</P></LI></UL>
<H3>缓存同步</H3>
<P>用户查询数据库中的数据时,将从存储子系统检索数据并加载到缓冲区缓存中,遍历数据直至提取出最终结果集。然后将最终数据集发送给用户。之后,如果其他用户执行相同的查询,将从缓冲区缓存中读取数据,并将数据结果集返回给用户。数据并非始终可用。如果缓冲区空间不足或者另一个会话修改了数据,则要求刷新并重新加载缓冲区中的数据。</P>
<P>在 Oracle RAC 环境中,用户从不同实例执行查询时,不再是使用每次都必须从 I/O 子系统检索数据的 DBWR 进程,而是(通常)通过一个实例到另一个实例的互连传输数据。(在 Oracle Database 11<EM>g</EM> 第 2 版中,缓存合并技术内使用的新增的“<STRONG>bypass reader</STRONG>”算法会在读取大量行时跳过数据传输,转为使用来自请求实例的本地 I/O 子系统检索数据。)这能提供可观的性能收益,因为从 I/O 子系统检索数据的延迟与通过网络传输数据相比要高得%B
页: [1]
查看完整版本: RAC中使用 Oracle Database 11gR2的结果缓存特性(2)