您的位置:首页 > 理论基础 > 计算机网络

SQL Server 2005高可用性之镜像功能(http://tech.it168.com/db/s/2007-04-24/200704240837593.shtml)

2008-03-11 14:09 369 查看
SQL Server 2005相对于SQL Server 2000来说,无论是性能还是功能都有一个相当大的提高,甚至可以用“革命”来形容这一次升级。SQL Server 2005使 SQL Server 跻身于企业级数据库行列。在数据高可用性方面,SQL Server 2005为用户提供了数据镜像、复制、故障转移群集、日志传送功能。本文向读者简单介结SQL Server 2005镜像功能。

一、镜像简介

数据库镜像是一个高可用性软件解决方案,为客户端提供小于10秒故障转移。每个数据库镜像配置均包含一个主体服务器(包含主体数据库)、一个镜像服务器(包含镜像数据库)和一个见证服务器,其中见证服务器是可选的。主体服务器和镜像服务器要求是独立的服务器实例。主体服务器和镜像服务器的角色是相对的,可以自动或者手动地将主体服务器设置为镜像服务器,镜像服务器设置为主体服务器。与主体服务器和镜像服务器不同的是,见证服务器并不能用于数据库。见证服务器监视主体服务器和镜像服务器,确保在给定的时间内这两个故障转移服务器中有且只有一个作为主体服务器,从而支持自动故障转移。如果存在见证服务器,同步会话将以“高可用性模式”运行,如果主体服务器出现故障,可以实现故障自动转移。如果见证服务器不存在,同步会话将以“高级别保护模式”运行,出现故障需要手动故障转移,并且有可能丢失数据。

CREATE ENDPOINT DbMirroring
STATE=STARTED
AS TCP(LISTENER_PORT=5011)
FOR DATABASE_MIRRORING(ROLE=PARTNER,ENCRYPTION=SUPPORTED)
go

在SERVER02上运行下面的SQL:

CREATE ENDPOINT DbMirroring
STATE=STARTED
AS TCP(LISTENER_PORT=5022)
FOR DATABASE_MIRRORING(ROLE=PARTNER,ENCRYPTION=SUPPORTED)
go

在SERVER03上执行下面的SQL,创建见证服务器。
CREATE ENDPOINT DbMirroring
STATE=STARTED
AS TCP(LISTENER_PORT=5033)
FOR DATABASE_MIRRORING(ROLE=WITNESS,ENCRYPTION=SUPPORTED)
go

[/code]

第二步:启动镜像

在前面的规划中SERVER01将作为主体服务器、SERVER02作为镜像服务器,首先在主体服务器上执行下面的SQL:

ALTER DATABASE DBMirror
SET PARTNER='TCP://jeffery:5022'    --(注:笔记的机器名称是jeffery)
go


指定SERVER01的通讯伙伴是SERVER02(因为前面定义端点的时候SERVER02的端口号为5022)。

在SERVER02的上执行下面的SQL,指定通讯伙伴为SERVER01。

ALTER DATABASE DBMirror
SET PARTNER='TCP://jeffery:5011'
go


回到主体服务器,指定见证服务器。在SERVER01上执行下面的SQL:

ALTER DATABASE DBMirror
SET WITNESS='TCP://jeffery:5033'
go


完成以上步骤之后,镜像配置完成。如图3所示。

USE MASTER
Go

ALTER DATABASE DBMirror SET PARTNER FAILOVER
Go

[/code]

数据库镜像是一个很好的高可用性解决方案,笔者参加微软的技术论坛时曾看到过微软的技术人员演示镜像的故障转移,如主体服务器出现故障,在10秒内客户端就重新连到数据库服务器。限于篇幅和笔者的水平,对数据库镜像作了简单的介绍,还有很多东西没有提及到比如说客户端怎样连到服务器等等,希望本文成为读者学习镜像功能的开端。
1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: