虚拟化环境下对公司业务服务器实现NLB+SQL高可用(二)

一、项目背景

在上一节中,只是介绍了虚拟化环境下IIS服务通过NLB实现Web网站的负载均衡及高可用,详情请参考链接(http://arkling.blog.51cto.com/2844506/1684191),本节我们继续对SQL的高可用进行介绍,为了方便理解,我们将网络拓扑粘贴过来:

虚拟化环境下对公司业务服务器实现NLB+SQL高可用(二)

二、实验前准备

本次通过使用Hishop网站程序对SQL进行测试,在3台SQL服务器上安装SQL(见证服务器使用的是免费的Express版本),下载Hishop软件并挂载到IIS的操作此处不再赘述,需要注意的是镜像高可用在安装SQL时每台服务器上都选择独立安装。由于预算有限,没有共享存储,所以无法使用Cluster进行SQL的高可用,本节重点介绍使用SQLServer2008R2中的镜像数据库来实现高可用。

三、两种高可用的对比

在此需要强调的一点是:技术不分好坏,只有适合不适合。下图是Cluster和镜像的对比:

虚拟化环境下对公司业务服务器实现NLB+SQL高可用(二)

可以看到,微软为了缓解中小企业购买共享存储的压力,从SQL2008开始新增了镜像这种高可用部署方式,其中需要对数据库级别的容错做特别说明:一个实例中可以有多个库,Cluster在部署的时候只需要对这一个实例进行高可用的部署,而镜像只能针对每一个库进行一次部署。比如你的默认实例中有10个库,则需要部署10次镜像设置。

三、操作步骤

1.首先通过浏览器访问NLB聚合后生成的地址10.0.0.11/24,看到安装向导到后说明IIS挂载正常。

虚拟化环境下对公司业务服务器实现NLB+SQL高可用(二)

2.检查SQL服务器和镜像服务器的SQL服务和网络配置中的TCP/IP是否正常启动

虚拟化环境下对公司业务服务器实现NLB+SQL高可用(二)

虚拟化环境下对公司业务服务器实现NLB+SQL高可用(二)

3.Express版本安装完成后,TCP/IP默认是禁用的,此处需要启用,否则在配置镜像数据库时会报错,因为TCP/IP禁用就无法通过网络对外提供服务。

虚拟化环境下对公司业务服务器实现NLB+SQL高可用(二)

4.在SQL服务器上创建一个数据库。镜像服务器推荐的操作步骤是:由于SQL服务器和镜像服务器都是独立安装所以在SQL服务器上安装完成后,将数据库备份,再到镜像服务器上进行还原操作。SQL服务器和镜像服务器后期是通过日志文件进行数据同步的。

虚拟化环境下对公司业务服务器实现NLB+SQL高可用(二)

5.在DNS中创建2条A记录,分别指向SQL服务器和镜像服务器(途中sql记录)。

虚拟化环境下对公司业务服务器实现NLB+SQL高可用(二)

6.回到步骤1,点击下一步后,填写信息。此处的数据库服务器地址填写FQDN名称。

虚拟化环境下对公司业务服务器实现NLB+SQL高可用(二)

7.走完Hishop的安装向导后,我们可以看到SQL的数据库中增加很多内容。

虚拟化环境下对公司业务服务器实现NLB+SQL高可用(二)

8.将SQL数据库服务器的hishop数据库和日志进行备份。

虚拟化环境下对公司业务服务器实现NLB+SQL高可用(二)

9.将备份好的数据库文件考到镜像服务器上进行还原。

虚拟化环境下对公司业务服务器实现NLB+SQL高可用(二)

10.在源设备中找到并勾选数据库库和日志

虚拟化环境下对公司业务服务器实现NLB+SQL高可用(二)

11.在选项中勾选覆盖现有数据库,在恢复状态处一定要选择不回滚提交事务。前面提到过,镜像服务器与SQL服务器是通过日志来实现同步的,SQL服务器在运行过程中会将日志同步给镜像服务器,而镜像服务器根据日志在对自己本身的数据库进行重播,从而达到数据库同步的效果。

虚拟化环境下对公司业务服务器实现NLB+SQL高可用(二)

12.镜像服务器上的数据库正确的情况下应显示为“正在还原”。

虚拟化环境下对公司业务服务器实现NLB+SQL高可用(二)

13.回到SQL服务器,右击hishop数据库,在任务中找到并选择镜像。

虚拟化环境下对公司业务服务器实现NLB+SQL高可用(二)

14.点击配置安全性,选择包括见证服务器,SQL通过镜像的高可用可以没有见证服务器,但是需要手动进行故障转移,镜像服务器的作用是可以自动进行故障转移。

虚拟化环境下对公司业务服务器实现NLB+SQL高可用(二)

15.确认使用镜像服务器,直接点击下一步。

虚拟化环境下对公司业务服务器实现NLB+SQL高可用(二)

16.指定SQL服务器为主体服务器实例

虚拟化环境下对公司业务服务器实现NLB+SQL高可用(二)

17.指定镜像服务器为镜像服务器实例。

虚拟化环境下对公司业务服务器实现NLB+SQL高可用(二)

18.指定见证服务器为见证服务器实例,如果见证服务器TCP/IP没有启用,则这一步会报错。

虚拟化环境下对公司业务服务器实现NLB+SQL高可用(二)

19.指定启动账户。虽然SQL镜像高可用可以部署在工作组环境下,但是在此处,域环境的优点就体现出来了。

虚拟化环境下对公司业务服务器实现NLB+SQL高可用(二)

20.下一步直到结束,看到主体、镜像、见证都配置成功后表明配置成功。

虚拟化环境下对公司业务服务器实现NLB+SQL高可用(二)

21.选择开始镜像。

虚拟化环境下对公司业务服务器实现NLB+SQL高可用(二)

22.此时能看到主体实例服务器上的数据库显示为“主体,正在同步”;镜像实例服务器上的数据库显示为“镜像,已同步/正在还原”,而作为见证服务器则不会产生任何新的数据库。至此,SQL镜像就算部署完成了。

虚拟化环境下对公司业务服务器实现NLB+SQL高可用(二)

虚拟化环境下对公司业务服务器实现NLB+SQL高可用(二)

虚拟化环境下对公司业务服务器实现NLB+SQL高可用(二)

四、效果检测

当主体实例服务器发生意外时,镜像实例服务器会从还原状态变为主体实力服务器,原来的主体服务器会变为镜像服务器并显示已断开,当故障服务器重新启动后,数据库显示会从“已断开”变为“已同步”,但是从镜像中我们能看到,主体实例服务器由原来的08Server4变成了08Server5。

虚拟化环境下对公司业务服务器实现NLB+SQL高可用(二)

虚拟化环境下对公司业务服务器实现NLB+SQL高可用(二)虚拟化环境下对公司业务服务器实现NLB+SQL高可用(二)



本文转自 qiao645 51CTO博客,原文链接:http://blog.51cto.com/arkling/1684943

上一篇:Dataphin流批一体的实时研发


下一篇:企业级java代码生成器 MagicalCoder