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

概述

“数据库镜像”是一种针对数据库高可用性的基于软件的解决方案。其维护着一个数据库的两个相同的副本,这两个副本分别放置在不同的SQL Server数据库实例中。建议使用不同位置的两台服务器来承载。在同一时刻,其中一台上的数据库用于客户端访问,充当“主体服务器”角色;而另一台则根据镜像会话的配置和状态,充当热备份服务器,即“镜像服务器角色”,这两种角色不是绝对的。

优点

l 增强了数据保护功能

l 提高了数据库的可用性

l 提高了生产数据库在升级期间的可用性

工作方式

在“数据库镜像会话”中,主体服务器和镜像服务器是相互通信和协作,并双方互补。主体服务器角色上的数据库副本为生产数据库。数据库镜像会尽快将主体数据库中执行的每一项操作(如:插入、更新和删除等)在镜像数据库中进行重新执行。这一过程是通过将活动事务日志记录的流发送到镜像服务器来完成,这可以尽快将日志记录按顺序应用到镜像数据库中。而且数据库镜像是在物理日志记录级别执行这一“重做”操作的。SQL Server 2008 R2(以下简称:SQL08R2)中,为了减少网络的负载,主体服务器会将事务日志记录压缩后进行发送。

运行模式

l 高性能模式(异步运行):事务不需要等待镜像服务器将日志写入磁盘便可提交,这样可最大程度地提高性能。这意味着事务不需要等待镜像服务器将日志写入磁盘便可提交,而此操作允许主体服务器在事务滞后时间最小的条件下运行,但可能会丢失某些数据。

l 高安全模式(同步运行):当会话开始时,镜像服务器使镜像数据库尽快与主体数据库同步。一旦同步了数据库,事务将在双方提交,这会延长事务滞后时间。

图1

l 具有故障转移功能的高安全性模式(见证服务器):这种模式最大的优点就是主体服务器断线时,镜像服务器上的数据库副本会自动启用,作为生产数据库为客户端提供服务。在这一结构中见证服务器并不能用于数据库,其主要作用是通过验证主体服务器是否已启用并运行来支持自动故障转移。

注意:只有在与主体服务器断开连接之后,镜像服务器仍和见证服务器保持相互连接时,镜像服务器才启动自动故障转移。

见证服务器的作用是验证指定的伙伴服务器是否已启动并正常运行。如果镜像服务器与主体服务器断开,但见证服务器仍与主体服务器保持连接,则镜像服务器无法启动故障转移。所以要实现故障转移的条件是主体服务器与镜像服务器断线,同时也与见证服务器断线;镜像服务器与见证服务器连线的情况。

图2

角色切换

自动切换:在使用见证服务器的情况下,数据库必须已经同步,并且见证服务器必须和镜像服务器连接正常。

手动切换:在高安全性模式下,主体服务器和镜像服务器必须保持互联,并且数据库必须已经同步。

强制服务:在高性能模式和不带自动故障转移功能的高安全性模式下,如果主体服务器出现故障而镜像服务器可用,则可以强制服务运行。这种方式可能导致某些数据库丢失。

实现

一、条件

SQL08R2的“数据库镜像”必须基于每个使用完整恢复模式的数据库来实现。对于SQL08R2不支持简单恢复模式和大容量日志恢复模式的数据库镜像。另外,不能镜像“master”、“msdb”、“model”和“tempdb”等系统数据库。

二、环境

测试环境为一个LAN内,IP地址是192.168.0.0/24段,域名是punwar.cn。

DC:192.168.0.110/24——域控制器和DNS服务器;

SQL-1:192.168.0.111/24——SQL08R2主体服务器;

SQL-1:192.168.0.112/24——SQL08R2镜像服务器;

SQL-1:192.168.0.113/24——SQL08R2见证服务器。

拓扑(如图3)所示:

图3

三、基本环境的准备

由于系统平台使用WIN08R2,而且启用了防火墙设置,因此为了SQL08R2能够正常工作,需要在防火墙上打开相应的端口。本文中介绍数据库镜像需要打开的端口是TCP-1433和TCP-5022端口。打开方式非常多,但是此处可以结合基于域的组策略为三台SQL08R2服务器同时进行整体配置。

将三台服务器放置在同一个OU中(如图4)

图4

通过DC的组策略管理器,为其OU单独创建一个GPO,并定位其“计算机配置”——“管理模板”——“网络/网络连接/Windows防火墙/域配置文件”,启用“定义入站端口例外”(如图5),分别定义两条:

1433:TCP:192.168.0.0/24:enabled:SQL Server

5022:TCP:192.168.0.0/24:enabled:SQL Server DBM

图5

此外,对于SQL08R2来讲,默认情况下,SQL服务的TCP/IP访问是禁用的,所以需要通过SQL Server Configuration Manager将其启用(如图6)。

图6

四、准备数据库

在登录将作为主体服务器的SQL-1服务器(如图7),定位需要镜像的数据库(本文中是mydb数据库),右击选择其“属性”(如图8)。

图7

图8

在其属性窗口中,选择“选项”页,确认其恢复模式为“完整”(如图9)。

图9

关闭该窗口,然后对该数据进行完整备份和事务日志备份。选择mydb数据库节点,右击选择任务——备份(如图10)。

在备份窗口中选择备份类型为“完整”,并指定目标备份包的路径(如图11),点击“确定”进行备份。

相同步骤,打开备份窗口,选择备份类型为“完整”,并指定目标备份包的路径(如图12),点击“确定”进行备份。这里为了方便可以选择与完整备份相同的备份包。

图12

将备份包复制到镜像服务器SQL-2上(如图13),并且从SQL管理控制台登录到SQL-2(如图14)。

图13

图14

创建与主体服务器上需要镜像的数据库相同名称的数据库——mydb(如图15)。同时,数据库文件放置的位置应该相同,各属性也应该配置相同。

图15

在SQL-2上对新建的数据库进行还原操作,即将从SQL-1上对数据库的备份针对SQL-2上新建的mydb进行还原操作。右击mydb数据库选择任务——还原——数据库(如图16)打开还原数据库窗口。

图16

选择“原设备”,通过浏览添加从SQL-1复制的备份包(如图17)。

图17

再选择页中选择“选项”,勾选“覆盖现有数据库”,同时选择“不对数据库执行任何操作,不回滚未提交的事务。可以还原其他事务日志。(RESTORE WITH NORECOVERY)”(如图18)。

图18

点击“确定”,完成数据库还原操作(如图19)

图19

五、配置主体/镜像服务器

在SQL-1上,右击mydb,选择任务——镜像(如图20),打开镜像数据库配置窗口,点击“配置安全性”按钮(如图21)。

图20

图21

在“包括见证服务器”页中选择“是”(如图22),这样可以在之后实现自动故障转移。单击下一步。

图22

在“选择要配置的服务器”页面中,可以不勾选“见证服务器实例”(如图23),因为见证服务器可以在之后来进行配置。

图23

点击下一步,指定主体服务器监听端口和端点名称(如图24),默认的端口为TCP-5022端口,端点名称自定义。

图24

单击下一步,指定镜像服务器,在下拉菜单中选择“浏览更多”(如图25),在“连接到服务器”对话框中指定登录到SQL-2(如图26)。

图25

图26

仍然需要指定镜像服务器的侦听器端口和端点名称,这里的端口仍然使用默认的TCP-5022(如图27)。

图27

单击下一步,指定服务器实例的服务账户,在此测试环境中统一使用管理员账户,但是在生产环境中建议专门为其创建一个账户(如图28)。

图28

单击下一步,显示摘要,确认无误,点击“完成”(如图29)进行端点配置。

图29

成功完成配置后,系统提示是否立刻进行“开始镜像”(如图30),单击开始镜像。

图30

完成数据库同步后,镜像状态会显示为“已同步:数据库已完全同步”(如图31)。由此,主体服务器和镜像服务器的部署已经完成。

图31

注:在最后一个步骤中,进行镜像同步时,需要在每一台SQL08R2服务器上启用“Remote DAC”,否则可能会收到错误提示(如图32)

图32

在SQL08R2中启用远程管理员连接的方法如下:

右击服务器节点,选择“方面”(如图33)

图33

打开“查看方面”窗口,在“方面”下拉菜单中选择“外围应用配置器”(如图34),指定“方面属性”的“RemoteDacEnabled”值为“True”(如图35)。

图34

图35

六、实现手动故障转移

首先,确定目前主体服务器和镜像服务器工作均正常,并且连接正常。目前在SQL-1上,mydb的状态是“主体,已同步”(如图36)

图36

在SQL-1上打开mydb的“镜像”配置窗口,确认运行模式为“高安全”模式,然后点击“故障转移”按钮(如图37)。系统提示是否进行转移(如图38),单击“是”进行转移。

图37

图38

成功完成操作后,在SQL-1上数据库mydb的状态变为了“镜像,已同步/正在还原……”(如图39);

图39

而在SQL-2上,mydb的状态变为“主体,已同步”了(如图40)。由此可见进行故障转移的结果是使其主体/镜像角色互换了。

图40

七、实现自动故障转移

自动故障转移需要配置见证服务器,由于此前在实现主体/镜像服务器的过程中,略过了见证服务器的配置,所以,现在需要手动重新配置见证服务器。

在主体服务器SQL-1上,右击数据库mydb,选择任务——镜像(如图41),打开“镜像”配置窗口,选择“配置安全性”按钮(如图42)

图41

图42

将安全性配置为包括见证服务器实例(如图43)

图43

单击下一步,勾选“见证服务器实例”(如图44)。

图44

单击下一步,确认主体服务器配置(如图45),

单击下一步,配置见证服务器,在下拉菜单中选择“浏览更多”(如图46)。连接并登录到SQL-3(如图47)

图46

图47

指定“侦听器端口”为默认的TCP-502和端点名称(如图48)

图48

单击下一步,指定域管理员作为主体/镜像/见证的服务账户(如图49)

图49

单击下一步,确认摘要信息无误,点击“完成”(如图50)。

图50

成功完成配置后,在“镜像”配置窗口中会显示“见证服务器”信息,并自动选中“带自动故障转移功能的高安全(同步)”(如图51)。

图51

注:此时“不带自动故障转移功能的高安全(同步)”将不可使用

断开SQL-1的网络连接,模拟主体服务器,即生产数据库服务器出现故障。如:拔去SQL-1的网线。SQL-1上的mydb状态将自动变为“主体,已断开连接/正在恢复”(如图52)

图52

而此时,在SQL-2上查看mydb状态将自动变为“主体,已断开连接”(如图53)。

图53

八、验证镜像数据库的数据同步。

在各角色都正常工作的情况下,定位到主体服务器SQL-1上mydb数据库,创建表t1。并在其中插入数据(如图54)。

图54

完成建表和插入数据后,拔掉SQL-1的网线,模拟故障。然后,登录镜像服务器SQL-2,定位到mydb数据库,展开可以看到镜像同步过来的t1表,打开表可以看到表中的数据也是同步过来的(如图55)。

图55

由此可以看出,“数据库镜像”技术可以成功对数据进行热备,使SQL08R2的可用性得以大大提高。此外,需要注意的是,出现故障后的服务器访问定位需要在SQL语句级别进行设计,在此将不再进行叙述。

参考文章:

《微软技术资源库SQL Server 2008 R2数据库镜像》
http://technet.microsoft.com/zh-cn/library/bb934127.aspx

本文出自 “胖哥技术堂” 博客

(0)

相关推荐

  • 图文详解SQL Server 2008R2使用教程

    本文为大家分享了SQL Server 2008R2简单使用教程,供大家参考,具体内容如下 1 首先找到开始菜单中相关内容:如下图:安装的组件不同可能有所不同:我的电脑中包括如下项: 商业智能:管理控制台:导入和导出数据:分析服务:集成服务:配置工具:文档和教程:性能工具: 因为偶装的组件多: 2 进入管理控制台 首先是登录:服务器类型选择 数据库引擎:此处先用Windows身份验证登录: 3 进入管理控制台 界面如下:看到 数据库 下有四个子项,系统数据库.数据库快照.ReportServer.

  • win2008 r2 下安装sql server 2005 64位教程(图解)

    安装好win2008 r2 x64系统以后,安装方法可以参考这篇文章:http://www.jb51.net/os/535658.html 进入下载的文件中,双击打开:splash.hta 文件进行安装 根据自己的系统来选择性进行安装,这里我们选择第二项:基于 x64 的操作系统(6). 然后在安装中选择"服务器组件.工具.练级丛书和示例(C)"的选项进行安装. 此处的注册信息可以忽略,非必填选项 此处我们选择安装的功能文件,也可点击"高级",进入高级设计页 点击&

  • win2008 r2 安装sqlserver 2000问题的解决方法

    windows 2008 R2 64 系统安装SQL2000 32位数据库 安装成功关键: 1.点击安装,提示兼容问题,然后没有然后了··· 没有反应了 解决方法:直接运行 光盘\Microsoft SQL Server 2000 四合一\ENTERPRISE\X86\SETUP\SETUPSQL.EXE 选择\ENTERPRISE\X86\SETUP\setupsql.exe 属于-兼容模式(勾选兼容性windows 2003 SP1,管理员),4合1的版本,找到需安装版本下setupsql.

  • win2008 r2 安装sql server 2005/2008 无法连接服务器解决方法

    在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误.未找到或无法访问服务器.请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接. 在使用G2服务时,测试服务器连接,结果遇到这个问题. 问题详细:连接测试失败!:在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误.未找到或无法访问服务器.请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接. (provider: 命名管道提供程序, error: 40 - 无法打开到

  • SQL Server2008导出数据之Excel详细解析

    最近在看数据库方面的书籍和视频,我觉得数据库的导入和导出很有用,顺便做一下总结,以免将来有遗忘啊!其实导入和导出很相似,思路是一样的,还有导入导出文本,Acess,Excel等等模板也都挺相似的,所以我就总结导出Excel吧.下面请看步骤: 1.首先需要准备的是在你的电脑上创建一个Excel表格(我创建在了桌面上)如图所示(是空的): 2.在SQL Server2008的企业管理器中选择你想要导出的数据库,如图所示. 3.右击选择任务---->导出数据库 4.点击导出数据,出现如图界面. 5.单

  • SQL Server 2008 R2 超详细安装图文教程

    一.下载SQL Server 2008 R2安装文件 cn_sql_server_2008_r2_enterprise_x86_x64_ia64_dvd_522233.iso 二.将安装文件刻录成光盘或者用虚拟光驱加载,或者直接解压,打开安装文件,出现下面的界面 安装SQL Server 2008 R2需要.NET Framework 3.5 SP1支持 这里我们的操作系统是Windows Server 2008 R2,已经默认自带了.NET Framework 3.5 SP1 直接点确定 选择

  • SQL Server 2008 R2:error 26 开启远程连接详解

    在学习ASP.NET 过程用到新建数据集并远程连接sql server 2008 数据库,出现下面的错误: <--在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误.    未找到或无法访问服务器.请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接.     (provider: SQL Network Interfaces, error: 26 - 定位指定的服务器/实例时出错)--> 因为sql server 2008默认是不允许远程连接的,sa帐

  • SQL SERVER 2008 R2配置管理器出现“远程过程调用失败”(0x800706be)错误提示

    以前SQL Server 2008 不能登陆的时候,总是通过"计算机管理"→"SQL Server服务"更改一下,"SQL Server(MSSQLSERVER)".可是现在出现的问题却成了SQL Server服务打不开的情况,很是郁闷.如图: 通过网上查,才知道是因为SQL Server2008 与VS2012 共存的问题,当你电脑中同时装了这两样东西,SQL 就会出现上图中的情况. 解决办法:从控制面板或者其他辅助软件中找到"Mic

  • 还原sqlserver2008 媒体的簇的结构不正确的解决方法

    今天在本地数据库上还原一个数据库(WINDOWS方式进入,当时不知道关闭了SQLSERVER身份验证),无论怎么还原,都会出现错误:媒体的簇的结构不正确 方法,在百度上搜索不到解决方法. 最后我启用了windows和server综合验证,并且启用了SA,重新启动SQLSERVER2008,用SQLSERVER身份验证登录,然后还原数据库,结果是成功还原.

  • SQLServer2005与SQLServer2008数据库同步图文教程

    1,复制简介 简单的说,复制是获取一个或多个数据库的过程,它系统的针对出入不同数据库的数据,提供基于规则的拷贝机制. 复制分为三种角色, 1,发布服务器 发布服务器可以被看成是源数据库. 2 ,分发服务器 分发数据库针对更改而承担类似某些票据交换所的工作,他是一个特殊的分发数据库,用于对更改进行跟踪,同时也跟踪哪些订阅服务器已经收到了这些更改.除此之外,它还跟踪任何同步过程的结果,并知道发生了哪些必须解决的冲突. 3,订阅服务器 任何参与到于复制发布过程的数据库,订阅服务器并不只能接受数据,它还

随机推荐