(一)测试目的
目前公司使用的SQL SERVER 2012高可用环境为主备模式,其中主库可执行读写操作,备库既不可写也不可读,即采用的高可用技术为“数据库镜像”。存在的问题为:开发人员需要登录到生产服务器上去确认数据,无法保证数据安全。因此,需要搭建一种主备模式,保证备库可读,从而让开发人员在不接触生产环境的情况下也能通过备库校验数据的正确性。
(二)技术选择
经过确认,SQL Server2012的高可用主要有以下方案:
高可用技术 |
优势 |
劣势 |
最终选择 |
SQL Server集群 |
多台服务器组成一个集群,可保证一个节点出故障,其它节点仍正常运行 |
集群使用共享存储,存储故障会导致整个集群出故障 |
不符合本次主备分离的特点。 |
日志传送 |
通过主库的日志恢复备库,可保证主备库数据一摸一样 |
备份作业每隔一段时间触发一次,所以不是实时的 |
日志恢复有延迟,无法查到最新的数据 |
数据库镜像 |
可保证主备库数据一摸一样 |
镜像数据库是一个一直处于“恢复”状态的数据库,因此不能直接访问 |
备库无法访问,不符合要求 |
复制-->快照复制 |
直接同步数据库某一时刻的整个状态 |
数据有延迟、需要保证整体数据量小,数据量大的时候速度非常慢 |
不符合要求 |
复制-->事务复制 |
通过日志读取代理和分发代理程序,将发布服务器上的数据更改和架构修改几乎实时传递给订阅服务器; |
暂时无 |
符合要求 |
复制-->合并复制 |
允许用户同时修改订阅服务器和发布服务器上的数据,并把这些修改合并成一个统一的结果 |