当前位置: 代码迷 >> SQL >> SQL 2012 发布与订阅实现数据同步 图解(解决 异常22022)
  详细解决方案

SQL 2012 发布与订阅实现数据同步 图解(解决 异常22022)

热度:73   发布时间:2016-05-05 10:44:45.0
SQL 2012 发布与订阅实现数据同步 图解(解决 错误22022)

 

概念参见:https://msdn.microsoft.com/zh-cn/library/ms151170.aspx

推送订阅 

对于推送订阅,发布服务器将更改传播到订阅服务器,而无需订阅服务器发出请求。

  更改可以按需、连续地或按照计划推送到订阅服务器。 分发代理或合并代理在分发服务器上运行。

  • 通常,数据将连续同步或按照经常重复执行的计划同步。   

  • 发布要求数据近似实时地移动。  

  • 分发服务器上较高的处理器开销不会影响性能。 

  • 通常与快照和事务复制一起使用。       

请求订阅

对于请求订阅,订阅服务器请求在发布服务器上所做的更改。

请求订阅允许订阅服务器上的用户确定同步数据更改的时间。 分发代理或合并代理在订阅服务器上运行。

  • 数据通常按需或按计划同步,而非连续同步。    

  • 发布具有大量订阅服务器,并且/或在分发服务器上运行所有代理会消耗大量资源。 

  • 订阅服务器是自主的、断开连接的和/或移动的。     订阅服务器将确定连接和同步更改的时间。

  • 通常与合并复制一起使用。   

 

1.环境准备

1.WIN7+SQL 2012 两台机器

如:10.58.8.114  登陆账号 TestB    10.58.8.96  登陆账号 TestA

2.新建两个数据库实例:

如: 10.58.8.114       实例名 TestB     10.58.8.96  实例名 TestA

3.两台机器创建相同的 登陆账号和密码,并将其加入到管理员权限  (解决 错误22022)

4.设置 SQL SERVER 服务登陆账号为当前管理员账号(发布服务器和订阅服务器都要设置)(解决 错误22022) 

5.设置 SQL SERVER 代理 登陆账号为当前管理员账号并为自动启动(发布服务器和订阅服务器都要设置)(解决 错误22022) 

6.确保两台机器能够PING ,端口也是互通

7.两台机器创建数据库 TestPublishA

8.发布服务器创建表TableA 并向其写入数据,创建视图ViewA

 

准备工作完毕,下面实现发布主体

2.实现发布主体

主体数据库>>复制>>本地发布>>右键

选择发布的数据库 TestPublishA

快照发布

选择发布对象,表、视图、存储过程等。

查看项目问题 忽略

筛选表行 忽略

快照代理,我这边没有做计划,计划坐在 订阅服务器上

代理安全设置 我已经配置了代理服务启动为当前计算机管理员 .\TX

创建发布

 

完成

 

3.实现订阅主体

订阅数据库>>复制>>本地订阅>>右键>>新建订阅

下一步

查找发布服务器

选择发布

设置订阅向导

设置订阅数据库

设置分发代理安全性

设置同步计划

订阅初始化

完成

4.发布与订阅状态查看

1,发布服务器 右键>>启动复制监视器

可以看到其运行状态如下

2.订阅服务器

右键>>查看同步状态

监视

 

5.数据有效性

在发布服务器上添加数据

在订阅服务器上添加数据

等待订阅同步完成后 ,我们可以看到 订阅后的数据 以发布数据为准,如下

本文来自  释迦苦僧  http://www.cnblogs.com/woxpp/p/4293955.html

1楼东呈酒店集团
2012有alwayson,还用这种同步复制,配置麻烦,遇到性能问题可能导致同步报错,整死人
Re: 无 影
@东呈酒店集团,您好,请问一下复制与订阅对性能的损耗大不大?
Re: 释迦苦僧
@东呈酒店集团,是的,我也是没时间学习学习 了解下而已