通过MS SQL SERVER实现公司间数据同步

通过MS SQL SERVER实现公司间数据同步

     1. 因业务需要,需要针对不同企业的DB数据库服务器数据同步,即指定的几个数据字段保持数据一致。

     2. 同步就是保持两个表数据一致过程,但在整体业务设计时要遵循分布式CAP定理( CAP theorem: 一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance))。

     3.要整体步骤清晰,尽量不要几步并一步进行操作,因为同步数据一般都是在不同的地域,不同的服务器,服务器所属不同企业,权限一般都限制的很死,步骤不清晰出问题很难排错,并因此在不同企业间踢皮球,扯皮。

     4.相关过程示意图如下(以Microsoft SQL Server为例,本次提供思路不提供代码,有空再把代码补全):

   

       在本地服务器DB Server1上建立需要的数据View即视图(即整理要用的数据);

在本地服务器DB Server1上建立远程服务器DBserver2上的连接(服务器对象-->链接服务器

 

 

数据源就是远程服务器DB Server2新建链接服务器-->在 常规 里面设置远程服务器地址-->在 安全性 里面设置远程DB链接用户和密码

  

  

 

在本地服务器DB Server1上建立需要同步的数据表

CREATE TABLE [dbo].[Table1](
     [ItemID] [int] NOT NULL,
     [ItemName] [varchar](100) NULL
) ON [PRIMARY]

在远程服务器DB Server2上建立需要同步的数据表(因为是数据同步,所以Table2与上面的Table1结构相同。最好相同,否则逻辑上容易乱)

CREATE TABLE [dbo].[Table2](
      [ItemID] [int] NOT NULL,
      [ItemName] [varchar](100) NULL

) ON [PRIMARY]

在SQL Server代理商建立作业,并设置定期执行

 

新建作业,在常规设置作业名称,所有者,其他默认。

       在作业的步骤里面,新建作业步骤

点击 作业步骤 的 新建 按钮,进入 新建作业步骤 窗口,填入步骤名称,选择数据库,粘贴同步执行SQL代码到  命令(M)空白窗口。

(同步过程代码:从view中到DB Server1的表中,再同DB Server1到DB Server2的表中,执行的SQL代码调试好再粘贴到命令的空白处。)

  在作业属性点击计划,进入 作业计划属性。设置此处的作用是定期同步执行同步SQL代码,具体时间间隔根据业务进行设置。

 

       查看作业历史记录,有如下执行日志,证明同步的过程成功,不同企业数据同步顺利完成。

  

 

(结束)

 

 

 

原文地址:https://www.cnblogs.com/gucun-blog/p/14356862.html