SQL Server 2008 数据库镜像部署实例之三 配置见证服务器

前面已经完成了镜像数据库的配置,并进行那个了故障转移测试。接下来将部署见证服务器,实现自动故障转移。

一、关于见证服务器

1、若要支持自动故障转移,必须在高安全性模式下配置数据库镜像会话,并且还要具有第三个服务器实例(也称为“见证服务器”)。见证服务器是 SQL Server 的可选实例,它能使高安全性模式会话中的镜像服务器识别出是否要启动自动故障转移。与这两个伙伴不同的是,见证服务器并不能用于数据库。见证服务器的唯一角色是支持自动故障转移。

2、为了给数据库设置见证服务器,数据库所有者为见证服务器的角色分配数据库引擎实例。见证服务器实例可以与主体服务器实例或镜像服务器实例运行于同一台计算机上,但这样会明显降低自动故障转移的可靠性。因此建议见证服务器应位于另外一台计算机上。

3、在高性能模式下,见证服务器对可用性会有不利影响。如果见证服务器是针对数据库镜像会话而配置,则主体服务器必须至少连接到一个其他服务器实例,即镜像服务器或见证服务器,或者是连接到这两个服务器。否则,将无法使用数据库,并且不能进行强制服务(可能丢失数据)。因此,对于高性能模式,我们极力建议您始终将见证服务器设置为 OFF。

二、关于自动故障转移

1、只有在高安全性模式(“具有自动故障转移功能的高安全性模式”)下运行并且具有见证服务器的数据库镜像会话支持自动故障转移。在具有自动故障转移功能的高安全性模式下,同步数据库后,如果主体数据库变得不可用,则会发生自动故障转移。自动故障转移将导致镜像服务器接管主体服务器的角色,并使其数据库的副本联机以作为主体数据库。因为每个在主体数据库中提交的事务同时也在镜像数据库中提交,所以需要使数据库保持同步以防止在故障转移过程中丢失数据。

2、自动故障转移所需条件

A、数据库镜像会话必须在高安全性模式下运行,并且必须处理见证服务器。

B、镜像数据库必须已经同步。这将保证发送到镜像服务器的所有日志都已写入磁盘。

C、主体服务器已中断了与其余数据库镜像配置的通信,而镜像服务器和见证服务器将保留仲裁。但是,如果所有服务器实例都已中断通信,而见证服务器和镜像服务器稍后重新建立通信,则不会发生自动故障转移。

D、镜像服务器已检测到丢失了主体服务器

E、镜像服务器检测主体服务器故障的方式取决于故障是硬故障还是软故障。

更多自动故障转移内容参考

http://msdn.microsoft.com/zh-cn/library/ms189590.aspx

三、自动故障转移原理

1、如果主体服务器仍在运行中,则将主体数据库的状态更改为 DISCONNECTED 并断开所有客户端与主体数据库的连接。

2、见证服务器和镜像服务器将主体服务器注册为不可用。

3、如果重做队列中有任何等待的日志,则镜像服务器将完成前滚镜像数据库的操作

4、前一个镜像数据库作为新的联机主体数据库,恢复通过尽快回滚未提交的事务将这些事务全部清除。锁将隔离这些事务。

5、当前一个主体服务器重新联接到会话时,它将认定其故障转移伙伴现在拥有主体角色。前一个主体服务器接管镜像角色,并将其数据库作为镜像数据库。新的镜像服务器会尽快将新的镜像数据库与主体数据库同步。新的镜像服务器重新同步数据库后,就可以再次执行故障转移,但按反向执行。。

下图说明了自动故障转移的一个实例。

四、在见证服务器上看装SQL Server 2008

详见《SQL Server 2008 数据库镜像部署实例之一》

五、配置见证服务器

1、主体数据库服务器上,右键点击数据库,选择任务——镜像

2、在弹出的数据库属性页面中,选定镜像页,点击右侧的配置安全

3、点击下一步,选择包括见证服务器

4、点击下一步,进行见证服务器配置

5、点击两次下一步,填入见证服务器地址或机器名及站点名称

6、填入服务账户

7、查看摘要信息,点击完成

六、测试自动故障转移

1、当前主体服务器为Hytest01,镜像数据库是Hytest02

2、将主体服务器Hytest1的网络断开,看数据库是否自动转移到镜像服务器Hytest02上

镜像设置显示,主体服务器、镜像服务器角色也互换了。

有人会说,两个数据库,IP地址都不一样,怎么写连接代码呢?难道出现故障后要手动更改代码吗?其实使用ADO.NET或者SQL Native Client能够自动连接到故障转移后的伙伴,连接字符串如下所示:

  ConnectionString="DataSource= A;Failover Partner=B;Initial Catalog=AdventureWorks;Integrated Security=true;" DataSource= A;

这样设置之后,客户端就可以自动切换数据库了

至此SQL Server 2008 的镜像高可用配置实例全部完成。

(0)

相关推荐

  • SQL Server 2005 镜像构建手册(sql2005数据库同步镜像方案)

    一. 镜像简介 1. 简介 数据库镜像是将数据库事务处理从一个SQL Server数据库移动到不同SQL Server环境中的另一个SQL Server数据库中.镜像不能直接访问;它只用在错误恢复的情况下才可以被访问. 要进行数据库镜像所需的最小需求包括了两个不同的SQL Server运行环境.主服务器被称为"主机",第二个服务器被称作"备机".主机数据库就是你实际用着的数据库,镜像数据库就是你的数据库的备用拷贝.当事务写入你的基本服务器的时候,他们也同样被传送到并

  • SQL Server 2008 R2数据库镜像部署图文教程

    概述 "数据库镜像"是一种针对数据库高可用性的基于软件的解决方案.其维护着一个数据库的两个相同的副本,这两个副本分别放置在不同的SQL Server数据库实例中.建议使用不同位置的两台服务器来承载.在同一时刻,其中一台上的数据库用于客户端访问,充当"主体服务器"角色:而另一台则根据镜像会话的配置和状态,充当热备份服务器,即"镜像服务器角色",这两种角色不是绝对的. 优点 l 增强了数据保护功能 l 提高了数据库的可用性 l 提高了生产数据库在升级

  • SQL Server中避免触发镜像SUSPEND的N种方法

    背景: 我们在使用数据库的过程中,很多时候要追求性能,特别在处理大批量数据的时候更希望快速处理.那么对SQL SERVER而言,数据库实现大批量插入的优化方案,这里特别介绍通过大容量插入的一种方式. 基本原理: 简单恢复模式按最小方式记录大多数大容量操作,对于完整恢复模式下的数据库,大容量导入期间执行的所有行插入操作被完整地记录到事务日志中.如果数据导入量较大,会导致迅速填满事务日志.对于大容量导入操作,按最小方式记录比完整记录更有效,并减少了大容量导入操作填满日志空间的可能性,所以性能会得到极

  • SQL Server 2008 数据库镜像部署实例之一 数据库准备

    一.目标 利用Sql Server 2008 enterprise X64,建立异步(高性能)镜像数据库,同时建立见证服务器实现自动故障转移. 二.前提条件.限制和建议 2.1.伙伴双方(主体服务器和镜像服务器)及见证服务器必须使用相同版本的Sql Server 2.2.如使用见证服务器,择须确保其系统上安装 Sql Server 2005或更高版本 2.3.在镜像服务器上创建镜像数据库时,确保制定相同的数据库名称WITH NOREBOVORY来还原主题数据库备份.另外,还必须通过 WITH N

  • SQLServer 镜像功能完全实现

    在域环境下我没配置成果,也许是域用户的原因,因为我在生产环境下搞的,更改域用户需要重启SQLServer ,所以这个方法放弃了,只能用证书形式. 环境: 主机:192.168.10.2 (代号A) 镜像:192.168.10.1 (代号B,为了一会说明方便) (条件有限我没有搞见证服务器.)两台服务器上的都是SQLServer2005 首先配置主机 主机上执行以下SQL 复制代码 代码如下: --创建主机数据库主密钥 USE master; CREATE MASTER KEY ENCRYPTIO

  • SQL Server 2008 数据库镜像部署实例之二 配置镜像,实施手动故障转移

    上一篇文章已经为配置镜像数据库做好了准备,接下来就要进入真正的配置阶段 一.在镜像数据库服务器上设置安全性并启动数据库镜像会话 1.展开数据库,选择VirtualManagerDB,点击右键选择任务--镜像 2.点击配置安全性,点选是,包括见证服务器 3.去掉见证服务器,以后进行配置 4.设置主体服务器,填入端点名称为site1 5.添加镜像服务器,取端点名为site2 6.指定服务账户为域管理员账户(可以在域内事先配置) 7.创建成功,点击关闭 8.弹出对话框,选择不开始开始镜像 9.点选高性

  • SQL Server 2008 数据库镜像部署实例之三 配置见证服务器

    前面已经完成了镜像数据库的配置,并进行那个了故障转移测试.接下来将部署见证服务器,实现自动故障转移. 一.关于见证服务器 1.若要支持自动故障转移,必须在高安全性模式下配置数据库镜像会话,并且还要具有第三个服务器实例(也称为"见证服务器").见证服务器是 SQL Server 的可选实例,它能使高安全性模式会话中的镜像服务器识别出是否要启动自动故障转移.与这两个伙伴不同的是,见证服务器并不能用于数据库.见证服务器的唯一角色是支持自动故障转移. 2.为了给数据库设置见证服务器,数据库所有

  • 简述SQL Server 2005数据库镜像相关知识

    SQL Server 数据库中,数据库镜像是用于提高数据库可用性的主要软件解决方案.数据库镜像基于每个数据库实现,并且只适用于使用完整恢复模式的数据库.简单恢复模式和大容量日志恢复模式不支持数据库镜像,数据库镜像不能镜像master.msdb.tempdb 或 model 数据库.本文我们主要就介绍一下数据库镜像的相关知识,接在来就让我们来一起了解一下吧! 数据库镜像维护一个数据库的两个副本,这两个副本必须驻留在不同的SQL Server 数据库引擎实例(服务器实例)上.通常,这些服务器实例驻留

  • 通过SQL Server 2008数据库复制实现数据库同步备份

    SQL Server 2008数据库复制是通过发布/订阅的机制进行多台服务器之间的数据同步,我们把它用于数据库的同步备份.这里的同步备份指的是备份服务器与主服务器进行实时数据同步,正常情况下只使用主数据库服务器,备份服务器只在主服务器出现故障时投入使用.它是一种优于文件备份的数据库备份解决方案. 在选择数据库同步备份解决方案时,我们评估了两种方式:SQL Server 2008的数据库镜像和SQL Server 2008数据库复制.数据库镜像的优点是系统能自动发现主服务器故障,并且自动切换至镜像

  • sql server 2008 数据库管理系统使用SQL语句创建登录用户步骤详解

    废话不多说了,直接给大家贴代码了,具体代码如下所示: --服务器角色: --固定服务器角色具有一组固定的权限,并且适用于整个服务器范围. 它们专门用于管理 SQL Server,且不能更改分配给它们的权限. --可以在数据库中不存在用户帐户的情况下向固定服务器角色分配登录. --按照从最低级别的角色(bulkadmin)到最高级别的角色(sysadmin)的顺序进行描述: --1.Bulkadmin:这个服务器角色的成员可以运行BULKINSERT语句.这条语句允许从文本文件中将数据导入到SQL

  • SQL Server 2008数据库分布式查询知识

    在接触公司一个系统时,公司使用的是SQL Server 2008数据库,里面涉及到了多个数据库之间的查询,而且数据库是分布式的,数据库分布在多台服务器之间,并且各个数据库各尽其责,负责存放不同模块功能的数据.这里面就要涉及到了数据库的分布式查询. 补充一下分布式查询的知识: 分布式查询从多异类数据源中访问数据.这些数据源可以存储在同一台计算机或不同的计算机上.Microsoft SQL Server 通过使用 OLE DB 来支持分布式查询. SQL Server 用户可以使用分布式查询访问以下

  • Python操作Sql Server 2008数据库的方法详解

    本文实例讲述了Python操作Sql Server 2008数据库的方法.分享给大家供大家参考,具体如下: 最近由于公司的一个项目需要,需要使用Sql Server 2008数据库,开发语言使用Python,并基于windows平台上的Wing IDE4.0进行. 之前并未使用过Sql Server数据库,这次也当作一次练手,并把这次数据库前期开发过程中遇到的一些问题进行记录. 一.关于pyodbc库和pymssql库的选择 在使用python语言进行开发之前,需要确定使用哪种第三方的数据库操作

  • SQL Server 2008数据库误删数据如何进行数据恢复

    有个朋友很着急地打电话给我,他用delete语句误删除了SQL Server 2008数据库中两个表中的所有记录,而这个数据库之前没有任何备份.让我帮他解决一下,不然他要赔偿客户很多钱. SQL Server中误删除数据的恢复本来不是件难事,从事务日志恢复即可.但是,这个恢复需要有两个前提条件: 1. 至少有一个误删除之前的数据库完全备份. 2. 数据库的恢复模式(Recovery mode)是"完整(Full)". 针对这两个前提条件,会有三种情况: 情况一.如果这两个前提条件都存在

  • SQL SERVER 2008数据库引擎详细介绍

    SQL Server 的数据库引擎组件是用于存储.处理数据和保证数据安全的核心服务.数据库引擎提供受控的访问和快速事务处理,以满足企业中要求极高.大量使用数据的应用程序的要求. SQL Server 支持在同一台计算机上最多存在 50 个数据库引擎实例.对于本地安装,必须以管理员身份运行安装程序.如果从远程共享安装 SQL Server,则必须使用对远程共享具有读取和执行权限的域帐户. 高可用性解决方案概述 高可用性解决方案可减少硬件或软件故障造成的影响,保持应用程序的可用性,尽可能地减少用户所

随机推荐