现在我有一个需求是需要在两个不同的SQL SERVER 2012的服务器之间进行数据访问和更新。我们需要把Server One的数据插入到Server Two的服务器上去,一天执行一次任务。我们的首选方案是在两个服务器之间建立链接服务器,下面介绍下如何建立链接服务器。我需要做的事情是,我需要定时的全量的把Server one的数据插入到Server Two里去。所以这里就涉及到需要把Server Two里的表的信息做删除操作,由于我们都知道delete表是需要记录日志,他是为了回滚用的。所以要记录详细的日志。由于我此表比较大,而且每天都做一次删除,我也不需要写日志。所以我不想用delete操作,我想用truncate来删除表。这就是故事的有趣的点。

如何SQL Server 2012建立链接服务器

两个服务器的配置:
Server one:
DB Version: 2012
Server IP: 192.168.21.252 
Souce Database
Server two:
DB Version: 2012
Server IP: 192.168.25.210
Target Database
我们可以在任意一个服务器上建立链接服务器,但是是有细微的区别的,下面看我在处理数据的时候遇到的问题,此问题让我了解到在任意一个服务器上建立链接服务器是有区别的。
 

方法一:我在源数据库服务器上建立一个链接服务器,我想让源数据库主动的把数据push到目标数据库中。

1,建立链接服务器

在源数据库服务器上建立链接服务器如下:
注意:链接服务器IP:192.168.25.210是我的目标数据库,建立的这个链接服务器就想直接访问192.168.25.210的服务器上的数据库表。由于我是SQL SERVER 2012 到SQL SERVER 2012数据库,所以服务器类型选择SQL Server。
需要添加一个本地服务器登录到远程服务器的登录映射。
这个时候我们看到了一个192.168.25.210的链接服务器了。
可以测试下链接服务器是否链接成功。

2, 在源数据库服务器上建立一个job主动的把数据push到目标数据库里去。

a, 新建立作业
b,编辑步骤
我从源数据库push数据到目标数据库的sql语句是:
truncate table [192.168.25.210].BI.[dbo].[BIU8_GL_ACCVOUCH]
go
insert into [192.168.25.210].BI.[dbo].[BIU8_GL_ACCVOUCH] SELECT * FROM BI.DBO.[BIU8_GL_ACCVOUCH]
go

c,新建作业计划

我修改了下计划的执行时间,让他立马执行下这个job.下面问题来了。如下图:

下面我把job里的脚本放到查询分析器里执行了下,执行结果让我很迷茫。如下图:

从上图的错误提示可以看出这个语句是有问题的不可以这么执行的。 但是这个语句的语法是没有错的。truncate table [192.168.25.210].BI.[dbo].[BIU8_GL_ACCVOUCH],我一开始怀疑是否不可以这么执行SQL 语句,如是我执行了下面的语句

从上面可以看出链接数据库的写法是正确的,因为delete from [192.168.25.210].BI.[dbo].[BIU8_GL_ACCVOUCH]删除目标数据库的表示成功的。因为我说了,我不想用delete来删除数据表,这样会产生很多的日志的。我希望用truncate删除数据。于是我用方法二来再做一次。

方法二:我在目标数据库服务器上建立一个链接服务器,我想让目标数据库主动地从源数据库中把数据pull到自己的数据库中。

1,在目标库服务器上(192.168.25.210)建立链接服务器,连接服务器(192.168.21.252)如下图,具体步骤请参考上面的方法。

2,测试链接服务器是否链接成功

3,在目标数据库服务器上建立一个job主动的把源数据库的数据pull到自己的数据库里来。关于如何建立job的细节可以参考上面的步骤。

4,新建立作业名:pull_data_from_target_db

5,具体的作业步骤代码如下图:

我从目标数据库pull源数据库的sql语句是:
truncate table BI.[dbo].[BIU8_GL_ACCVOUCH]
go
insert into BI.[dbo].[BIU8_GL_ACCVOUCH] SELECT * FROM [192.168.21.252].BI.DBO.[BIU8_GL_ACCVOUCH]
go

6,新建立作业计划

7,查看job的执行情况如下图:

从上面2014/12/19 9:48:02就是我刚才执行的,它成功的执行了job。可以看出下面的语句是执行成功的。
truncate table BI.[dbo].[BIU8_GL_ACCVOUCH]
go
insert into BI.[dbo].[BIU8_GL_ACCVOUCH] SELECT * FROM [192.168.21.252].BI.DBO.[BIU8_GL_ACCVOUCH]
go


所以从上的操作中可以得出如下的非常重要的结论:

链接服务器有两个特点: 
   1:通过链接服务器不能删除(including truncate)链接源服务器的任何对像. 
   2:能过链接服务器可以对链接源服务器的表进行insert,updae,delete操作.

转载请注明来自: http://blog.csdn.net/waterxcfg304/article/details/42004753
 
关于如何通过SQL SERVER2012来创建链接服务器到ORACLE数据库请参考:http://blog.csdn.net/waterxcfg304/article/details/43162403

SQL Server链接服务器(一台机器SQL Server登陆,同时映射登陆到另外一台远程服务器的数据库)相关推荐

  1. 基于阿里云服务器环境搭建到项目上线系列文章之一——putty使用秘钥登录远程服务器

    基于阿里云服务器环境搭建到项目上线系列 前言:最近购买了域名和一台阿里云服务器准备做点东西放上去,所以准备把环境搭建到项目上线的过程记录下来,计划一个系列6篇文章 基于阿里云服务器环境搭建到项目上线系 ...

  2. 一台机器起多个filebeat_全自动多色丝印机一台多少钱?

    全自动多色丝印机运用在于几种领域当中,其中比较常见的应该就是包装行业了.比如我们日常生活中,经常看到的洗发水外壳上,化妆品外壳上,膏霜瓶瓶身上等地方的图文,都是使用全自动多丝印机印刷来的.全自动多色丝 ...

  3. aws linux使用ssh登陆_【Linux】 使用ssh连接远程服务器

    [Linux] 使用ssh连接远程服务器 前言:SSH,英文全称是Secure Shell Protocol(安全的壳程序协议).SSH是现在公司基本上都在使用的一种文字接口的加密传输技术,采用的是非 ...

  4. 怎么配置android远程服务器地址,在 Android studio 中 配置Gradle 进行 “动态编译期间,指定 远程服务器地址 ,生成多个安装包”...

    需求: 在产品开发中,经常需要发布各个版本,每个版本的服务器地址有不同的服务器地址.比如 开发服务器使用 192.168.1.232服务器, 测试服务器使用 192.168.1.245服务器, 正式上 ...

  5. SQL SERVER 链接服务器

    1.當您嘗試從 64 位元 SQL Server 2005 用戶端對連結 32 位元 SQL Server 2000 伺服器執行分散式查詢時,可能會收到錯誤訊息 64位到32位需要在32位的系统上打上 ...

  6. 如何实现一台机器上运行多个MySQL实例?

    在一台机器上一个MySQL服务器运行多个MySQL实例有什么好处?这里我先入为主给大家介绍这样做至少存在两个好处(看完这篇文章后理解会更透彻): (1)减轻服务器链接负担 (2)为不同的用户提供不同的 ...

  7. 将mysql数据库拷贝到另一台机器_mysql数据库迁移到另一台电脑上

    解决办法 mysql要转换到另一台机器上面,最重要的要考虑以下几个问题 1.数据库使用什么存储引擎,如果是myisam的话,可以把data目录复制移走.但如果是innodb的话,千万不要用这种方法,会 ...

  8. 基于 keepalived 实现两台机器服务(主备)故障自动切换

    前言 本文要说的是基于 keepalived 实现两台服务器之间的主备切换 .当一台机器的 Java 进程异常关闭,另一台机器能够自动监测到并启动本机的 Java 进程. keepalived 的工作 ...

  9. 两块网卡实现多台机器共享上网

    组建局域网内部网络,遇到的问题:购买电信的宽带,多人拨号肯定是不行的(貌似同时超过4台机器拨一个号就自动被断开网络了). 使用一些软件共享上网觉得既然是人家开发的软件,不太放心里面加了什么代码会监控这 ...

最新文章

  1. 热门 | Google Brain前员工深度盘点2017人工智能和深度学习各大动态
  2. 基于OpenCV的视频处理管道
  3. java spring config_Spring重温(二)--Spring JavaConfig
  4. CSS------如何让大小不一样的div中心对齐
  5. sql查询结果字段名与字段值倒过来了
  6. em算法python代码_EM算法的python实现的方法步骤
  7. mysql截取字符串与reverse函数
  8. Redis的基础事务
  9. 面试官系统精讲Java源码及大厂真题 - 39 经验总结:不同场景,如何使用线程池
  10. 软件测试--环境讲解
  11. 查看邮箱号是否存在_腾讯企业邮箱--新版本
  12. threadpool —— 基于 pthread 实现的简单线程池(code)
  13. Winform开发全套31个UI组件开源共享
  14. 家用冰箱里面用的抽屉模具图档分析
  15. 【优化系列】VS与YASM的集成使用
  16. Kanban in Action 免积分下载
  17. 两个用于谷歌输入法的颜文字拓展
  18. halcon学习和实践(颜色筛选)
  19. 大国重器“兵器谱”,了解一下
  20. 香侬科技Service Streamer:加速深度学习Web服务、极大提高GPU利用率。| 百万人学AI评选

热门文章

  1. Sql server 数据转到 Mysql 数据库
  2. c++ httpserver 服务器
  3. Android 自己定义View (二) 进阶
  4. oracle 的wm_concat函数使用
  5. JQuery文件上传控件Uploadify文档
  6. dhcp 授权的原理
  7. Win32 控件篇(2)
  8. Ubuntu下安装LXR
  9. silverlightLogo动画
  10. Postgres-XL数据库集群在RedHat/Fedora/Oracle/CentOS平台上的搭建