我按照网上的方法进行在两个服务器A,B上分别发布和订阅,就是为了同步A(发布服务器)上一个表和B(订阅服务器)上一个表的数据同步网上的方法
现在来通过SQL Server 2005来建立数据复制的操作 。1、先在两台服务器上建立两个完全一样的数据库、表结构及存放的数据;2、在服务器一上打开SQL Server 2005,然后选择“复制”——>“本地发布”,然后右键选择新建发布;3、在新建发布向导中首先要求选择分发服务器,在操作中我们暂选择本机作为分发服务器,所以选择默认值。4、选择快照的路径,一般情况下选择默认路径,根据向导选择要发布的数据库;5、选择发布的内容,可以选择发布表,也可以发布其他的数据库对象,比如函数。在选择某一个表之后还可以选择对应的列;6、发布的内容设置好后,然后运行SQL代理的账号。然后再按照向导给建立的复制名命。这样就建立好了发布和分发的应用了。下面接着来配置订阅的应用。1、先在服务器二上打开SQL Server 2005,然后选择“复制”——>“本地订阅”,然后右键选择新建订阅;2、选择发布服务器,在发布服务器的下接列表中找到对应已经建立好的SQL SERVER 发布服务器,然后就可以看到刚才新建的发布复制名称;3、选择订阅方式。在这里可以选择请求订阅,然后选择订阅的本地需要同步的数据库;4、设置完本地数据库之后要求设置运行代理的安全性,设置成SQL 代理账号。订阅的设置就已经完成。下面我们就可以做一个操作的示范,在服务器一上面新插入一条记录后,然后再去服务器二上面看看对应表的数据,会发现到,也会看到更新后的数据。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wuzhong369/archive/2009/02/16/3895400.aspx
都操作成功了,可是我在A服务器上的表插入一条数据或删除,更新等,B服务器上那表一点反应也没有!!!! - -请问下,到底有哪些原因导致这种问题呢?我看了很久都没有哪里出错了,哭死!!

解决方案 »

  1.   

    有可能是代理服务没打开
    SQL  SERVER AGENT 
      

  2.   

    看看这个吧
    http://blog.csdn.net/lihan6415151528/archive/2009/09/02/4511004.aspx
      

  3.   

    也有可能是两台机器的远程连接没有开 也就是说1433端口和TCP/IP服务没开
      

  4.   

    然后还有可能是网络连接的问题 你ping一下看两台服务器有没有连接好 
      

  5.   


    两个服务器连接没有问题,我B服务器上的那个表里的数据,就是通过连接的SQL语句,从A中直接拷过去的,连接没有问题
      

  6.   


    事务同步我没有设置时间限制
    对了,会不会是我数据库的原因呢?
    A服务器上的数据库A1上有4个表,我只设置了其中一个表a(我只要那个表的数据同步)
    B服务器上的数据库B1上我只创建了和a一样的表(只创建了1个,没有创建4个)
    不会是这个原因吧???(我感觉不可能哦 - -)
      

  7.   


    请问下 这个1433端口是这么打开的吗?配置工具->Sql Server Configuration Manager->MSSQLSERVER的协议
    看看TCP/IP协议是否启动,如果启动,右键菜单点"属性" ,在分页菜单中选"IP地址",把"IP1"和"IP2"中"TCP端口"为1433,
    "已启用"改为"是"
    配置工具->Sql Server Configuration Manager->SQL Native Client 配置->客户端协议->TCP/IP
    选择TCP/IP右键菜单中"属性",确认"默认端口"是1433,"已启用"为"是" 
      

  8.   

    找到你发布时选择的代理服务器
    选择SQL Server Agent->Jobs,
    找到两个Job,名字类似:
      1、[服务器名]-[发布数据库名]-[发布名]-[数字]
      2、[服务器名]-[发布数据库名]-[发布名]-[订阅服务器名]-[数字]查看一下这两个Job的Schedule先
      

  9.   


    SCXTSERVER\SQL_SERVER2005-goodman-2
    SCXTSERVER\SQL_SERVER2005-goodman-goodman_customer-2SCXTSERVER\SQL_SERVER2005 是我发布服务器的实例名,goodman是需要同步的数据库名,goodman_customer 是发布名称,2我不知道什么意思了请问下lzhs 我这个地方有问题吗?什么问题能说下吗?
      

  10.   

    这两个名字不一样是正确的。
    其中一个是生成发布内容的Job、另外一个是把发布内容推送(你应该是建的推送订阅)到订阅服务器的Job。
    你看一下这两个Job的Schedule,就知道什么时候会同步数据了。发布订阅好像是不能做到实时同步的。
    如果要实时同步,用镜像之类的~
      

  11.   

    "立即"的意思是在你创建好订阅后马上同步一次.
    以后的定时同步就要根据你设置的Schedule来进行了.
      

  12.   

    哈哈哈哈哈哈哈哈哈哈哈哈哈哈,终于对了哦,准备结贴,总结下我的原因:最主要还是我理解不够造成的,关于同步 “同步是根据你设定的时间或请求”(金猫) ,想到我根本就没有设置任何的时间同步,原来以为“立即”就是时时刻刻监听更新的   ,lzhs  “"立即"的意思是在你创建好订阅后马上同步一次. 
    以后的定时同步就要根据你设置的Schedule来进行了. ” 才知道我理解错误了然后根据
    查看了两个job最后根据 lihan6415151528  http://blog.csdn.net/lihan6415151528/archive/2009/09/02/4511004.aspx反复测试,终于对了,555555555,我也不容易挖,郁闷了几天,不过终于做对了就好,嘿嘿再次感谢楼上所有人的回答~~~(今天中午要多吃点饭了)