鲜为人知的是,使用Oracle Grid Infrastructure来安装一个active/passive集群非常简单,利用Grid Infrastructure的应用程序接口和作为集群逻辑卷管理器的Oracle ASM,可以轻松地不间断监控一个单实例oracle数据库。当一个节点发生故障,数据库会自动迁移到备用节点。根据初始化参数fast_start_mttr_target和恢复集的大小,这个故障切换可能非常迅速。不过,作为failover过程的一部分,用户的数据库连接将被断开。 Active/passive模式可以通过将active_instance_count参数设置为1来打开,但仅当节点数为2时才有效。
配置Shared-All架构
一个所有节点同时访问共享存储和数据的集群被称为shared-all或者
shared-everything结构。Oracle RAC就是基于shared-everything架构:一个数据库位于共享存储中,通过集群各个节点上运行的实例来访问。在Oracle术语中,一个实例由内存结构和一些进程组成。对应的,数据库存储在磁盘中的数据文件里。在RAC中,实例的故障并不意味着该实例管理的数据的丢失。在一个节点发生故障后,集群中的另一个实例将会进行实例恢复,所有剩余节点都将继续服务。使用高可用技术,例如FCF或TAF,可以将实例失效对用户造成的影响降到最低。故障节点最后将重新加入集群并分担工作量。
配置Shared-Nothing架构
在一个shared-nothing数据库集群中,每个节点有它私有的独立存储,其他节点不能访问。数据库被集群中的节点分割成几个部分,返回的查询结构集是各个节点结果集的结合。丢失一个节点会导致对应的数据无法访问。因此,一个shared-noting集群经常被实施成一些单独的active/passive或者active/active集群来增强可用性。MySQL的集群就是基于shared-nothing架构。
RAC的主要概念
集群节点