dotnetgeek 阅读(5) 评论(0)
前 言:
    很多情况下,虽然我们的站点、APIService、Redis等已经做成了分布式架构,但是SQLServer依然还是单体结构,当出现网络异常、服务器宕机时便存在极大的风险,这时候我们需要一种SQLServer故障转移技术,当A数据库服务器出现故障的时候,能迅速将请求转移到B数据库服务器上面去,从而保证系统的高可用。 
 
一、准备工作
 
1、准备一个域账号
2、准备三台机器,均在同一域环境中,都安装上SQLServer2008实例,最终搭建出来的架构如下图所示
 

 

二、基本配置步骤
 
1、在服务中列表中找到SQL Server ,属性->登录-> 选择“此账号”,浏览输入域账号配置该服务的登录账户。

 

2、在SQLServer->Security->Logins,将域账号设为sql的登录账户

3、点击 "Facets",启动 “外围应用配置器”

4、将RemoteDacEnabled设为true

 

注:在镜像服务器、见证服务器也同样执行以上步骤
 
 
三、主服务器备份数据库到镜像服务器
 
在主服务器对数据库进行备份前,需要对数据库进行设置,将恢复模式设置为“完整”,备份好之后,在镜像服务器中进行还原数据库操作。

 

四、主服务器、见证者、镜像服务器配置
 
接下来要配置主服务器、见证者、镜像服务器三者之间的角色关系,需要使用那个域账号登录操作系统进行操作。
 

点击Configure Security 开始配置向导

 

 向导询问:是否包含见证服务器,这里我们选择Yes

主要包含以下安装实例:主服务器实例、镜像服务器实例、见证服务器实例。

 

点击Next,接下来确认主服务器信息,主服务器就是本机,因为不能修改。

 

Next 下一步选择镜像服务器,点击Connect会弹出镜像服务器SQLServer登录框,使用准备好的域账号进行登录即可。

 

同理操作,选择见证服务器

 

配置完成

Principal:主服务器

Mirror:   镜像服务器

Witness:见证服务器

点击Star Mirroring 开始镜像工作

 

从数据库列表可以看到,现在这台电脑已经是主服务器的状态了。

 

 
如何测试故障转移:
1、数据库->Tasks->Mirror ,点击FailOver能让当前主服务器变成故障状态,主服务器数据库状态就变成了Mirror镜像,镜像服务器就变成了 Principal主服务器;
2、拔网线,拔掉主服务器的网线,见证服务器监测到之后,自动将镜像数据库服务器升级为主服务器。