数据库双机热备

数据库镜像
相对于日志传送,数据库镜像显然更高一级。在最简单的形式下,它其实与日志传送的
工做原理类似,可是生产服务器发送事务到镜像服务器的频率要高得多,这意味着更新速度
也要快不少。
对于数据库镜像来讲,故障转移功能也是须要手动完成。可是你能够添加第三个SQL
Server,称为witness。Witness 能够做为一个普通的SQL Server,可是一直留意着其它两个
镜像服务器。当主镜像发生故障,witness 可让第二个镜像接管操做,相似一种自动的故
障转移。
在故障转移时,任何进行中的客户端事务都将从新启动,而因为在这一过程当中仍然存在
着延迟,镜像服务器也不能保证百分之百不丢失数据。
一.
数据库准备
1、目标
利用Sql Server 2008 enterprise X64,创建异步(高性能)镜像数据库,同时创建见证服务器
实现自动故障转移。
2、前提条件、限制和建议
一、伙伴双方(主体服务器和镜像服务器)及见证服务器必须使用相同版本的Sql Server
二、如使用见证服务器,择须确保其系统上安装 Sql Server 2005 或更高版本
三、在镜像服务器上建立镜像数据库时,确保制定相同的数据库名称WITH NOREBOVORY 来
还原主题数据库备份。另外,还必须经过 WITH NORECOVERY 应用在该备份执行后建立的所
有日志备份。若是数据库镜像已经中止,则必须将对主体数据库执行的全部后续日志备份应
用到镜像数据库中,而后才能够从新启动镜像。
四、跨数据库事务和分布式事务均不支持数据库镜像
五、镜像的数据库路径尽可能与主体服务相同,若是主体服务器CPU 利用率在50%以上,择不
建议配置自动故障转移
六、建议配置高效稳定的网络环境
3、设置概述
一、确保全部数据库用户在镜像服务器上都有登陆名
二、在向另外一个服务器实例提供数据库以前,您必须在该服务器实例上创建数据库用于新服
务器实例时所需的环境
三、使用 NORECOVERY 还原最近的主体数据库完整备份,以建立镜像数据库。确保执行备
份时主体数据库已使用完整恢复模式。镜像数据库和主体数据库名称必须相同,而且它们在
数据库镜像会话中不能被重命名。
四、设置安全性并启动数据库镜像会话。可使用 Transact-SQL 或数据库镜像向导来设置镜
像。
五、(可选)将见证服务器添加到会话。
4、在Windows Server 2008 R2上安装Sql Server 2008 enterprise X64
一、SQL Server 2008 须要.NET 3.5支持,因此安装以前须要安装.NET3.5,在服务器管理的功能单元中,添加.NET Framework 3.5.1功能
二、安装时选择全新SQL Server独立安装
三、选定功能组件,注意安装目录与其余节点保持一致
四、使用默认实例名称,或者与其余节点相同
五、设定服务启动帐户,这里配置全部服务均使用域管理启动
六、设置混合身份登陆、制定SQL Server管理员
七、点击下一步,等待安装完成。在其余节点按照一样方式安装SQL Server
5、配置数据库镜像前的数据库准备
一、 确认数据库使用了完整恢复模式:打开SQL Server Management,在VirtualManagerDB数据库(将要镜像的数据库)上点击右键选择属性,定位到选项页,将恢复模式改成“完整”
二、 备份主体数据库:在VirtualManagerDB数据库上点击右键——任务——备份,备份类型选择完整
三、将备份文件拷贝到镜像节点,执行还原。右键点击数据库,选择还原数据库,选定备份文件,写入还原数据库名称,注意此数据库名称必须与主体服务器数据库名称一致。即VirtualManagerDB。
点击选项页,勾选覆盖现有数据库。选择NORECOVERY模式
四、进行完整日志备份
执行backup LOG VirtualManagerDB to Disk = 'c:\backup\vlogback.bak'
五、一样,事务日志备份在镜像数据库上还原。镜像数据库上,点击右键——任务——还原——事务日志
六、在还原选项中选中NORECOVERY,执行还原操做。
二.配置镜像链接
1、设置安全性并启动数据库镜像会话
一、展开数据库,选择VirtualManagerDB,点击右键选择任务——镜像
二、点击配置安全性,点选是,包括见证服务器
三、去掉见证服务器,之后进行配置
四、设置主体服务器,填入端点名称为site1
五、添加镜像服务器,取端点名为site2
六、指定服务帐户为域管理员帐户(能够在域内事先配置)
七、建立成功,点击关闭
八、弹出对话框,选择不开始开始镜像
九、点选高性能模式的运行模式,点击开始镜像,查看状态显示已经同步
十、同步完成后,显示以下
至此,镜像配置完毕,接下来开始测试故障转移
2、手动故障转移测试
一、主体数据库上点击右键——任务——镜像
更改运行模式为高安全性(在高可用模式下不能进行手动故障转移)
点击右侧故障转移,提示断开全部与主体数据库的连接
一、 点击是,开始向镜像数据库还原,下图为正在执行镜像过程
四、 此时显示镜像已近完成,主体数据库被转移到了原来的镜像数据库HYTEST02。整个过程1秒钟内完成
部署见证服务器,实现自动故障转移。
1、关于见证服务器
一、若要支持自动故障转移,必须在高安全性模式下配置数据库镜像会话,而且还要具备第三个服务器实例(也称为“见证服务器”)。见证服务器是 SQL Server 的可选实例,它能使高安全性模式会话中的镜像服务器识别出是否要启动自动故障转移。与这两个伙伴不一样的是,见证服务器并不能用于数据库。见证服务器的惟一角色是支持自动故障转移。
二、为了给数据库设置见证服务器,数据库全部者为见证服务器的角色分配数据库引擎实例。见证服务器实例能够与主体服务器实例或镜像服务器实例运行于同一台计算机上,但这样会明显下降自动故障转移的可靠性。所以建议见证服务器应位于另一台计算机上。
三、在高性能模式下,见证服务器对可用性会有不利影响。若是见证服务器是针对数据库镜
像会话而配置,则主体服务器必须至少链接到一个其余服务器实例,即镜像服务器或见证服务器,或者是链接到这两个服务器。不然,将没法使用数据库,而且不能进行强制服务(可能丢失数据)。所以,对于高性能模式,咱们极力建议您始终将见证服务器设置为 OFF。
2、关于自动故障转移
一、只有在高安全性模式(“具备自动故障转移功能的高安全性模式”)下运行而且具备见证服务器的数据库镜像会话支持自动故障转移。在具备自动故障转移功能的高安全性模式下,同步数据库后,若是主体数据库变得不可用,则会发生自动故障转移。自动故障转移将致使镜像服务器接管主体服务器的角色,并使其数据库的副本联机以做为主体数据库。由于每一个在主体数据库中提交的事务同时也在镜像数据库中提交,因此须要使数据库保持同步以防止在故障转移过程当中丢失数据。
二、自动故障转移所需条件
A、数据库镜像会话必须在高安全性模式下运行,而且必须处理见证服务器。
B、镜像数据库必须已经同步。这将保证发送到镜像服务器的全部日志都已写入磁盘。
C、主体服务器已中断了与其他数据库镜像配置的通讯,而镜像服务器和见证服务器将保留仲裁。可是,若是全部服务器实例都已中断通讯,而见证服务器和镜像服务器稍后从新创建通讯,则不会发生自动故障转移。
D、镜像服务器已检测到丢失了主体服务器
E、镜像服务器检测主体服务器故障的方式取决于故障是硬故障仍是软故障。
更多自动故障转移内容参考:http://msdn.microsoft.com/zh-cn/library/ms189590.aspx
3、自动故障转移原理
一、若是主体服务器仍在运行中,则将主体数据库的状态更改成 DISCONNECTED 并断开全部客户端与主体数据库的链接。
二、见证服务器和镜像服务器将主体服务器注册为不可用。
三、若是重作队列中有任何等待的日志,则镜像服务器将完成前滚镜像数据库的操做
四、前一个镜像数据库做为新的联机主体数据库,恢复经过尽快回滚未提交的事务将这些事务所有清除。锁将隔离这些事务。
五、当前一个主体服务器从新联接到会话时,它将认定其故障转移伙伴如今拥有主体角色。前一个主体服务器接管镜像角色,并将其数据库做为镜像数据库。新的镜像服务器会尽快将新的镜像数据库与主体数据库同步。新的镜像服务器从新同步数据库后,就能够再次执行故障转移,但按反向执行。。
下图说明了自动故障转移的一个实例。
4、在见证服务器上看装SQL Server 2008
详见前一
5、配置见证服务器
一、主体数据库服务器上,右键点击数据库,选择任务——镜像
二、在弹出的数据库属性页面中,选定镜像页,点击右侧的配置安全
三、点击下一步,选择包括见证服务器
四、点击下一步,进行见证服务器配置
五、点击两次下一步,填入见证服务器地址或机器名及站点名称
六、填入服务帐户
七、查看摘要信息,点击完成数据库


6、测试自动故障转移
一、当前主体服务器为Hytest01,镜像数据库是Hytest02
二、将主体服务器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 的镜像高可用配置实例所有完成。安全

相关文章
相关标签/搜索