1.什么是高可用?
高可用(High Availability)指的是系统或服务能够在长时间内不间断地正常运行的能力。这意味着系统能够在各种意外情况(如硬件故障、网络中断、软件漏洞等)发生时,快速地自动或手动切换到备用设备或备用系统上,以确保服务的持续可用性和数据的安全性。
高可用系统通常具有以下特点:
- 冗余:系统中的重要组件和数据存储设备都具有备份或冗余,以便在主设备或主服务器出现故障时,能够快速切换到备用设备上。
- 自动化:高可用系统通常具有自动化切换机制,能够自动检测主设备或主服务器的故障并将服务切换到备用设备上。
- 监控:高可用系统需要不断监控各个组件和服务器的状态,及时发现问题并采取措施。
- 可伸缩性:高可用系统需要具备可伸缩性,以便在需要扩展服务容量时能够快速响应。
- 容错性:高可用系统需要能够容忍某些组件或服务器出现故障而不会导致整个系统的崩溃。
- 快速恢复:高可用系统需要具有快速恢复的能力,以便在发生故障时能够快速恢复服务,并最小化服务中断时间。
- 可测试性:高可用系统需要具有可测试性,以便在系统发生变化时能够快速发现问题并采取措施。
- 安全性:高可用系统需要具有良好的安全性,以确保敏感数据和服务不被未经授权的人员访问
- 高性能:高可用系统需要具有高性能,以应对大量的请求和数据流量,并能够快速响应客户端请求。
- 弹性设计:高可用系统需要具有弹性设计,以应对突发的负载或流量峰值,并能够自动或手动调整服务资源以保证服务质量和可用性。
- 可扩展性:高可用系统需要具有可扩展性,以便在需要扩展服务规模时能够快速响应,同时不影响服务的可用性和稳定性。
- 持续集成和持续交付:高可用系统需要具备持续集成和持续交付的能力,以便在服务有更新或修复时能够快速交付和部署,同时确保服务的质量和稳定性。
如果系统每运行100个时间单位,会有1个时间单位无法提供服务,我们说系统的可用性是99%. 很多公司的高可用目标是4个9,也就是99.99%,这就意味着,系统的年停机时间为8.76个小时. 百度的搜索首页,是业内公认高可用保障非常出色的系统,甚至人们会通过baidu能不能访问来判断“网络的连通性”,百度高可用的服务让人留下啦“网络通畅,百度就能访问”,“百度打不开,应该是网络连不上”的印象,这其实是对百度HA最高的褒奖.
众所周知,单点是系统高可用的最大的风险和敌人,应该尽量在系统设计的过程中避免单点. 在方法论上高可用保证的原则是“集群化”,或者叫“冗余”. 只有一个单点,挂了服务会受影响;如果有冗余备份,那么挂了还有其它备份能够继续提供服务.
RAC提供了实例级别的冗余,DG提供了数据存储级别的冗余. 若要保证系统高可用,则架构设计的核心准则是:冗余. 有了冗余之后,还不够,毎次岀现故障需要人工介入恢复势必会增加系统的不可服务实践. 所以,又往往是通过“自动故障转栘″来实现系统的高可用
Oracle failsafe、Data Guard 和 RAC 均为 ORACLE 公司提供的高可靠性(HA)解决方案.然而之三者之间却存在着很大区别.,但是这几种方案之间却存在着很大区别
2. FAILSAFE和RAC的区别
1). 操作系统
failsafe 系统局限于 WINDOWS 平台,必须配合 MSCS(microsoft cluster server),而 RAC 最早是在 UNIX 平台推出的,目前已扩展至 LINUX 和 WINDOWS 平台,通过 OSD(operating system dependent)与系统交互.对于高端的 RAC 应用,UNIX 依然是首选的平台.
2). 系统结构
FAILSAFE 采用的是 SHARE NOTHING 结构,即采用若干台服务器组成集群,共同连接到一个共享磁盘系统,在同一时刻,只有一台服务器能够访问共享磁盘,能够对外提供服务.只要当此服务器失效时,才有另一台接管共享磁盘.RAC 则是采用 SHARE EVERYTHING,组成集群的每一台服务器都可以访问共享磁盘,都能对外提供服务.也就是说 FAILSAFE 只能利用一台服务器资源,RAC 可以并行利用多台服务器资源.
3). 运行机理
组成 FAILSAFE 集群的每台 SERVER 有独立的 IP,整个集群又有一个 IP,另外还为 FAILSAFE GROUP 分配一个单独的 IP(后两个 IP 为虚拟 IP,对于客户来说,只需知道集群 IP,就可以透明访问数据库).工作期间,只有一台服务器(preferred or owner or manager)对外提供服务,其余服务器(operator)成待命状,当前者失效时,另一服务器就会接管前者,包括FAILSAFE GROUP IP与CLUSTER IP,同时FAILSAFE会启动上面的DATABASE SERVICE,LISTENER 和其他服务.客户只要重新连接即可,不需要做任何改动.对于 RAC 组成的集群,每台服务器都分别有自已的 IP,INSTANCE 等,可以单独对外提供服务,只不过它们都是操作位于共享磁盘上的同一个数据库.当某台服务器失效后,用户只要修改网络配置,如(TNSNAMES.ORA),即可重新连接到仍在正常运行的服务器上.但和 TAF 结合使用时,甚至网络也可配置成透明的.
4). 集群容量
前者通常为两台,后者在一些平台上能扩展至 8 台.
5). 分区
FAILSAFE 数据库所在的磁盘必须是 NTFS 格式的,RAC 则相对灵活,通常要求是 RAW,然而若干 OS 已操作出了 CLUSTER 文件系统可以供 RAC 直接使用.综上所述,FAILSAFE 比较适合一个可靠性要求很高,应用相对较小,对高性能要求相对不高的系统,而 RAC则更适合可靠性、扩展性、性能要求都相对较高的较大型的应用
FAILSAFE和RAC都是Oracle数据库的高可用性解决方案,但它们有以下几个区别:
功能范围:FAILSAFE主要提供单实例数据库的高可用性解决方案,而RAC则提供了多节点集群环境下的高可用性、可扩展性、负载均衡等功能。
部署方式:FAILSAFE依赖于Windows Server Cluster技术来实现高可用性,需要在Windows操作系统上部署,而RAC可以在Linux和Unix等多种操作系统上部署。
性能表现:由于RAC可以在多个节点上同时运行,因此可以提供更好的性能和可扩展性。而FAILSAFE只能在一个节点上运行,性能方面可能受到限制。
可靠性:RAC在多节点环境下提供了更高的容错能力,即使一个节点出现故障,仍然可以保证数据库继续运行。而FAILSAFE只能在另一个节点上启动数据库实例,也需要确保备份节点的可靠性和可用性。
3. RAC和OPS区别
RAC(Real Application Clusters)和OPS(Oracle Parallel Server)都是Oracle数据库的集群解决方案,它们的主要区别在于以下几个方面:
技术架构:RAC使用共享存储技术,在多个节点之间共享同一个数据库,而OPS使用分布式数据库技术,在多个节点上部署不同的数据库实例,每个节点相互独立。
功能特点:RAC提供了更高的可用性、可扩展性和负载均衡能力,而OPS则更注重分布式处理能力,适合于大量并发的查询和事务处理。
部署方式:RAC需要专门的硬件支持,如共享存储和专用网络等,而OPS则可以在普通服务器上部署,相对来说更容易对现有环境进行扩展。
版本差异:OPS是Oracle 9i以前版本的集群解决方案,而RAC则是Oracle 10g及以后版本的集群解决方案,因此RAC在功能和性能上相对更强大。
总之,RAC适用于需要高可用性、可扩展性和负载均衡的企业级应用,而OPS适用于大规模数据处理、并行计算等场景。
4. Oracle的三种高可用集群方案
4.1 RAC(Real Application Clusters)
RAC(Real Application Clusters)是Oracle数据库的一种高可用性和可扩展性解决方案,它允许多个节点上运行数据库实例并共享同一个数据库。RAC在多节点集群环境下提供了更好的性能、容错能力和负载均衡能力,适用于大型企业级应用。
RAC使用共享存储技术,在所有节点之间共享同一个数据库,这意味着所有节点都可以读取和写入数据库中的数据,从而提高了系统吞吐量和响应时间。RAC使用Oracle Clusterware管理集群环境,并提供了自动故障切换、在线扩容等功能,保证了系统的高可用性和可扩展性。
相比单实例数据库,RAC有以下优势:
更高的可用性:RAC在多节点集群环境下提供了更好的容错能力,即使某个节点失效,也可以保持数据库的连续性。
更好的性能:RAC允许多个节点同时进行读写操作,从而提升了系统的吞吐量和响应时间。
更好的可扩展性:RAC允许在需要时添加新的节点,从而实现线性的性能增长。
总之,RAC是Oracle数据库的一种高可用性、高性能和可扩展性的解决方案,适用于大规模企业级应用。
Data Guard是Oracle数据库的一种灾备解决方案,提供了多种数据复制模式,以满足不同的业务需求。以下是几种常用的数据复制模式:
最大性能模式(Maximum Performance Mode):在这种模式下,生产数据库的变更立即复制到备用数据库上,而不考虑备用数据库是否已经应用了这些变更。这种模式适用于需要最大化性能和减少延迟的业务场景。
最大可用性模式(Maximum Availability Mode):在这种模式下,生产数据库的事务必须等待备用数据库完成应用后才能提交,从而确保备用数据库与生产数据库的数据一致性。这种模式适用于要求数据完整性和可靠性较高的业务场景。
最大数据保护模式(Maximum Protection Mode):在这种模式下,备用数据库处于强制日志应用状态,只有当备用数据库收到生产数据库的变更并且成功写入Redo日志后,生产数据库的事务才能提交。这种模式适用于对数据安全性要求非常高的业务场景,但也可能会增加系统的延迟和负担。
除了以上三种模式外,Data Guard还支持其他模式,如异步模式、延迟应用模式等,以满足不同的业务需求。可以根据业务需求和数据复制模式的特点选择合适的模式来进行配置。
异步模式和延迟应用模式都是Data Guard数据复制模式的一种,以下是它们的具体介绍:
异步模式(Asynchronous Mode):在异步模式下,生产数据库的变更会被异步地复制到备用数据库上,即生产数据库的事务可以立即提交,而不需要等待备用数据库应用这些变更。这种模式适用于集中处理大量事务的场景,因为它可以减少对生产数据库的性能影响。
延迟应用模式(Delayed Apply Mode):在延迟应用模式下,备用数据库并不是实时地应用生产数据库的变更,而是有一定的延迟时间,从而保证备用数据库可以在发生意外故障时恢复到某个已知的时间点。这种模式适用于对数据恢复点要求比较高的场景,但也可能会增加系统的延迟和负担。
总之,异步模式适用于需要最大化性能和减少延迟的业务场景,而延迟应用模式适用于对数据恢复要求比较高的业务场景,但也可能会增加系统的延迟和负担。可以根据业务需求和数据复制模式的特点选择合适的模式来进行配置。
4.2 Data Guard(最主要的功能是冗灾)
Data Guard是Oracle数据库的一种灾备解决方案,它可以将一个生产数据库的数据实时复制到一个或多个备用数据库上,以实现故障切换、数据保护和业务连续性。
Data Guard包含两种基本配置:物理备份和逻辑备份。物理备份使用实时数据复制技术,将完整的生产数据库复制到备用数据库,并且可以在备用数据库上启动相同的应用程序。逻辑备份则使用SQL语句来将数据从生产数据库复制到备用数据库,在备用数据库上执行相同的SQL语句。
Data Guard提供了以下功能:
实时数据复制:Data Guard可以将生产数据库的数据实时复制到一个或多个备用数据库上,从而确保备用数据库的数据与生产数据库的数据始终保持同步。
故障切换:当生产数据库发生故障时,Data Guard可以自动将备用数据库切换为主数据库,从而实现快速恢复和业务连续性。
数据保护:Data Guard可以将备用数据库设置为只读模式,以确保备用数据库的数据不会被修改或删除,从而提高数据安全性和完整性。
测试环境:Data Guard可以将备用数据库作为测试环境,以便进行应用程序升级或其他变更的测试,而不会影响生产环境。
总之,Data Guard是Oracle数据库的一种灾备解决方案,它可以为企业提供可靠的数据保护和业务连续性。
4.3 MAA
MAA(Maximum Availability Architecture)是Oracle数据库的一种最高可用性体系结构,它是一种全面解决方案,旨在帮助企业提供最高级别的数据库可用性和灾备恢复能力。
MAA包括以下三个核心要素:
数据库故障切换(Database Failover):利用Oracle RAC集群技术实现在线故障切换,保证系统在任何时候都可以提供服务。
数据库备份与恢复(Database Backup & Recovery):使用Oracle Data Guard实现物理备份和逻辑备份,从而确保数据的完整性和安全性,同时通过快速恢复功能实现业务连续性。
灾备解决方案(Disaster Recovery Solution):利用Oracle GoldenGate等技术实现异地灾备,以保障关键数据和业务的连续性。
MAA还包括一些附加组件和策略,如应用程序集群、统一存储管理、在线升级、负载均衡等,以保障系统在所有情况下都能够持续提供可靠的服务。
总之,MAA是Oracle数据库的一种全面的高可用性体系结构,采用了多种技术来保证数据库的灾备恢复能力和业务连续性。
4. 双机热备、RAC、DG、OGG的区别
双机热备(Active/Passive)是一种传统的高可用性解决方案,其中两个服务器互为热备份。
RAC(Real Application Clusters)是Oracle数据库的一项技术,允许多台服务器共享同一个数据库实例来提高性能和可用性。
DG(Data Guard)是Oracle数据库的一项技术,提供了数据保护和灾备恢复功能,可以将主库中的数据复制到一个或多个备库中。
OGG(Oracle GoldenGate)是一种异构数据复制工具,可以在不同的数据库之间进行数据实时复制和同步。
它们的区别在于:
- 双机热备只有一组主备机,主机出现故障时需要手动切换至备机;而RAC、DG、OGG都允许多个主机同时访问同一个数据库;
- RAC重点在于提高性能,DG重点在于数据保护和灾备恢复,OGG重点在于数据复制和同步;
- RAC、DG、OGG都是Oracle数据库的技术方案,而双机热备并非Oracle特有,其他数据库也可以使用该方案。
5.1 双机热备份方式
双机热备(Active/Passive)是一种传统的高可用性解决方案,其中两个服务器互为热备份。在双机热备方案中,通常有一个主机和一个备机,主机运行应用程序和数据库,备机处于闲置状态。备机通过定期复制主机上的数据来保持同步,并准备好接管主机的工作,以确保业务连续性。
在实践中,双机热备可以采用以下方式实现:
数据库级别的双机热备:使用数据库自带的备份和恢复功能,将主机上的数据备份到备机上,并设置主备切换的触发条件和自动化脚本。
存储级别的双机热备:使用存储设备的镜像或快照功能,将主机上的数据实时复制到备机上,以保持数据同步。
网络级别的双机热备:使用负载均衡器或者DNS配置,将主机和备机的IP地址绑定到一个虚拟IP上,当主机出现故障时,负载均衡器会自动将请求转发到备机上,实现主备切换。
这种方式的主要缺点在于:由于需要重新启动数据库在双机热备份方式下,数据库系统平时只能在一台服务器(例如服务器A上运行,另一台服务器无法直接访问数据库,自然也无法进行负载分担.当服务器A由于故障失效时,由相应的操作系统软件控制,将服务器A管理的存储设备(如硬盘)转交给服务器B控制,同时在服务器B上启动另一个数据库实例,管理数据库.这种切换并启动新的数据库核心的过程一般需要几十秒到几分钟.
- Ø 核心进程,无法保证数据库系统连续不间断地运行;
- Ø 在系统切换的过程中,客户端与服务器之间的数据库连接会中断,需要重新进行数据库的连接和登录工作;
- Ø 由于数据库系统只能在一台服务器上运行,另一台服务器无法分担系统的负载,实际上造成了客户投资的浪费.在有些系统中,为了解决双机负载分担的问题,将应用系统人为分割为两个数据库系统分别在两台服务器上运行.这种方式在一定程度上解决了负载分担的问题,但给系统管理、统计分析等业务处理带来了很多额外的复杂性
5.2 RAC方式
RAC(Real Application Clusters)是Oracle数据库的一项技术,使用多台服务器共享同一个数据库实例,实现高可用性和性能扩展。RAC可以在不同的物理节点上运行多个实例,这些实例共享同一个数据库,并通过集群软件协调访问和管理数据。
RAC的工作原理是将一个数据库分成多个组件,每个组件分别安装在不同的物理服务器上,称为一个节点。每个节点都有自己的内存、进程和网络连接,但它们共享同一个数据库文件,并由集群软件协调它们的操作。
RAC的优势主要有以下几点:
- 提供高可用性:当某个节点出现故障时,其他节点可以继续提供服务,因此系统可以保持高可用性。
- 改善性能:RAC可以将负载分布到多个节点上,从而提高系统的吞吐量和响应时间。
- 可扩展性:通过添加节点,可以轻松地扩展系统的容量和性能。
要设置RAC环境,需要满足以下条件:
- 所有节点必须使用相同版本的Oracle数据库软件;
- 所有节点必须使用相同的操作系统版本和补丁程序;
- 所有节点必须连接到共享的存储设备,以便共享数据库文件;
- 需要使用集群软件来协调节点之间的通信和操作。
- 共享架构:多个节点共享同一个数据库实例,因此它们可以同时访问相同的数据。
- 横向扩展:通过添加新节点,可以简单地扩展系统的容量和性能,而不需要修改应用程序或重新配置数据库。
- 自动故障转移:当某个节点出现故障时,系统会自动将负载转移到其他节点,以保持系统的可用性。
- 高性能:在多个节点之间分布负载可以提高系统的吞吐量和响应时间,并减少单个节点的压力。
- 简化管理:通过使用集群软件,管理员可以更轻松地管理多个节点和数据库实例。
- 高可用性:RAC具有内置的高可用性功能,如自动故障转移和节点监控,以确保系统始终处于可用状态。
需要注意的是,RAC需要额外的硬件和软件成本,并且需要更复杂的设置和管理。因此,在选择使用RAC之前,需要对其成本和效益进行评估,并根据业务需求进行权衡。
5.2.1 相对于双机热备份方式
同样有许多操作系统平台支持并行服务器方式的高可用性方案,例如HP MC Service Guard OPS Edition与双机热备份方式相比,Oracle Real Application(RAC) cluster并行服务器方式有以下优点
1). 各服务器共享—个数据库,在正常运行时可以进行负载分担,无需考虑应用数据的人为分割
2). 并行服务器方式对应用完全透明,在应用程序设计和开发的过程中也不需要进行特殊编程,简化了开发的复杂程度,同时今后系统扩展也无需修改应用程序
3). 不需要重新启动数据库核心进程,缩短了故障造成的停机时间
5.2.2 RAC的好处
RAC(Real Application Clusters)是Oracle数据库的一项技术,使用多台服务器共享同一个数据库实例,实现高可用性和性能扩展。RAC的好处主要包括以下几点:
提供高可用性:当某个节点出现故障时,其他节点可以继续提供服务,因此系统可以保持高可用性。
改善性能:RAC可以将负载分布到多个节点上,从而提高系统的吞吐量和响应时间。
可扩展性:通过添加节点,可以轻松地扩展系统的容量和性能。
具备自动故障转移功能:当某个节点发生故障时,集群软件会自动将该节点上的工作转移到其他节点,以确保系统始终处于可用状态。
无需更改应用程序代码:RAC可以透明地为应用程序提供高可用性和性能扩展,而不需要修改应用程序代码。
更好的资源利用率:在不同节点之间分配负载可以更好地利用硬件资源,从而降低成本。
简化管理:通过使用集群软件,管理员可以更轻松地管理多个节点和数据库实例。
需要注意的是,RAC需要额外的硬件和软件成本,并且需要更复杂的设置和管理。因此,在选择使用RAC之前,需要对其成本和效益进行评估,并根据业务需求进行权衡。
具有 Cache fusion体系结构的 Oracle rea1 Application Clusters为企业应用开发提供了以下好处
1). 应用系统灵活和毫不费力的伸缩性;应用用户可以登录到单独的虛拟高性能集群服务器.向数据库切加节点非常容易,并且当需要添加处理器节点或者业务需求变化时,不用手工对数据进行分区.对于所有的应用即时提供集群的可伸缩性--不用修改应用程序
2). 较之传统集群数据库体系结构的高可用性解決方案;该体系结枃为客户提供了几乎连续的数据访可,使硬件和软件故障导致的业务中断最小化.系统具备对多个节点失败的容错能力,使部件失败屏蔽开最终用户
3). 单独的管理实体;为了进行所有管理操作,在集群中保持一个单独的系统映像.DBA一次性地进行安装、配置、备份、升级以及监控等功能,然后σ racle将管理功能自动分配到适宜的节点.这意味着DBA只管理着一个虚拟服务器.
4). Cache fusion保存了所有orac1e客户在他们应用中学习和开发orac1e的投资.所有单节点数据库功能都保留下来,并且应用程序使用相同标准的σ racle接口连接到数据库上
5.2.3 可伸缩性
RAC(Real Application Clusters)是Oracle数据库的一项技术,通过在多个节点上运行多个实例来共享同一个数据库,实现高可用性和性能扩展。RAC具有很好的可伸缩性,可以通过添加新节点来轻松地扩展系统的容量和性能。
RAC的可伸缩性主要表现在以下几个方面:
横向扩展:通过添加新节点,可以简单地扩展系统的容量和性能,而不需要修改应用程序或重新配置数据库。在新节点加入集群后,可自动将负载分配到所有节点上。
纵向扩展:RAC支持在单个节点上添加更多CPU和内存资源,以进一步提高系统的性能。它还支持使用大容量存储设备来扩展系统的存储空间。
动态调整:RAC允许管理员根据实际需求动态添加或删除节点,以便根据负载变化来自动调整系统。
数据库资源管理:RAC可以将负载均衡到多个节点上,并自动为每个请求分配最适合的资源,从而最大限度地利用硬件资源并提高系统的吞吐量。
需要注意的是,要使RAC具有良好的可伸缩性,需要正确设计和配置整个系统,并针对业务需求进行定期优化和调整。
5.2.4 高可用
RAC(Real Application Clusters)是Oracle数据库的一项技术,使用多台服务器共享同一个数据库实例,实现高可用性和性能扩展。RAC具有良好的高可用性,可以确保系统在节点或硬件发生故障时继续提供服务。
RAC的高可用性体现在以下几个方面:
自动故障转移:当某个节点出现故障时,集群软件会自动将该节点上的工作转移到其他节点,以确保系统始终处于可用状态。如果某个节点无法正常运行,则集群软件会自动将其标记为“不可用”,并将负载转移到其他健康节点上。
数据库资源管理:RAC可以将负载均衡到多个节点上,并自动为每个请求分配最适合的资源,从而提高系统的吞吐量和响应时间。它还支持动态调整配置,以便根据负载变化来自动调整系统。
节点监控:RAC可以监控每个节点的状态,检测任何异常情况,并在发现节点故障或网络问题时自动重定向客户端连接到其他节点。
高可靠性:由于系统的节点之间相互独立且共享存储,因此即使一个或多个节点或存储设备发生故障,系统仍然可以保持可用状态。
需要注意的是,要确保RAC具有良好的高可用性,需要正确设计和配置整个系统,并针对业务需求进行定期优化和调整。
5.2.5 可管理性
RAC(Real Application Clusters)是Oracle数据库的一项技术,通过在多个节点上运行多个实例来共享同一个数据库,提高系统的可用性和性能。RAC具有良好的可管理性,可以通过集群软件和数据库管理工具来简化系统的管理和维护。
RAC的可管理性体现在以下几个方面:
简化安装:RAC安装程序提供了自动化安装和配置的选项,可以大大简化安装过程,并确保正确配置整个系统。
集群软件:RAC使用集群软件协调多个节点之间的通信和操作,以确保系统的正常运行。管理员可以使用集群软件管理节点状态、负载均衡、故障转移和资源分配等功能。
数据库管理工具:Oracle提供了许多强大的数据库管理工具,如Enterprise Manager和Grid Control,可以帮助管理员监控和管理整个RAC集群。这些工具提供了自动化监视、性能分析和故障诊断等功能,帮助管理员快速定位和解决问题。
统一管理:RAC允许管理员在整个集群中统一管理数据库实例、存储设备和节点等组件,从而简化了管理过程并提高了效率。
需要注意的是,要确保RAC具有良好的可管理性,需要管理员具备相关技能和知识,并根据业务需求进行合理的配置和调整。