sql server 高可用-sql always on 部署及应用

        高可用是很多系统都需要考虑的问题,长时间运营的系统,因为服务器或者服务的挂掉导致整个系统的瘫痪,这会让用户体验很差。

        进入正题,高可用环境 linux下推荐使用keepalived,这里真的要吐槽一下windows的生态了,越来越多的系统级应用对linux的支持真的比windows体验更好,比如redis、kafka等,没办法,系统当初用的是sqlserver 这次需要在windows-sqlserver的基础上实现高可用,就用了sqlserver 2012后推的always on。其实用mirror也可以完成这种高可用灾备功能,这里只谈always on,有兴趣的可以自己去了解其他。

        首先 sql server 2012 版本以上  都可以在管理界面看到always on 高可用性这一选项,如下图:

        

       但是这个选项打开的时候会出现这种情况

        

        这是因为  always on 服务默认是关闭的,需要我们手动打开,打开服务的地址不是在服务列表之下,而是在sqlserver 配置管理器之下  如下1,2,3 。

        

        在3处右键属性,就能看到always on 高可用性选项卡,正常情况下是在这里启动always on服务。

        

        windows 系统繁琐就繁琐在这里,启动always on  需要满足的要求如上图所示,需要在服务器安装故障转移集群,而故障转移集群需要依附于域控。所以想要应用always on 需要满足如下条件

        1.三台服务器在域控中,使用域用户登陆,需要三台的目的是   两台服务器安装数据库,互为主备,另外一台位仲裁服务器,这样才能实现一台服务器挂掉自动切换的功能。

        2.为安装sqlserver 的服务器安装部署故障转移集群,需加入域,同时sqlserver服务的运行账户应该为域账户。

        具体如下图:

        

        具体步骤可以参考如下文章:

        1.域控的搭建:

            https://www.cnblogs.com/wanggege/p/4605678.html

            http://www.360doc.com/content/14/0104/22/1313469_342669945.shtml

        2.故障转移集群的搭建和always on搭建:

            http://www.cnblogs.com/lyhabc/p/4682986.html

        部署过程中遇到的问题及解决方案:

        端口问题,always on 需要三台服务器联通,其中用到了四个重要端口:135,445,1433,5022

        仲裁方式:仲裁方式分为多种,有多节点灾备,文件仲裁和磁盘仲裁三种,目前采用的是文件仲裁,也可以满足需求,有兴趣的小伙伴可以去了解一下其他两种。

        如有问题再研究。

        BINGO。

猜你喜欢

转载自my.oschina.net/u/2430726/blog/1634474