扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
本文首先简要介绍了RAC的原理,随后着重详细叙述了如何在一台PC电脑上,使用VMware构建两台RedHat Linux AS3(以下简称AS3),并虚拟一个共享存储,创建裸设备,最后在实现RAC的搭建。
1.RAC简介
简单来说,RAC就是位于多个主机(通常都称为节点)上的多个oracle实例同时管理一个数据库。数据库必须放在共享存储设备上,包括数据文件、控制文件、联机日志以及spfile都必须放在共享存储上,这样每个节点才能同时访问存储设备。每个节点之间通过高速光纤互相连接,并同步内存数据。oracle在管理不同实例里的内存里的数据结构,同时要最大程度的降低I/O,引入了全局缓冲服务(GCS:Global Cache Service),同时还引入了全局锁定服务(GES:Global Enqueue Service)用来在不同节点之间通讯时进行同步管理。这些服务都是通过一组特殊的后台进程完成的,这些后台进程主要包括:
(1)global cache service processes(LMSn):n从0到9,具体由信息传输的数量决定。用来控制信息到其他实例的流向,同时还管理对全局数据块的访问。LMSn进程同样在不同实例的数据块缓存(buffer cache)里传递数据库镜像(block image)。该进程是Cache Fusion特性的一部分。
(2)global enqueue service monitor(LMON):监控全局锁定(global enqueues)及其资源,并提供global enqueues资源的恢复操作。enqueues是用来进行串行化行更新的共享的内存结构。
(3)global enqueue service daemon(LMD):管理对全局锁定(global enqueues)以及全局资源的访问。在每个实例中,LMD进程对传入当前实例的对其他资源的访问请求进行管理。
(4)lock process(LCK)管理non-Cache Fusion资源的请求,比如library cache或row cache的请求。
(5)diagnosability daemon(DIAG):获得实例中有关进程失败的诊断信息。该daemon的操作是自动的,并且它会更新alert<SID>.log文件,以记录它所做的动作。
注意:cache fusion表示一种在RAC里的非磁盘交互方式的内存同步机制。该机制使得获得block的实例能够将block直接从内存转移到需要该block的实例的SGA里去。这样,由于减少了磁盘交互,所以将block从一个实例转移到另一个实例的性能提高很多。而且管理也更加简便。
RAC能够对客户端的连接请求进行负载均衡,把所有客户的连接尽可能的平均分布在不同的实例上。同时,RAC还提供failover的功能,也就是说如果其中一个节点发生意外,只要这个时候连在该损坏节点上的session没有正在进行事务运行,则该session不需要退出后重新登录,oracle会自动将该session连接到一个可用的节点上,从而保证了7×24应用的安全性和稳定性。
不过,RAC不提供容灾的功能,也就是说如果共享存储损坏,仍然会导致整个应用崩溃。所以,需要采用其他容灾方案结合使用,比如RAC+DataGuard等。
2.准备工作
VMware GSX Server:笔者测试所使用的是3.2版本,建议使用3.2及以上的版本。
Linux:笔者使用的是RedHat Linux AS3。请使用AS2.1以上版本的linux。因为AS2.1以下的版本如果要
支持RAC需要进行很多额外的配置,比如watchdog之类的,到了AS2.1以后缺省都不使用了,而是使用hangcheck,如果要使用watchdog,需要进行很多不必要的配置。安装介质可以是光盘,也可以是ISO文件。笔者使用的是ISO文件。
Oracle:笔者使用的是oracle 9204 for linux,可以直接从oracle的官方网站上下载。笔者是从oracle官方网站上下载下来的三个压缩包。
主要的准备工作就是这些,当然安装过程中可能还会需要其他的一些软件,比如plainmaker等。在需要的时候,笔者也会说明如何使用这些软件的。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者