SQLServer 中发布与订阅

  在对数据库做迁移的时候,会有很多方法,用存储过程,job,也可以用开源工具lettle,那么今天这些天变接触到了一种新的方法,就是sqlServer中自带的发布与订阅

  首先说明一下数据复制的流程。如下图A是(192.168.210.170)上的数据库,B是(172.23.100.109)上的数据库。把B当作数据源,然后A从B上获取数据。

     发布前准备:首先两个服务器之间要能相互通讯,也就是能ping命令能通。

         平时我们链接数据库的时候,经常都是用的ip登陆,但是发布的时候不能这样,必须用服务器名称,不然会报错,如下图。

        

        解决办法有两种:

             第一种方法(远程):①分别查询数据库服务器的名称查询语句“select @@SERVERNAME”。

                                         ②AB两个服务器分别远程桌面登陆上。

                                         ③用服务器上的Management studio去连接本机的数据库注意:不能用ip去链接,用第一步查出来的名称连接)。

                                         ④之后按下面步骤进行发布订阅

             第二种方法(本地):①分别查询数据库服务器的名称查询语句“select @@SERVERNAME”。

                                               用我本地的计算机C,找到C:\Windows\System32\drivers\etc这个路径,将在hosts文件中将A的ip地址和第一步查询 出来的服务器名称添加进去,B也是。这也就是映射。

               ③打开本地的Management studio,去连接AB两个数据库这里也应该用查询服务器名称)。

               ④之后按下面步骤进行发布订阅

           这里本实验选择的是第二种方式,接下来就正式开始了。

 

1.发布

      

  

①在数据库B服务器下找到【复制】-【本地发布】-【新建发布】。

  

②选择要发布的数据库

  

③选择发布类型,这里选择快照发布。

  

④选择发布的内容,即要发布哪些数据。

  

 ⑤进行数据筛选,可以在这一步就行条件过滤,当然也可以不设置条件,选取所有数据。

      

⑥设置快照代理并更改同步频率

  

    

⑦安全性设置,即配置登陆类型,登陆账户密码。

  

 

  

⑧给发布名称一个名字,我起了个LS(李四)

   

  

  最终,到这一步,发布算是完成了,接下来就开始看订阅

 2.订阅

    订阅是对刚才发布的快照进行同步,即将数据源数据同步到目标数据库

①在服务器A上,【复制】-【本地订阅】-【新建订阅

  

 

②选择订阅发布

  

  

③选择分发代理的位置,选择一个简单的推送订阅

  

 

 ④设置订阅服务器的目标数据库

  

⑤设置代理安全性,即订阅服务器的账户密码。

  

⑥设置同步计划,这里选择连续运行。

  

⑦点击完成,订阅配置完成。

  

⑧查看监视。在【本地发布】-【启动复制监视器】,点开就能查看快照的运行状态,和其他详细信息。

    

  

 

 

  至此,发布与订阅都已完成。在服务器A中One这个数据库中,会发现多了一张aaa的数据表,这表示B服务器的数据传到A上了。当在服务器B修改aaa表中的记录(源数据)时,A里面的记录(目标数据)也会改变。

总结:搞了几天这个数据发布与订阅,但是感觉这个并不是很好用,灵活性上不好,感觉都不如kettle这种开源软件用着方便。

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...