要实现Sqlserver双活不是一件简单的事情,什么是双活,就是两边都活着,两边都可以访问,也就是A服务器部署一个sqlserver服务,B服务器部署一个sqlserver服务,两边数据双向同步保持一致,当A数据库服务挂掉以后,B服务器可以顶替继续提供服务。Sqlserver自带的订阅发布,其中的对等发布就是双向同步,应该可以实现双活,但是我没成功部署过,网上教程很多,基本上都是坑爹,报错很多,所以我说Sqlserver双活不是一件简单的事情,不像Mysql,几个命令可以搞定双主架构,虽然配置起来也比较繁琐。
另外一种方案是AlwaysOn,具体我也没尝试过,感觉有点复杂,网上教程也很多,当然基本上也是坑爹,太复杂了,有那个时间我不会去做这种高时间成本的事情。而且我是sqlserver 2008r2,AlwaysOn得高版本才能部署,这个方案基本上也是Pass了,看来Sqlserver双活真不是嘴巴说说的事情。
其他方案基本上只能靠第三方软件来实现了,我也在网上找了一些Sqlserver同步软件,首先全量同步的软件肯定就先pass,负载太重,要做双活,肯定得增量同步,但增量同步找下来基本上都是单向同步的,估计双向同步实现起来太复杂了,没那个实力。只找到了一款PanguSync,用下来还可以,唯一不足的是具有一定侵入性,但对于能实现Sqlserver双活来讲,这个都是毛毛雨了。还有需要注意,这个软件只能支持固定单个节点 写入,即要么固定A写入,要么固定B写入,不能一会儿A写,一会儿B写,但是一写多读还是可以的。