数据库镜像是SQL Server 2005 sp1正式引入的一项数据库级的高可用性技术。

SQL Server 高可用性(五)数据库镜像_第1张图片


一、镜像的实现

  镜像是主体服务器、镜像服务器和见证服务器(见证服务器为可选项)之间通过TCP5022端口进行实时通信从而实现数据同步或监控。

SQL Server 高可用性(五)数据库镜像_第2张图片

SQL Server 高可用性(五)数据库镜像_第3张图片


二、镜像的3种运行模式

1. 高性能(异步)

  主体服务器上的更改被异步传送给镜像服务器。由于是异步执行,因此对性能的影响很小。


2. 高安全(同步)

  主体服务器上的更改被同步传送给镜像服务器,而且只有当这些更改同时主体和镜像服务器上完成之后主体服务器才可以继续下一个更改。


3. 高可用(同步)

  数据的更改模式与高安全模式时相同。此模式必须存在一台见证服务器,监控主体与镜像服务器的运行状态。如果主体服务器变得不可用,则见证服务器会控制自动故障转移到镜像服务器。



三、镜像的故障转移

1. 服务器端

  如果有见证服务器,则由见证服务器控制自动故障转移。也可以手动控制。

SQL Server 高可用性(五)数据库镜像_第4张图片


2. 客户端

  由于镜像技术没有采用MSFC作为底层,因此客户端直接连接在原来的主体服务器。

  可以在客户端的连接字符串中添加镜像服务器的IP地址,那么客户端在连接主体服务器失败时会自动尝试连接镜像服务器。关于添加连接字符器的方法,请参考 http://technet.microsoft.com/zh-cn/library/ms175484.aspx 


四、镜像技术的不足

  SQL Server 2012的联机手册就已经申明将在未来的版本中取消镜像技术。镜像技术主要存在以下不足。

  1. 客户端不能连接到一个虚拟网络名称。

  2. 对于标准版的用户,镜像只能使用高安全(同步)模式,通常都会对性能带来很大的影响。一般在实现镜像之前都需要对数据库做一次性能调整与优化。

  3. 只能针对单个数据库。例如,SharePoint用户希望同时对一组数据库实现高可用,而镜像只能一个一个地对数据库实现。

  4. 镜像服务器上的数据库一直处于“正在还原”状态,只能通过创建快照才能实现只读访问。