关于SQL复制的具体操作步骤网上有很多教程我就不说明了,这里主要记录下我的实践,以及过程中遇到的问题与解决方法:
本机不同数据库间复制
本机配置基本没有遇到太多阻止,只要注意SQL Server和Agent服务的运行账号权限给高一点即可
与虚拟机实例之间实现复制
宿主机版本SQL 2014,虚拟机版本SQL 2012(命名实例),平时要显式加入1433端口才能连接成功。宿主机新建事务复制类型的发布,然后在发布的项目下直接新建对应的订阅,中途要输入连接到虚拟机实例的SQL认证方式。
订阅配置中不能加入端口号,查找资料发现可以用别名(Aliases)解决:
删除发布报错
实验完毕,删除发布时,报错:主体dbo不存在,此主体无法被模拟……,解决方案是更改数据库授权:
ALTER AUTHORIZATION ON DATABASE::DBName TO sa
各类复制的选择策略
快照复制
更新通常在短期内进行,可整理数据量比较小,可以接受一定时间的滞后事务复制
最常用的一种方式,需要较短的同步时间、发布服务器有大量的DML操作、发布/订阅其中之一不是SQL Server数据库(支持Oracle等数据库)合并复制
多个数据库分布在不同的地点,每个地点都有数据更新,而且可能会有冲突,存在有节点脱机更新数据,然后重新连接同步的情况,你有检测和解决冲突的能力点对点复制
多个数据库分布在不同的地点,基本有一个节点的数据更新,要需要将更新同步到其他数据库,基本不会有数据冲突