sql server 做为目前主流的数据库,用户遍及世界各地。sql server也有一些比较成熟的主备方案,目前主要有:复制模式(发布-订阅模式)、镜像传输模式、日志传输模式、故障转移集群。后面会一一介绍介绍各自的优缺点。html
(一)复制模式sql
复制模式也被称为发布-订阅模式,是由主服务器进行发布消息,备份服务器进行订阅,当主服务器数据发生变动时,就会发布消息,备份服务器读取消息进行同步更新,中间过程延迟比较短。数据库
复制方式是之前很常见的一种主备,速度快,延迟小,能够支持部分同步等优势,可是也有一个很明显的缺点,由于是部分同步,若是是表修改,能够主动同步,可是若是是新增表、视图等操做,必须在发布属性中,将新加的表或者视图添加到同步配置中,不然对这个表作的任何操做都不会同步。服务器
复制模式同步,要求数据库名称和主机名称必须一致,不然查找不到数据库主机;要求数据库不能使用端口,必须是能够经过ip直接访问的;架构
主要分为如下4种发布方式:并发
1.快照发布性能
快照发布,就是将全部要发布的内容,作成一个镜像文件,而后一次性复制到订阅服务器,两次快照之间的更新不会实时同步。这种方式占用带宽较多,所以比较适用内容不是很大,或者更新不须要很频繁的场景日志
2.事务发布/具备可更新订阅的事务发布server
事务发布,是在第一次设置好事务复制以后,全部发布的内容都会进行镜像快照,订阅服务器收到已发布数据的初始快照后,发布服务器将事务流式传输到订阅服务器。当主服务器数据发生变动时,会经过日志传递同步给订阅服务器,数据近似于同步更新。htm
此方式会对主服务器性能形成很大影响(实时同步每次变动,而不是最终变动),适用于对数据及时性要求比较严格主备方案,可是目前已被微软提供的集群Always On所取代。
3.合并发布
合并发布是至关于两台都是主服务器,均可以对数据进行更新修改等操做,而后定时将发布服务器上的内容与订阅服务器上的内容进行合并,并根据配置保留相应内容,此种不多用。
(二)镜像传输模式
数据库镜像传输,严格来讲不是主从架构,而是主备架构,将两台数据库服务器经过一台中间监控服务器关联起来,两台服务器经过镜像文件,实时同步数据(有延迟,延迟很短)。当主服务器宕机以后,监控服务器自动切换到备份服务器上。
此方案优势是能够快速的切换主备方案,相比较Always on集群,能够不用共享磁盘便可实现,避免了数据库集群存储单点故障,致使整个集群崩溃。
缺点也很明显,不管是主备服务器,要实现同步操做,都是依赖于性能低的那一端,所以两台服务器都要是高性能的才能够保证同步的及时性;同时备份服务器只是备份和故障转移,不能提供从服务器的只读访问,所以才说是主备服务器,并且是一对一,只能有一台备份服务器。
(三)日志传输模式
与镜像传输模式相似,是将主数据库日志备份,发送到从服务器上,而后从服务器还原日志,更新数据。
此方式优势在于从服务器能够有多台从服务器,并且当主服务器脚本操做异常后,只须要在日志同步以前,及时拦截日志传输,便可保留从服务器数据,减小灾难损失;此方式相较于“复制发布”模式,还有一个有点就是不管是新增表、视图等等,都会经过日志同步给从服务器,而复制模式不行
而相应的缺点就是经过日志备份传输,在还原,会有较大的时间延迟。并且没法自动转移故障,只能手动转移。
(四)故障转移集群
集群技术是微软提供的,可用性最高的主备方案。它是将多台服务器经过一个共享的外部存储区域(SAN),链接成一个资源共享的服务器群体,数据库文件和实例,都存放并运行在该共享区域节点上,每台服务器至关于一个节点,共同访问共享的节点实例。服务器只有一个节点处于活动状态,当活动节点出现故障,会有其余节点主动启动,取代当前故障点,整个过程只须要几秒钟,用户没法感知。
集群有不少优势,是目前最高效的高可用技术,可是他也有很明显的缺点,全部的节点,都依赖于共享节点实例,若是共享节点出现故障,将会致使整个集群失去做用,且很难恢复。
文章借鉴
https://www.cnblogs.com/CareySon/archive/2012/06/20/IntroductToSQLServerReplicationPart1.html