在对数据库做迁移的时候,会有很多方法,用存储过程,job,也可以用开源工具kettle,那么今天这些天变接触到了一种新的方法,就是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这种开源软件用着方便。

SQLServer 中发布与订阅的更多相关文章

  1. js设计模式中发布与订阅实现观察者模式例子

    <script> var pubsub = {}; (function(q) { var topics = {}; subuid = -1; q.publish = function(to ...

  2. 发布与订阅SQLServer

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

  3. SqlServer 禁止架构更改的复制中手动修复使发布和订阅中分别增加的字段同步

    原文:SqlServer 禁止架构更改的复制中手动修复使发布和订阅中分别增加的字段同步 由于之前的需要,禁止了复制架构更改,以至在发布中添加一个字段,并不会同步到订阅中,而现在又在订阅中添加了一个同名 ...

  4. MSSQL复制中的发布与订阅

    准备条件 1.2台服务器 2.WINDOWS SERVER 2008 64bit + 3.SQL SERVER 2008 R2 + 4.MSSQLSERVER服务与MSSQLAGENT服务正常运行中 ...

  5. 最简单的SQLserver,发布订阅教程,保证一次就成功

    最简单的SQLserver,发布订阅教程,保证一次就成功 发布订阅用来做数据库的读写分离,还是很好用的 当单台数据库的压力太大时,可以考虑这种方案,一主多从,主服务器的数据库只管写入,其他的数据库都是 ...

  6. SqlServer 监控发布中未分发的命令数

    原文:SqlServer 监控发布中未分发的命令数 对于查看未分发的命令数,我们通常这样查看. 然而当服务器有很多发布时,一个个打开查看就很麻烦 当然,如果想用脚本查看就更方便了,运行下面的语句 -- ...

  7. sqlserver关于发布订阅replication_subscription的总结

    (转载)sqlserver关于发布订阅replication_subscription的总结 来自 “ ITPUB博客 ” ,原文地址:http://blog.itpub.net/30126024/v ...

  8. (转)SqlServer 数据库同步的两种方式 (发布、订阅),主从数据库之间的同步

    最近在琢磨主从数据库之间的同步,公司正好也需要,在园子里找了一下,看到这篇博文比较详细,比较简单,本人亲自按步骤来过,现在分享给大家. 在这里要提醒大家的是(为了更好的理解,以下是本人自己理解,如有错 ...

  9. Redis中的发布与订阅

    redis中实现发布与订阅相对于zookeeper非常简单.直接使用publish和subscribe就行. subscrible news; 订阅news这个channel publish news ...

随机推荐

  1. 修改sqlserver2008数据库的排序规则 (转)

    修改sqlserver2008数据库的排序规则 (转)      修改SQL server 2008服务器排序规则 SQL Server 2008安装好后,发现服务器排序规则不对,又不想重装SQL S ...

  2. Centos 下添加开机自启动服务和脚本

    最近刚玩Centos7的系统,跟Centos6还是很多方面有改变的,这里记录一下怎么在Centos7下添加开机自启动脚本和服务的方法. 1.添加开机自启服务 我这里以docker 服务为例,设置如下两 ...

  3. Oracle 11g 发行版2的安装,PLSQL_Developer安装 , Oracle数据库安装失败,完全卸载,常用的命令

    Oracle 11g 发行版2的安装 PLSQL_Developer安装 Oracle数据库安装失败,完全卸载oracle11g 常用的命令 Oracle 11g 发行版2的安装 1. 下载 下载地址 ...

  4. python之字符串的常用操作(转)

    1. 字符串的操作 字符串的连接操作 符号: + 格式:str1 + str2 例如:str1 = 'I Love' str2 = 'You!' print(str1 + str2) >> ...

  5. Visualbox与CentOS 6.4之间鼠标切换

    按住键盘右边的Alt键,再按一下(右边)ctrl键,这样可以实现鼠标能在主机与虚拟机之间自由切换.

  6. 17秋 软件工程 团队第五次作业 Alpha Scrum9

    17秋 软件工程 团队第五次作业 Alpha Scrum9 今日完成的任务 世强:APP后端部门申请状态: 港晨:主页面代码实现: 树民:完善超级管理员web后端: 伟航:设置页面和侧边栏的原型: 陈 ...

  7. 17秋 软件工程 团队第五次作业 Alpha Scrum10

    17秋 软件工程 团队第五次作业 Alpha Scrum10 今日完成的任务 世强:Android客户端成员列表完善.APP前端子部门和活动中心界面与数据交互: 港晨:Web前端主页的接口对接: 树民 ...

  8. WeakHashMap源码解读

    1. 简介 本文基于JDK8u111的源码分析WeakHashMap的一些主要方法的实现. 2. 数据结构 就数据结构来说WeakHashMap与HashMap原理差不多,都是拉链法来解决哈希冲突. ...

  9. MySQL备份及数据恢复

    昨天MySQL意外挂了,重启不成功.然后悲剧的发现,之前做的磁盘快照规则也不知怎么没有生效,数据无备份. 后来咨询.搜索,结果: 1.可以配置两个参数,忽略检查,启动,可以读数据.然后导出,删除文件库 ...

  10. mybatis基础系列(一)——mybatis入门

    好久不发博客了,写博文的一个好处是能让心静下来,整理下之前学习过的一些知识一起分享,大神路过~ mybatis简介 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射. ...