软件测试中Oralce关于灾难防护的几种关键技术综述与分析比对
一、 Oracle Data Guard
Oracle9i推出了一种功能强大,更能有效地实施灾难恢复的解决方案Oracle Data Guard。
Oracle Data Guard采用主数据库正常运行,一或多个备用数据库进行备份的方式保护数据库,备用数据库的备份、管理和监视工作都是自动完成的,当主数据库宕机发生时,至少有一个备用数据库马上投入使用,使应用程序的运行不会间断,避免了系统的瘫痪。
(一)、Data Guard的功能简介
1.数据库的切换
允许DBA将主数据库切换到备用数据库,此备用数据库变为主数据库,响应用户的请求,而原主数据库变为备用数据库。Data Guard的这种特性保证了数据不会丢失,避免数据库恢复期间无法处理用户的请求。
2.通过分布式组态,增强数据库的可用性
Oracle Data Guard是由主数据库和一到多个备用数据库构成,这些在Data Guard的环境中称为站点,通常各个站点以松散的方式分布在各地,以网络连接,所以,即使遇到地震、火灾、洪水等自然灾害,数据库的数据也会得到很好地保护。Data Guard的结构由下图所示:
3.同步主站点与备用站点的数据
在Data Guard环境中,将一个站点设置为主站点,用来响应用户的请求,事务对数据库所做的修改,以归档日志的形式由日志传输服务自动从主站点传送到各个备用站点,以实现备用站点与主站点的同步。
4.防止数据库的物理损坏
由于主站点的物理损坏不可能通过归档日志文件传输到备用站点,所以降低了由物理损坏带给数据库的风险。
(二)、数据库的切换
将主数据库切换到备用数据库,此备用数据库变为主数据库,而原主数据库变为备用数据库。数据库的切换可以从主数据库角色切换到备用数据库角色,也可从备用数据库角色切换到主数据库角色。
1.主数据库的工作模式:
Guaranteed protection:
规定在修改主数据库时,至少有一个备用数据库有效。假如主备之间的连接中断,通过中断主实例来禁止数据的分歧,保证无数据丢失。这种模式对数据库性能的影响最大。
Instant protection:
规定在修改主数据库时,至少有一个备用数据库有效。与Guaranteed protection模式不同的是当主备之间的连接中断,允许数据分歧,并当恢复连接后,解决数据分歧的现象。无数据丢失,对主数据库的性能有较小的影响。
Rapid protection:
指出主数据库的修改在备用数据库上有效。有数据丢失,最小化对数据库性能的影响。
Delayed protection:
指出主数据库的修改最终在备用数据库上有效。Rapid protection和Delayed protection模式即使在网络连接有效时,也允许主数据库与所有的备用数据库有数据分歧,数据的丢失量等同于主数据库联机重做日志的未归档数。最小化对数据库性能的影响。
四种模式的区别详见下表:
主数据库 保护模式 |
保护策略 |
网络连接 |
主数据库 操作状态 |
Switchover |
Failover |
Guaranteed |
保护 |
连接 |
无数据分歧 |
无数据丢失 |
无数据丢失 |
未连接 |
关闭实例 |
不可能 |
无数据丢失 | ||
Instant |
未保护 |
连接 |
无数据分歧 |
无数据丢失 |
无数据丢失 |
未连接 |
Delayed 保护模式 |
不可能 |
数据丢失 | ||
Rapid |
未保护 |
连接 |
存在数据分歧 |
无数据丢失 |
数据丢失 |
未连接 |
Delayed 保护模式 |
不可能 |
数据丢失 | ||
Delayed |
未保护 |
连接 |
存在数据分歧 |
无数据丢失 |
数据丢失 |
未连接 |
存在数据分歧 |
不可能 |
数据丢失 |
2.备用数据库的工作模式:
Managed recovery mode:
最大化保护数据,主数据库将联机重做日志归档到备用数据库,备用数据库自动应用这些日志进行数据库的恢复。
Read-only mode:
备用数据库不能应用归档日志。在这种模式下,只能对备用数据库进行查询。当备用数据库重新处于mount方式,主数据库继续将日志归档到备用数据库上。
虽然备用数据库不能同时处于两种模式,但可在两种模式间进行切换。在大多数的Data Guard环境中,备用数据库应处于恢复管理模式。
3.Failover和Switchover的区别
Failover:
-
将主数据库offline,备用数据库online,这种操作由系统和软件失败引起。
-
即使在备用数据库上应用重做日志,也可能出现数据丢失的现象,除非备用数据库运行在guaranteed protection模式。
-
原主数据库重新使用时必须重新启动实例。
-
其它的备用数据库也需重新启动实例。
Switchover:
-
故意将主数据库offline,而将另一备用数据库online,它能够切换到备用数据库而不需同步操作。如:可使用Switchover完成系统的平滑升级。
-
即使在备用数据库上不应用重做日志,也不会造成数据的丢失。
-
数据库不需重新启动实例。这使主数据库几乎能立即在备用数据库上恢复它的功能,因此可经常进行定期维护而不需中断操作。
Failover和Switchover的区别为:当Failover发生,备用数据库切换为主数据库之后,它丢失了备用数据库的所有能力,也就是说,不能再返回到备用模式;而Switchover可以,备用数据库可切换为主数据库,也可从主数据库再切换回备用数据库。
4.主数据库与备用数据库的切换
当主数据库操作在Guaranteed protection和Instant protection两种模式下,可保证数据库在切换的过程中不丢失数据,这意味着主数据库的所有归档日志都必须应用在备用数据库上。假如归档日志没有完全应用,或主数据库工作在Rapid和Delayed protection模式,数据库的切换将导致数据的丢失,数据丢失的总量可由主数据库归档日志路径属性和备用数据库归档日志的应用来决定。
文章来源于领测软件测试网 https://www.ltesting.net/