欢迎投稿

今日深度:

SQL Server 2005数据库镜像(1)

SQL Server 2005数据库镜像(1)


内容列表

概述 
数据库镜像介绍 
数据库镜像动态 
数据库镜像可用性场景 
实现数据库镜像 
数据库镜像和高可用性技术 
结论 
概述

数据库镜像是SQL SERVER 2005用于提高数据库可用性的新技术。数据库镜像将事务日志记录直接从一台服务器传输到另一台服务器,并且能够在出现故障时快速转移到备用服务器。可以编写客户端程序自动重定向连接信息,这样一旦出现故障转移就可以自动连接到备用服务器和数据库。

自动进行故障转移并且使数据损失最小化通常包括昂贵的硬件和复杂的软件。但是,数据库镜像可以在不丢失已提交数据的前提下进行快速故障转移,无须专门的硬件,并且易于配置和管理。

数据库镜像介绍

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

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

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

主服务器和镜像服务器将对方视为数据库镜像会话中的伙伴。数据库镜像会话包含了镜像伙伴服务器之间的关系。一台给定的伙伴服务器可以同时承担某个数据库的主角色和另一个数据库的镜像角色。

除了两台伙伴服务器主服务器和镜像服务器),一个数据库会话中可能还包含第三台可选服务器,叫做见证服务器。见证服务器的角色就是启动自动故障转移。当数据库镜像用于高可用性时,如果主服务器突然失败了,如果镜像服务器通过见证服务器确认了主服务器的失败,那么它就自动承担主服务器角色,并且在几秒钟之内就可以向用户提供数据库服务。

数据库镜像中需要注意的一些重要事项:

◆主数据库必须为FULL还原模型。由于bulk-logged操作而导致的日志记录无法发送到镜像数据库。
◆初始化镜像数据库必须首先使用NORECOVERY还原主数据库,然后再按顺序还原著数据库事务日志备份。
◆镜像数据库和主数据库名称必须一致。
◆由于镜像数据库处于recovering状态,因此不能直接访问。通过在镜像数据库上创建数据库快照可以间接读取某一个时刻点的镜像数据库。参阅该白皮书后面“数据库镜像和数据库快照”部分)

注意: 要想获取更多与数据库镜像术语有关的信息,请参阅SQL Server 2005 Books Online中关于“Overview of Database Mirroring”。

操作模式

数据库镜像会话有三种可能的操作模式。根据事务安全性的设置以及镜像会话中是否需要见证服务器来决定精确的操作模式。

表1:数据库镜像操作模式

操作模式

事务安全性

传输机制

需要Quorum

见证服务器

故障转移类型

高可用

FULL

同步

Y

Y

自动或者手动

高保护

FULL

同步

Y

N

只能手动

高性能

OFF

异步

N

N/A

只能forced

如果safety设置为FULL,那么通过同步方式传输数据,并且需要一台镜像服务器才能提供数据库服务。quorum投票表决要求至少两台服务器的参与才能够决定两个伙伴服务器各自承担什么角色,主角色还是镜像角色。

为了更深入研究这三种操作模式,首先来更进一步研究一下事务安全性和quorum的角色。

事务安全性

If 事务安全性或者'safety')设置为FULL,那么主服务器和镜像服务器工作在同步传输模式下。当主服务器硬化其主数据库日志记录到磁盘时,也同时将日志发送到镜像服务器。然后主服务器等待镜像服务器的回答。镜像服务器将那些相同的日志记录硬化到镜像日志所在磁盘后,对主服务器进行答复。当safety设置为OFF时,主服务器不会等待来自服务器的确认,因此主数据库和镜像数据库可能不是完全同步的也就是,镜像可能滞后于主数据库)。

同步传输方式保证镜像数据库事务日志中所有事务与主数据库事务日志中的事务同步,因此可视为事务是安全传输的。要将safety设置为FULL,使用

ALTER DATABASE [] SET SAFETY FULL;

当safety设置为OFF,主服务器和镜像服务器之间的通信是异步的。主服务器不会等待镜像服务器已将事务记录硬化的确认信息。镜像服务器通过尽快记录事务日志的来试图保持与主服务器同步,但是如果主服务器突然失败同时强制镜像服务器提供服务,那么某些事务还是有可能丢失参阅SQL Server Books中的'Forced Service')。


www.htsjk.Com true http://www.htsjk.com/shujukujc/19205.html NewsArticle SQL Server 2005数据库镜像(1) 内容列表 概述 数据库镜像介绍 数据库镜像动态 数据库镜像可用性场景 实现数据库镜像 数据库镜像和高可用性技术 结论 概述 数据库镜像是SQL SERVER 2005用于提...
评论暂时关闭