sql server 2008 数据库镜像(一)---镜像概览

 

一、镜像技术

在数据库镜像中,一台SQL Server 实例连续不断的将数据库事务日志发送到另一台备用SQL Server实例的数据库副本中。发送方的数据库和服务器担当主角色,而接收方的数据库和服务器担当镜像角色。主服务器和镜像服务器必须是独立的SQL Server实例。

在所有SQL Server数据库中,在对真正的数据页面进行修改之前,数据改变首先都记录在事务日志中。事务日志记录先被放置在内存中的数据库日志缓冲区中,然后尽快地输出到磁盘(或者被硬化)。在数据库镜像中,当主服务器将主数据库的日志缓冲区写入磁盘时,也同时将这些日志记录块发送到镜像实例。

当镜像服务器接收到日志记录块后,首先将日志记录放入镜像数据库的日志缓冲区,然后尽快地将它们硬化到磁盘。稍后镜像服务器会重新执行那些日志记录。由于镜像数据库重新应用了主数据库的事务日志记录,因此复制了发生在主数据库上的数据改变。

同一个时间点只能访问一个数据库,也就是主数据库,镜像数据库不能直接访问。通过在镜像数据库上创建数据库快照可以间接读取某一个时刻点的镜像数据库。

镜像分为如下三种方式:

高可用操作模式:

高可用操作模式支持最大程度的数据库可用性,如果主数据库失败将自动转移到镜像数据库。高可用操作模式最适合于那些服务器之间具有高速且可靠的通信线路,同时要求在单一数据库上实现自动故障转移的场景。主服务器必须短暂等待来自镜像服务器的回答,主服务器性能也因此受到镜像服务器能力的影响。

高保护操作模式:

  高保护操作模式中事务安全性,但是镜像会话中没有见证服务器。主服务器必须组成quorum,可是没有见证服务器,因此只能和镜像服务器配合在一起。这种模式下由于没有见证服务器来担当平局决胜的角色,因此只能手动完成故障转移。行自动故障转移是不可能的,因为如果主服务器失败,镜像服务器没有见证服务器来组成quorum

  safety设置为FULL,如果主服务器突然间失去了和镜像服务器的quorum,那么镜像服务器必须使其数据库停止服务。不推荐使用高保护模式的数据库镜像配置,除非在高可用模式下必须临时移除见证服务器时,可以使用该模式

高性能模式:

在高性能模式下,主体服务器向镜像服务器发送事务日志之后,就立即向客户端发送确认,而不会等待镜像服务器的确认。 事务不等待镜像服务器将日志写入磁盘便提交。 异步操作允许主体服务器的运行有一段最短事务滞后时间。一定要注意,强制服务可能会造成数据丢失。 数据可能会丢失,因为镜像服务器无法与主体服务器进行通信,从而不能保证两个数据库同步。 强制服务还启动新的恢复分叉。 由于原始主体数据库和镜像数据库位于不同的恢复分叉,因此,现在每个数据库都包含另一个数据库所没有的数据: 原始主体数据库包含尚未从其发送队列发送到以前的镜像数据库的所有更改(未发送日志);以前的镜像数据库包含强制服务后所做的所有更改。 

二、sql server 2008 的改进

     端点之传输日志时对日志进行压缩,节约带宽。

     自动页面修复,如果主数据库的文件页被损害,SQL SERVER会自动到镜像数据库提取正常的页面进行修复。

三、端点之间的通信

     网络畅通,端口开放。

     端点之间相互信任,建立信任关系主要通过两种方式:

          1、服务器在同一个信任域之中。

          2、服务器彼此持有对方的证书。

四、构建步骤

       创建端点à将主数据用户拷贝到镜像数据库中à将源数据库的恢复模式设置成完整à完整备份模式备份主数据库à在镜像数据库中还原à设置伙伴和见证服务器完成。

五、注意事项

Ø         主数据库必须为FULL还原模型。由于bulk-logged操作而导致的日志记录无法发送到镜像数据库。

Ø         初始化镜像数据库必须首先使用NORECOVERY还原主数据库,然后再按顺序还原著数据库事务日志备份。

Ø         镜像数据库和主数据库名称必须一致。

Ø         由于镜像数据库处于recovering状态,因此不能直接访问。通过在镜像数据库上创建数据库快照可以间接读取某一个时刻点的镜像数据库。

Ø         设置伙伴时先在镜像服务器中设置伙伴,再在主服务器中设置伙伴和见证服务器

posted @ 2008-12-12 19:09  子产  阅读(3475)  评论(7编辑  收藏  举报