SQL Server 镜像服务简述
作者:郑佐
日期:2007-12-30
1. 概述
在实施SQL Server 2005 MSCS群集的时候,笔者花了一些时间来学习SQL Server 2005镜像服务技术。数据库镜像是SQL Server 2005的一个新特性,它允许将一个SQL Server中的数据库内容镜像到另一个SQL Server上,在发生错误的时候,通过镜像数据库来进行错误恢复。SQL Server 2005 SP1推出后,微软对其提供完全技术支持,镜像服务技术在生产环境中可以安全使用。
本文目的是通过对SQL Server 数据库镜像服务的了解使需要制定或决策SQL Server高可用性实施方案的系统架构人员在SQL Server 群集和SQL Server 数据库镜像之间的选择提供一个参考。
2. 数据库镜像
数据库镜像是用于提高数据库可用率的软件解决方案。镜像基于数据库层面,仅适用于使用完整恢复模式的数据库,简单恢复模式和大容量日志恢复模式不支持数据库镜像。
数据库镜像通过数据库事务处理从一个SQL Server数据库移动到不同SQL Server环境的另一个SQL Server数据库中来实现。镜像的拷贝是一个备用拷贝,一般情况下不能直接访问,只在主服务器出现错误时提供恢复,镜像服务器成为主服务器提供服务。如果需要访问镜像数据库,可以通过快照方式只读访问。
2.1.镜像服务特点
相比SQL Server的MSCS群集对硬件的要求,SQL Server镜像服务是基于软件的高可用性解决方案。同SQL Server MSCS群集不同,SQL Server镜像服务主要特点如下:
1.
基于软件的高可用性解决方案,低硬件成本。
2.
快速的故障转移恢复,通常在10秒钟内转移。
3.
基于数据库级别实现,对单个数据库进行故障转移。
2.2.镜像中的服务器角色
1.
主体服务器(Principal Server)。承载主体数据库,接受用户连接和事务处理请求。
2.
镜像服务器(Mirror Server)。承载镜像数据库,作为主体数据库的热备份。
3.
见证服务器(Witness Server)。监视服务器状态和连接性,实现自动故障转移。
2.3.镜像会话的周期
1.
会话初始化。镜像请求事务日之记录,与主体服务器实现同步。
2.
会话过程。主体服务器将日志记录传输给镜像服务器,各个角色之间相互监视会话状态。
3.
会话终止。发生故障转移,管理员终止数据库镜像。
4.
故障转移。对于高可用性的数据库镜像模型中,主体数据库不可用时将触发自动故障转移, 在短时间内恢复服务(<10Sec)。
3. 数据库镜像操作模式
数据库镜像有三种操作模式,包括高可用操作模式,高级别保护模式和高性能模式。
以下对三种操作模式的特点进行比较。
操作模式
|
事务安全
|
传输机制
|
是否要仲裁
|
见证服务器
|
故障转移类型
|
高可用性
|
FULL
|
同步
|
Y
|
Y
|
自动或手动
|
高级别保护
|
FULL
|
同步
|
Y
|
N
|
仅手动
|
高性能
|
OFF
|
异步
|
N
|
N/A
|
仅强制
|
3.1.高可用操作模式
服务器角色
主体服务器,镜像服务器,见证服务器。
应用场景
要求高服务可用性,要求实现自动故障转移,确保数据的完整。
3.2.高级别保护模式
服务器角色
主体服务器,镜像服务器。
应用场景
高的服务器完整性要求,部要求自动故障转移,对服务的可用性要求较低。
3.3.高性能模式
服务器角色
主体服务器,镜像服务器。
应用场景
主体服务器和镜像服务器距离很远,通讯链路有明显的延迟,对性能的要求高与数据的完整性。
4. 数据库镜像故障转移
4.1.自动故障转移
只针对高可用性模式,事务安全为FULL。
1.
会话中的每个实例相互检测存在状态
物理服务器
SQL Server
实例
主体、镜像数据库
2.
当主体对镜像和见证服务器都不可见时发生故障转移
镜像转换为新的主体数据库
主体恢复后协商成为新的镜像数据库
如果关闭见证服务,将禁用自动故障转移功能。
4.2.手动故障转移
针对高可用性和高级保护性模式,事务安全为FULL。
1.
在主体上执行手动转移操作
2.
当前连接到主体的用户被断开
手动故障转移方式可以作为服务器滚动升级的一种方法,类似于MSCS群集中的节点滚动升级。
4.3.强制服务
只针对高性能模式,事务安全为OFF。
1.
在镜像数据库上强制启用服务
有可能导致数据的丢失
通常应用在高性能模式
注意:强制服务方式也可以应用在高可用性模式中,比如镜像和见证服务器都不可用,要求快速恢复服务的情况。
5. 数据库镜像监视
对于数据库镜像的监视,MSDN提到监视的信息类型有以下两方面:
1.
目录视图中的数据库镜像元数据。
2.
数据库镜像性能计数器。
建议查看MSDN文档获取更多的相关信息。
6. 参考资源
如果大家对SQL Server 2005镜像服务技术有兴趣,建议看TechNet讲师牛可的WebCast——使用数据库镜像保障高可用的数据库应用。本文对SQL Server 镜像服务的知识介绍部分内容来自该WebCast,最终解释权归原作者所有。
使用数据库镜像保障高可用的数据库应用(WebCast)
http://www.microsoft.com/china/technet/webcasts/class/SQL_2005_2.mspx
http://bbs.mscommunity.com/forums/showthread.aspx?postID=33315
使用 SQL Server 2005 数据库镜像功能时需要考虑的问题
http://support.microsoft.com/kb/907741/zh-cn
SQL Server 2005
数据库镜像简介
http://publish.it168.com/2006/0328/20060328025801.shtml?positioncode=1545
SQL Server 2005
高可用性之镜像功能
http://tech.it168.com/db/s/2007-04-24/200704240837593.shtml
SQL Server 2005
联机丛书
http://www.microsoft.com/downloads/results.aspx?pocId=&freetext=SQL%20Server%202005%20%u8054%u673a%u4e1b%u4e66&DisplayLang=zh-cn