文章参考百度过的文章,现在忘了具体哪篇,感谢其分享,这里根据自己的操作和遇到的问题整理一下。
     需求:在两个不同的SQL SERVER 2012的服务器之间进行数据访问和更新。我们需要把SourceData的数据插入到TargetData的服务器上去,一天执行一次任务。我们的首选方案是在两个服务器之间建立链接服务器。
     操作:定时全量的把SourceData的数据插入到TargetData里去。这里涉及到需要把TargetData里的表的信息做删除操作,由于delete表需要记录详细的日志 (用于回滚),而当表比较大时,而且每天都做一次删除会产生庞大的日志数据占用内存,所以这里不采用delete操作,而用truncate来删除表。
     两个服务器的配置:
Server one: DB Version: 2012 Server IP: 192.168.2.200 Souce Database
Server two: DB Version: 2012 Server IP: 192.168.1.56  Target Database
     我们可以在任意一个服务器上建立链接服务器,但是是有区别的。区别体现在处理数据的时候。
     方法一:在源数据库服务器上建立一个链接服务器,让源数据库主动的把数据push到目标数据库中。
 
1、在源数据库服务器上建立链接服务器。【服务器对象】-【链接服务器】-右键【新建链接服务器(N)...】-【常规】(如下图)
 
 
 
 
注 意:链接服务器IP:192.168.1.65是目标数据库,建立这个链接服务器准备直接访问192.168.1.65的服务器上的数据库表。由于这里是 SQL SERVER 2012 到SQL SERVER 2012数据库,所以服务器类型选择SQL Server。
 
2、选择【安全性】设置登录用户和密码,添加一个本地服务器登录到远程服务器的登录映射。然后【确定】(如下图)
 
 
3、这时可以看到了一个192.168.1.56的链接服务器。右键【测试连接(T)】(如下图)
 
 
4、如果出现如下对话框则说明配置正确(如下图)
 
 
  在源数据库服务器上建立一个job主动的把数据push到目标数据库里去。
5、新建立作业:【SQL Server 代理】-【作业】-右键【新建作业(N)...】
 
 
6、在【常规】中为作业起个名称(如下图)
 
 
7、点击【步骤】,然后点击【新建(N)...】创建作业步骤(如下图)
 
 
8、编辑步骤(如下图),然后【确定】
从源数据库push数据到目标数据库的sql语句:
truncate table [192.168.1.56].TargetData.[dbo].[TargetTable]
go
insert into [192.168.1.56 ].TargetData.[dbo].[TargetTable ] select * from SourceData.[dbo].[SourceTable]
go
 
 
9、新建作业计划(如下图),然后【确定】
 
 
10、最终【确定】就可以了(如下图)
 
 
11、执行SQL JOB,右键点击刚新建的作业【PushDataToTarget】-【作业开始步骤(T)...】(如下图)
 
 
12、结果出现下面的问题(如下图)
 
 
13、然后去查看日志右键点击【PushDataToTarget】-【查看历史记录(V)】(如下图)
 
 
 
 
=============================================================
 
 
     方法二:在目标数据库服务器上建立一个链接服务器,让目标数据库主动的把数据pull到源数据库中。
 
1、创建链接服务器 参照上方的方法,并测试链接成功。然后在目标数据中新建作业,如下图
 
 
2、新建步骤(如下图)
从源数据库pull数据的sql语句:
truncate table TargetData.[dbo].[TargetTable]
go
insert into TargetData.[dbo].[TargetTable ] select * from [192.168.2.200].SourceData.[dbo].[SourceTable]
go
 
 
 
3、新建计划(如下图)
 
 
4、最终【确定】
 
 
5、右键点击【PullDataFromSource】-【作业开始步骤(T)...】
 
 
6、执行结果如下
 
 
7、再查看日志如下
 
 
8、表明执行结果是成功的。从上面的操作中可以总结出:
链接服务器的两个特点:
1.通过链接服务器不能删除(including truncate)链接源服务器的任何对像.
2:能过链接服务器可以对链接源服务器的表进行insert,updae,delete操作.
 
2015.10.30 10:26 willem SqlServer2012 数据库同步的两种方式(SQL JOB + 建立链接服务器)

SqlServer2012 数据库的同步之SQL JOB + 建立链接服务器的更多相关文章

  1. Sql Server建立链接服务器访问Access的MDB数据库

    EXEC master.dbo.sp_addlinkedserver @server = N'test', @srvproduct=N'OLE DB Provider for Jet', @provi ...

  2. 用sp_addlinkedserver建立链接服务器(sql server2008中通过测试)

    --在SQL SERVER 2008里,可以按以下的方式建立链接服务器 ? EXEC  sp_addlinkedserver          @server='Test',--这里是给链接服务器取的 ...

  3. [翻译]——SQL Server使用链接服务器的5个性能杀手

    前言: 本文是对博客http://www.dbnewsfeed.com/2012/09/08/5-performance-killers-when-working-with-linked-server ...

  4. sql server 使用链接服务器连接Oracle,openquery查询数据

      对接问题描述:不知道正式库oracle数据库账户密码,对方愿意在对方的客户端上输入账号和密码,但不告诉我们 解决方案:使用一台sql server作为中间服务器,可以通过转存数据到sql serv ...

  5. SQL Server的链接服务器(MySQL、Oracle、Ms_sql、Access、SYBASE)

    原文:SQL Server的链接服务器(MySQL.Oracle.Ms_sql.Access.SYBASE) 一.使用 Microsoft OLE DB Provider For ODBC 链接MyS ...

  6. sql server 2012 链接服务器不能链接sql server 2000的解决方案 ,

    本数据源来自 https://www.kafan.cn/edu/922556.html  目的为了备忘 把原来的sql server 2005直接装成了2012,然后在建立链接服务器链接一台sql s ...

  7. SQL Server 远程链接服务器详细配置

    原文:SQL Server 远程链接服务器详细配置[转载] http://hi.baidu.com/luxi0194/blog/item/a5c2a9128a705cc6c2fd7803.html - ...

  8. SQL Server创建链接服务器

    1.通过sql语句创建链接服务器,数据是sql server的 EXEC sp_addlinkedserver @server='test', --链接服务器别名,自定义 @srvproduct='' ...

  9. sql server 2005 链接服务器:未将服务器 配置为用于 RPC

    原文:sql server 2005 链接服务器:未将服务器 配置为用于 RPC  RPC: 远程过程调用(Remote Procedure Calls) --LinkedServer.Rpc 属性: ...

随机推荐

  1. 安装swoole 扩展,在phpinfo中显示,但是php -m 中不显示的问题

    步骤如下: 1 首先找到php.ini的目录:linux命令:find / -name php.ini 我的路径如下:

  2. csrf跨站请求伪造

    如何杜绝跨站请求伪造? 1.要让服务器知道本次请求是不是冒用了用户的身份→ 2.服务器发给用户一个凭证,用户请求时需携带此凭证→ 3.此凭证只能用户看到而且冒用者看不到→ 4.这就用到了浏览器的安全机 ...

  3. 关于PHP学习的各种网站

    http://www.shouce.ren/ 各种开发手册 http://yii2.techbrood.com/guide-upgrade-from-v1.html yii2.0和之前版本的区别htt ...

  4. Tire树入门专题

    POJ 3630Phone List 题目连接:http://poj.org/problem?id=3630 题意:问是否有号码是其他号码的前缀. #include<iostream> # ...

  5. 5ucms后台调用标签

    <%=Rs.Data(1,i)%>栏目 <%=Rs.Data(2,i)%>标题 <%=Rs.Data(3,i)%>推荐 <%=Rs.Data(4,i)%> ...

  6. doT.js源码解读

    doT.js非常的简洁.全部代码也就200行不到.它的基本思路就是通过强大的正则表达式,把模块转变成可执行的函数,动态生成html字符串.核心new Function(c.varname, str); ...

  7. ubuntu与win10互换硬盘

    实例:将sdb上的ubuntu转移至sda,将sda上的win转移至sdb1. 备份资料2. 制作老毛桃PE盘3. 格式化sda4. dd if=/dev/sdb of=/dev/sda ,将sdb克 ...

  8. vuex2.0.0爬坑记录 -- mutations的第一个参数state不能解构

    今天在学习vuex的过程中,遇到了一个很困扰人的问题,最终利用vuex的状态快照工具logger解决了问题. 问题是这样的,我在子组件中使用了mapState()函数来将状态映射至子组件中,使子组件能 ...

  9. c# DataTable 转为 List 类型

    代码: public class ModelConvertHelper<T> where T : new() { public static IList<T> ConvertT ...

  10. GDB常用命令

    一. gdb使用流程 1.编译生成可执行文件 gcc -g hello.c -o hello 2.启动gdb gdb hello 3. 在main处设置断点 break main 4.运行程序 run ...