SQL Server 2005数据库镜像(18)

http://developer.51cto.com  2007-02-26 13:45  Ron Talmage/Solid Quality Learning  51CTO.com  我要评论(0)
  • 摘要:本文对SQL SERVER 2005数据库镜像进行了教程式的讲解,具体内容包括:介绍、动态、可用性场景、实现和高可用性技术,供大家参考!
  • 标签:SQL SERVER  2005  镜像
 
数据库镜像和群集
 
数据库镜像和故障转移群集最主要的差异就是提供了不同级别的冗余。数据库镜像提供的保护是数据库级别的,而群集提供的保护是服务器实例级别的。另一个主要差别就是在数据库镜像中,主服务器和镜像服务器是独立的 SQL SERVER实例,两个实例有不同的名称;而群集中的 SQL SERVER实例则使用相同的虚拟服务器名称和IP地址,而且无论哪个节点主持群集实例,虚拟服务器名称和IP地址始终保持不变。
 
如果您需要在服务器一级的数据库保护(例如,您的应用程序需要同时访问统一服务器上的多个数据库),故障转移群集将是更适合的选择。但是,如果每次只须为一个数据库提供可用性,那么数据库镜像具有更多优势。
 
数据库镜像不像群集那样需要专门的硬件,也没有共享存储介质失败的潜在危险。数据库镜像可以在最短时间内让备用数据库开始提供服务,其速度快于任何其它的高可用技术。此外,数据库镜像能够与ADO。NET和SQL Native Access Client很好的配合在一起,从而实现客户端的故障转移。
 
不能在群集中使用数据库镜像,但是可以考虑使用数据库镜像作为一种手段来创建群集数据库实例的一个热备用份。这样做需要特别小心,因为群集的故障转移时间长于数据库镜像的超时值,高可用模式下的镜像会话将对群集的故障转移做出反应,认为这是主服务器失败了,然后会将群集节点设置为镜像状态。
 
数据库镜像和事务复制
 
数据库镜像和事务复制都建立在读取原始服务器事务日志的基础上,但此后采用的技术就截然不同了。(更多关于事务复制的细节,请参阅SQL SERVER Books Online中的相关主题)。事务复制多用于配置高可用性,因为它可以将发行数据库中的用户事务在几秒钟内递送到订阅数据库中。数据库镜像的优点是速度对于甚至快于复制,但需要递送所有的数据库事务,而不单单是与用户表相关的事务。
 
事务复制技术适合于将数据扩充到多个订阅者。事务复制的订阅数据库通常是只读的,如果需要近乎实时的数据访问,那么事务复制是理想的候选者。
 
数据库镜像与事务复制兼容,如果需要维持发行数据库的一个热备份,数据库镜像就是非常有用的一种方式。其它用于保护复制发行商的方式,例如日志传送无法在发行商自己的订阅者之前维持发行商的备用服务器。换句话说,事务复制将事务日志递送给订阅者的速度要快于事务日志备份。正是因为数据库镜像速度很快,因此特别适合用于维持发行数据库的热备份。
 
但是如果发行服务器失败,就必须手动使用还原好的备用数据库重新建立发行商,然后重新连接到分发服务器,, 使用日志传输维护发行商服务器的备用服务器所必须做的工作与此相同。
 
数据库镜像和日志传输
 
数据库镜像和日志传输都依赖SQL SERVER数据库提供的恢复和还原功能。在数据库镜像中,镜像数据库始终保持recovering状态,连续不断地还原来自主数据库的事务日志。而日志传输中的备用数据库则周期性地应用事务日志备份中的事务。因为bulk-logged数据被附加到事务日志备份中,因此日志传送可以工作在bulk-logged恢复模型下。数据库镜像则不同,它直接将日志记录从主数据库传送到镜像数据库中而且不能递送bulk-logged数据。
 
很多情况下数据库镜像可以提供与日志传送相同的数据冗余以及更高的可用性和自动故障转移。但是,如果应用程序依赖一台服务器上的多个数据库,那么日志传送是有效的方式(参阅前一部分介绍的“Multi-Database Considerations”)。
 
此外,某些数据库镜像场景中还可以通过日志传送作为补充。例如:您可以某处配置一个高可用数据库镜像,然后将主数据库日志传送到远程站点以提供灾难恢复。图24显示了如何进行这种配置。
 
 
图24:将主数据库日志传送到远程服务器
 
这种方式的优点就是:一旦整个站点失败了,第二个站点上的数据还继续可用。但是,如果数据库镜像失败了,从Server B到远程备用服务器的日志传送通常必须重新开始。
 
其它使用日志传送补充数据库镜像的场景就是作为主服务器的本地备用,主服务器的数据库镜像会话用于灾难恢复。此时,数据库镜像会话运行在高性能操作模式下,远程站点的镜像服务器作为远程备用服务器。
 
 
图25:通过主数据库日志传送的方式来保留所有的事务
 
在高性能模式中存在的数据丢失,如果主服务器失败并且使用强制恢复服务的方式恢复了镜像服务器。如果您正在对旧的主服务器进行日志传送,并且如果旧的主服务器事务日志文件没有损坏,那么可以对主数据库进行“结尾日志”备份来获得事务日志中最后一组记录。如果备用日志传输数据库已经应用了所有其它的事务日志备份,您就可以将结尾日志备份应用到备用服务器,这样不会丢失旧的主服务器上的任何数据。然后可以对日志传送备用服务器中的数据和远程数据库做个比较,在需要时将丢失的数据拷贝到远程服务器。
 
当您对比日志传输和数据库镜像功能时,需要明确的一点就是:对主数据库进行数据库和日志备份很重要。将这些日志备份应用到的日志传送服务器可以对数据库镜像配置起到补充作用。
 
结论
 
数据库镜像是SQL SERVER 2005中的新技术,可以实现高可用性和高性能的可数据库冗余解决方案。在数据库镜像中,当主数据库的事务日志缓冲区被写入磁盘时(硬化的),事务日志记录就从主数据库直接发送到镜像数据库。这种技术可以使镜像数据库几乎和主数据库的数据保持同步,同时不会丢失提交的数据。在导可用性操作模式中,如果主服务器失败了,那么镜像服务器将自动成为新的主服务器并还原数据库。使用新的ADO.NET或者SQL Native Access Client驱动程序,应用程序还可以从自己的服务器上进行自动的故障转移。数据库镜像成为SQL SERVER 2005提供的高可用技术家族中的新成员。
 
更多信息请参阅:
 
SQL SERVER TechNet站点: http://www.microsoft.com/technet/prodtechnol/sql
SQL SERVER开发人员站点: http://msdn.microsoft.com/sql
Microsoft SQL SERVER站点: http://www.microsoft.com/sql/
 
(责任编辑 火凤凰 sunsj@51cto.com  QQ:34067741  TEL:(010)68476636-8007)


共18页: 上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] 18
【内容导航】
上一篇: 面向Microsoft SQL Server 2005的本机XML Web Services概述 下一篇: 探讨SQL Server 2005.NET CLR编程
深入SQL Server 2008
Visual Studio 2005开发基础
SQL Server 2008/2005全解
2005网管员年度推荐产品
微软中国技术大会Tech Ed 2005
 
 验证码: (点击刷新验证码)   匿名发表

频道推荐

更多>>

全站热点

更多>>

技术人

更多>>

读书

更多>>
  • Visual C++ 完全自学宝典

  • 作者:强锋科技,朱洪波
  • Visual C++ 6.0是微软公司为程序人员提供的Visual Studio 6.0工具套件中的重要组成部分。本书由浅入深地介绍使用Visual C++ 6.0..

优秀博文

更多>>

最新热帖

更多>>

技术快讯

Copyright©2005-2008 51CTO.COM 版权所有