原文:http://www.cnblogs.com/yinuo/articles/2703883.html
数据库双机可以有两种不同的方式:双机热备份、双机集群。
双机热备份方式的集群完全通过操作系统的cluster软件来实现,在同一个时刻,只有一台机器对数据库作操作,当这台机器发生故障以后,由操作系统cluster将所有资源切换到两外一个节点,防止单节点数据库故障。
双机集群方式(RAC),在10g以后,通过ORACLE自身提供的CRS来实现集群的功能。在同一个时刻,所有的机器都对数据库作操作,当某台机器发生故障后,其他机器接管该机器的工作。这种方式不但能够防止单节点数据库故障,还能够实现负载均衡。因为两个机器对同一个数据库操作,因此数据库文件一般无法使用传统的文件系统方式存储。
下表列出了两种方式的区别:
| 双机热备方式 | RAC方式 |
是否需要共享的磁盘阵列 | 必须 | 必须 |
是否需要操作系统CLUSTER软件 | 必须 | 不需要 (见注一) |
是否需要额外购买ORACLE RAC选件 | 不需要 | 必须 |
同一个时刻几台机器工作 | 一台 | 所有机器 |
是否可以防止单点故障 | 可以 | 可以 |
是否实现负载均衡 | 不可以 | 可以 |
数据文件可以选择的存储方式 | 所有方式 | 根据选件不同有所区别 |
注一:对于rac方式,在10G以下的版本必须要操作系统cluster的支持+oracle rac选件才能够实现,在10G以后,oracle提供了自身的cluster软件——crs,因此可以在没有操作系统cluster的情况实现RAC方式,但对于文件的存储方式有所限制,下表列出了在rac方式下可以选择的存储方式
RAC方式下的存储方式 | 需要的前提条件 |
普通文件系统 | 不支持 |
裸设备 | 必须安装操作系统CLUSTER支持 |
ASM | 由oracle自身提供,不需要额外的软硬件支持 |
共享文件系统GPFS | 必须安装操作系统HACMP以及GPFS选件(仅针对AIX)平台 |
Ocfs(oracle cluster file system) | 仅支持windows,linux平台;其他平台目前暂未提供该方式 |
数据库双机热备方案的原理及实现
以下简单说明了双机热备的原理及实现。
n 方案原理
|
|
|
|
|
|
|
|
|
|
Server A 主节点 |
|
|
|
|
|
|
|
|
Server B 备节点 |
|
|
|
|
|
|
|
|
|
|
Database |
双机热备系统又称为Cold Failover,它是oracle数据库高可用方式的一种。
主要工作方式为主机节点运行,备用节点处于等待状态,当主机节点发生失败的时候,数据库以及虚拟IP自动漂移到备用节点,完成用户应用透明切换。切换操作基于操作系统Cluster控制软件,操作系统负责监控系统的运行状况。操作系统实现数据库的关闭、切换和启动。
n 方案评价
双机热备系统是单实例数据库系统,它的工作方式是一种Shared Nothing方式,也就是同一时间段,只有一台节点对共享盘阵有操作权。在发生节点失败时,完成切换。应用切换对前端用户透明,主机节点失败后用户自动转接入预先定以的备用节点。此种方式概念以及平台搭建相对简单,易于管理。但是其主机工作,备机等待的工作方式,造成了此种工作方式对系统资源的一定浪费。同时该方式不支持用户操作的连续性。
n 方案具体实现
双机热备系统几乎支持现阶段所用供应商。例如:Microsoft , Sun , HP , IBM , Compaq , Intel , Linux….。完成此种方式对硬件,操作系统及各厂家HA软件有一定要求。硬件要求:至少两台服务器、一个共享盘阵,每台服务器需要两块网卡。一块用于两台主机之间的连接,两台主机通过此连接定期向对方发送检测信号,判断对方工作状态(如下图红线标注)。另外一块网卡用于和外网的连接。
NodeB (备用节点) |
NodeA (主机节点)
|
心跳线 |
HA软件方面要求:
必须操作系统HA软件支持,根据操作系统平台不同如:Microsoft Cluster Server(MSCS) 、HP MC/ServiceGuard 、AIX HACMP 、SUN Sun Cluster
磁盘阵列要求:
必须和各节点保持物理连接。
实现方式:
Windows平台:在两台节点上分别安装数据库软件,在磁盘阵列上创建数据库。主节点对磁盘阵列有控制权,同时虚拟IP工作在主节点上。用户通过主节点访问磁盘阵列上的数据库。当主节点发生失败时,MSCS服务将磁盘阵列的控制权以及虚拟IP漂移到备用节点上,并重新启动数据库,用户在等待很短的时间后,可以重新访问数据库。
UNIX平台:在两台节点上分别安装数据库软件,在磁盘阵列上创建数据库。磁盘阵列MOUNT在主节点上,虚拟IP也工作在主节点。用户通过主节点访问磁盘阵列上的数据库。当主节点发生失败时。HA软件将磁盘阵列从主节点上UMOUNT下来,并将磁盘阵列MOUNT到备用节点上,同时完成虚拟IP的漂移。并重新启动数据库,用户在等待很短的时间后,可以重新访问数据库
数据库群集方案的原理及实现
以下简单说明集群方式的原理及实现:
n 方案原理
|
|
|
|
|
|
|
|
|
|
Server A 主节点 |
|
|
|
|
|
|
|
|
Server B 备节点 |
|
|
|
|
|
|
|
|
|
|
Database |
ORACLE REAL APPLICATION CLUSTE高可用方式又称为Hot FailOver。Real Application Cluster(9i版本以前称作Oracle Parallel Server,OPS)用来在群机环境下实现多机共享数据库,以保证应用的高可用性。同时可以自动实现并行处理及均分负载,还能实现数据库在故障时的容错和无断点恢复。Real Application Cluster为大多数高要求数据库环境提供了极高的性能和完美的纠错功能。Real Application Cluster允许群集系统或大型并行系统中的多个节点共享同一物理数据库。Real Application Cluster可以自动进行负载平衡、故障修复和规划停机时间,以支持高可用性应用程序。它还显著提高了大型数据仓库和决策支持系统的性能。与并行查询选件结合,它还提供了节点间并行性和节点的并行性,以得到更高的性能。
n 方案评价
Oracle Real Application Clusters是多实例数据库系统,它的工作方式是Shared Disk方式。由多个节点上的多个实例(每台节点一个)同时操作数据库,也就是同一时间段,群集内的所有节点对共享盘阵都有操作权。在一台节点发生节点失败时,完成切换。应用切换对前端用户透明。Oracle Real Application Clusters可以使所有的应用程序不经修改便能获得集群数据库的高可用性、可伸缩性和高性能。应用程序可以将Oracle Real Application Clusters当成一个单一的系统使用,而不必再进行修改或分区,以获取类似集群数据库的可伸缩性。这允许用户随着应用及需求的不断增长,横向地伸缩数据库的级数,而不必对应用程序进行修改。而且,Oracle Real Application Clusters是自适应的,能够根据数据库负载情况的变化进行自我调节——动态地在集群服务器上移动数据库资源,以获取最佳性能。
n 方案具体实现
Oracle Real Application Cluster系统几乎支持现阶段所用供应商。例如:Microsoft , Sun , HP , IBM , Compaq , Intel , Linux….。在10G以前的版本完成此种方式对硬件,操作系统及各厂家HA软件有一定要求。在10G以后的版本oracle公司自身提供了cluster软件——crs,可以在没有操作系统cluster软件支持的情况下实现RAC,但在文件存储上有一定的限制。如果不使用操作系统的cluster软件,oracle无法使用传统的裸设备来存储数据库文件。
硬件要求:
至少两台服务器、一个共享盘阵,每台服务器在不考虑冗余的情况下最少需要两块高速网卡。一块用于各节点之间的高速通道连接,节点通过此连接发送内部通讯信息。另外一块网卡用于和外网的连接。
软件要求:
操作系统:RAC支持各种主流操作系统。Windows、IBM AIX、HP HP-UX、Sun Solaris、Tru64 UNIX 、linux
实现方式:
操作系统底层CLUSTER搭建好后(可选),首先安装配置oracle crs软件。然后在一台节点上安装ORACLE软件,安装程序在这一节点安装完成后会自动将软件拷贝到群集中的所有节点上,然后在共享磁盘阵列上创建数据库。安装完成后各节点上的实例都可以访问磁盘阵列上的数据库。