一、项目背景
在上一节中,只是介绍了虚拟化环境下IIS服务通过NLB实现Web网站的负载均衡及高可用,详情请参考链接(http://arkling.blog.51cto.com/2844506/1684191),本节我们继续对SQL的高可用进行介绍,为了方便理解,我们将网络拓扑粘贴过来:
二、实验前准备
本次通过使用Hishop网站程序对SQL进行测试,在3台SQL服务器上安装SQL(见证服务器使用的是免费的Express版本),下载Hishop软件并挂载到IIS的操作此处不再赘述,需要注意的是镜像高可用在安装SQL时每台服务器上都选择独立安装。由于预算有限,没有共享存储,所以无法使用Cluster进行SQL的高可用,本节重点介绍使用SQLServer2008R2中的镜像数据库来实现高可用。
三、两种高可用的对比
在此需要强调的一点是:技术不分好坏,只有适合不适合。下图是Cluster和镜像的对比:
可以看到,微软为了缓解中小企业购买共享存储的压力,从SQL2008开始新增了镜像这种高可用部署方式,其中需要对数据库级别的容错做特别说明:一个实例中可以有多个库,Cluster在部署的时候只需要对这一个实例进行高可用的部署,而镜像只能针对每一个库进行一次部署。比如你的默认实例中有10个库,则需要部署10次镜像设置。
三、操作步骤
1.首先通过浏览器访问NLB聚合后生成的地址10.0.0.11/24,看到安装向导到后说明IIS挂载正常。
2.检查SQL服务器和镜像服务器的SQL服务和网络配置中的TCP/IP是否正常启动
3.Express版本安装完成后,TCP/IP默认是禁用的,此处需要启用,否则在配置镜像数据库时会报错,因为TCP/IP禁用就无法通过网络对外提供服务。
4.在SQL服务器上创建一个数据库。镜像服务器推荐的操作步骤是:由于SQL服务器和镜像服务器都是独立安装所以在SQL服务器上安装完成后,将数据库备份,再到镜像服务器上进行还原操作。SQL服务器和镜像服务器后期是通过日志文件进行数据同步的。
5.在DNS中创建2条A记录,分别指向SQL服务器和镜像服务器(途中sql记录)。
6.回到步骤1,点击下一步后,填写信息。此处的数据库服务器地址填写FQDN名称。
7.走完Hishop的安装向导后,我们可以看到SQL的数据库中增加很多内容。
8.将SQL数据库服务器的hishop数据库和日志进行备份。
9.将备份好的数据库文件考到镜像服务器上进行还原。
10.在源设备中找到并勾选数据库库和日志
11.在选项中勾选覆盖现有数据库,在恢复状态处一定要选择不回滚提交事务。前面提到过,镜像服务器与SQL服务器是通过日志来实现同步的,SQL服务器在运行过程中会将日志同步给镜像服务器,而镜像服务器根据日志在对自己本身的数据库进行重播,从而达到数据库同步的效果。
12.镜像服务器上的数据库正确的情况下应显示为“正在还原”。
13.回到SQL服务器,右击hishop数据库,在任务中找到并选择镜像。
14.点击配置安全性,选择包括见证服务器,SQL通过镜像的高可用可以没有见证服务器,但是需要手动进行故障转移,镜像服务器的作用是可以自动进行故障转移。
15.确认使用镜像服务器,直接点击下一步。
16.指定SQL服务器为主体服务器实例
17.指定镜像服务器为镜像服务器实例。
18.指定见证服务器为见证服务器实例,如果见证服务器TCP/IP没有启用,则这一步会报错。
19.指定启动账户。虽然SQL镜像高可用可以部署在工作组环境下,但是在此处,域环境的优点就体现出来了。
20.下一步直到结束,看到主体、镜像、见证都配置成功后表明配置成功。
21.选择开始镜像。
22.此时能看到主体实例服务器上的数据库显示为“主体,正在同步”;镜像实例服务器上的数据库显示为“镜像,已同步/正在还原”,而作为见证服务器则不会产生任何新的数据库。至此,SQL镜像就算部署完成了。
四、效果检测
当主体实例服务器发生意外时,镜像实例服务器会从还原状态变为主体实力服务器,原来的主体服务器会变为镜像服务器并显示已断开,当故障服务器重新启动后,数据库显示会从“已断开”变为“已同步”,但是从镜像中我们能看到,主体实例服务器由原来的08Server4变成了08Server5。
本文转自 qiao645 51CTO博客,原文链接:http://blog.51cto.com/arkling/1684943