具体情况,一家公司有一个内部系统,数据库只能内网访问(用A来代表),现在又做了一个网站,数据库在网络上(用B来代表),现在需要同步这两个数据库.不要求实时同步,只需要一天同步几次即可,不用数据库自带的同步,复制等方法,想自己做一个程序来实现同步,不知道大家有什么好的方法?以前使用过在B服务器上挂一个webservice,然后服务器A直接访问webservice来获取B上的数据,同时将服务器A上的数据上传到服务器B来进行更新,但这样大数据量会超时,不知道还是什么别的方法?或者这种webservice方法使用起来需要注意点什么?

解决方案 »

  1.   

    或许你可以再加一层Excel来实现,数据库A和B通过这个Excel来进行通信。
    而且这样是可以实现实时同步的。
    我知道有些需要在官网出售道具的游戏就是通过这种方式进行的数据传输。
      

  2.   

    双向同步不是那么简单的,而且要看数据量的多少.大概的思路是每个表都要有Guid的TransID和InDate,EditDate两个字段,定时的进行分别运算两个库在两个同步时间点的数据,并且分别发送到两个数据库进行数据匹配,根据逻辑进行insert update操作(备注,一般不要做delete操作,用标记删除的方法,那个字段标记)这里需要考虑很多问题,数据量,同步时间,同步失败的回滚等等异常情况,是一件非常繁重的体力活.还有就是数据传输可以用xml+压缩,进行数据传递,一切的一切都是非常麻烦的.最好是使用现成的解决方案
      

  3.   

    利用数据库的数据同步功能
    每个客户端需要时候,查询一下数据库或者定时查询,更新
    remoting,WCF等
    http://topic.csdn.net/t/20060108/21/4504765.html
      

  4.   

    使用VPN网络等软件,将两台加到一个网络里面,像这样实现试试。
      

  5.   

    实施的也没问题,只要数据有变化,就push到对方数据库
      

  6.   

    http://download.csdn.net/source/2885320基于WCF实现SQLServer数据同步系统设计文档
      

  7.   

    一个服务器是外网能访问 一个服务器是外网不能访问的 这样也可以用SQL SERVER 有个订阅和发布的功能嘛