目录
一、环境
二、准备3台虚拟机server2016
三、在发布服务器fabu1上新建数据库和表
四、配置分发服务器
五、在发布服务器fabu1上创建发布
六、订阅服务器
七、查看订阅情况
八、验证数据是否同步
一、环境
用到3台虚拟机server2016,计算机名分别为fabu1、fenfa、dingyue,都安装了sql2016。
发布服务器fabu1:server2016+sql2016,IP192.168.7.107,windows用户sqluser,密码Lianrou123
分发服务器fenfa:server2016+sql2016,IP192.168.7.108,windows用户sqluser,密码Lianrou123
订阅服务器dingyue:server2016+sql2016,IP192.168.7.109,windows用户sqluser,密码Lianrou123
二、准备3台虚拟机server2016
都安装上sql server2016,sa用户密码要一致,然后分别做如下4个步操作。
1、关闭Windows防火墙,配置计算机名、IP
2、因为计算机名改了,用旧计算机名\Administrator连不上。需用新计算机名连,即fabu1\Administrator连接。(若不能则用sa连上,sa连上后新建登录名fabu1\Administrator,再按照sa权限勾上对应权限。)
3、因为改了计算机名后,sql中仍记录着旧计算机名,需要更改过来。
(1)查看当前数据库记录的计算机
select @@SERVERNAME
(2)执行如下命令更改
if SERVERPROPERTY ('servername') <> @@servername
begin
declare @server sysname
set @server = @@SERVERNAME
exec sp_dropserver @server = @server
set @server =cast(serverproperty('servername') as sysname)
exec sp_addserver @server = @server , @local = 'local'
end
(3)重启电脑后,再select @@SERVERNAME查看,此时已显示为新计算机名。
(4)在sql中,仍显示旧的计算机名,直接重命名为FABU1\Administrator。(这一步很重要,不然订阅之后,订阅服务器上看不到订阅)
4、新增sqluser用户,密码Lianrou123(也可以不新增,直接用administrator用户启动)
配置sql server服务的启动用户为sqluser,启动模式为自动
三、在发布服务器fabu1上新建数据库和表
四、配置分发服务器
1、 在分发服务器fenfa上建立共享文件夹kuaizhao,确保发布服务器fabu1和订阅服务器dingyue能访问。
2、 在分发服务器fenfa上,配置分发
这里一定要填入共享路径,而不是本地文件夹路径。
这一步添加发布服务器,先将fenfa前面的勾选去掉,然后点击添加。输入发布服务器名称fabu1,用sa用户连接,记得勾选记住密码。
连接后如下
设置分发服务器密码Lianrou123,用于发布服务器连接到分发服务器。
五、在发布服务器fabu1上创建发布
添加分发服务器fenfa
输入分发服务器名称fenfa,用sa连接,记得勾选记住密码。
这里输入刚刚设置的分发服务器密码Lianrou123
选中要发布的数据库,下一步。
发布类型:很重要,有四种,不同类型的同步不一样,这里选择事务发布。
选择要发布的对象,可以单表或多个表,也可以只选中表中的某些字段。
筛选表行,自己了解。这里不进行筛选,直接下一步。
指定运行快照代理的时间。
代理安全性
六、订阅服务器
选择发布服务器fabu1,用sa连接,记得勾选记住密码。
选择订阅的方式,推送订阅(即分发服务器推送给订阅服务器),请求订阅(即订阅服务器去向分发服务器请求)。这里选择推送订阅。
订阅服务器,因为订阅服务器上现在是没有数据库的,需要新建一个数据库,用于存储订阅的数据,数据库名称可以不一样。
新建了个数据库test,选中后点击下一步。
设置分发代理安全性
七、查看订阅情况
发布服务器fabu1上:
订阅服务器dingyue上:
表也同步过来了
分发服务器fenfa上:
共享文件夹kuaizhao里也有新生成的快照文件
八、验证数据是否同步
在发布服务器1上,给表新增数据
在订阅服务器上查看
到此,数据库复制功能完成。