V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
CBBing
V2EX  ›  .NET

两台服务器中的数据库如何实现数据同步?

  •  
  •   CBBing · 2016-05-30 12:21:04 +08:00 · 9000 次点击
    这是一个创建于 3100 天前的主题,其中的信息可能已经有所发展或是发生改变。

    数据库用的是 SQL SERVER 2014,现在希望在两台数据库之间数据同步,延迟不要太高,如何实现?

    第 1 条附言  ·  2016-05-31 22:24:56 +08:00
    经过我的搜索和实践,发现发布-订阅模式基本可行,但是现在问题又来了,数据库与数据库之间怎么连接?
    39 条回复    2016-06-01 13:49:54 +08:00
    leakeung
        1
    leakeung  
       2016-05-30 13:18:56 +08:00   ❤️ 1
    mark+1
    CBBing
        2
    CBBing  
    OP
       2016-05-30 13:39:11 +08:00   ❤️ 1
    @leakeung 兄弟有思路吗?
    miaosu
        3
    miaosu  
       2016-05-30 13:40:18 +08:00   ❤️ 1
    同问,不过我问的是 Mysql
    CBBing
        4
    CBBing  
    OP
       2016-05-30 13:42:28 +08:00   ❤️ 1
    @miaosu 网上 MySQL 的教程比 SQL SERVER 多很多啊
    Bantes
        5
    Bantes  
       2016-05-30 13:43:30 +08:00   ❤️ 1
    额,说的是数据库主从同步么?貌似百度好多教程
    CBBing
        6
    CBBing  
    OP
       2016-05-30 14:13:15 +08:00   ❤️ 1
    @Bantes 我百度和 google 都搜了,貌似 MySQL 教程特别多, SQL SERVER 的教程就没成功过
    ipconfiger
        7
    ipconfiger  
       2016-05-30 14:18:08 +08:00   ❤️ 1
    楼举是想要双向同步还是单向同步呢?
    CBBing
        8
    CBBing  
    OP
       2016-05-30 14:19:39 +08:00   ❤️ 1
    @ipconfiger 双向同步
    CBBing
        9
    CBBing  
    OP
       2016-05-30 14:20:18 +08:00
    @ipconfiger 实现起来差别大吗?实在不行的话单向同步也可以
    ipconfiger
        10
    ipconfiger  
       2016-05-30 14:42:53 +08:00
    @CBBing A 做主库, B 做从库, 写操作都走 A, B 订阅 A 的库, 读都从 B 读
    allen9527
        11
    allen9527  
       2016-05-30 14:47:27 +08:00
    Sqlserver
    发布-订阅
    或者多来几台用 Always on
    双向的话,貌似得找中间件了,本身好像不支持
    Mysql 可以考虑 Galera Cluster
    CBBing
        12
    CBBing  
    OP
       2016-05-30 14:54:11 +08:00   ❤️ 1
    @ipconfiger 我也是这样想的,发布和订阅支持不同服务器上的数据库之间同步数据吗?
    CBBing
        13
    CBBing  
    OP
       2016-05-30 14:54:48 +08:00   ❤️ 1
    @allen9527 中间件的话还是算了
    DesignerSkyline
        14
    DesignerSkyline  
       2016-05-30 18:48:25 +08:00 via iPad
    这样,你可以写个脚本,定时备份数据库,再在另一台 VPS 上通过 ssh 隧道连接前者服务器 rsync ,将文件同步过来,再写个脚本定时导入数据库(请测试后再投入正式使用,不敢保证稳定性
    leakeung
        15
    leakeung  
       2016-05-30 21:12:55 +08:00
    其实我想说的是. 阿里云服务器的快照功能可以解决..数据不怕丢.
    lancerliu
        16
    lancerliu  
       2016-05-30 21:16:51 +08:00
    方案 1.订阅
    方案 2.goldengate
    方案 3.链接服务器,写个脚本
    方案 4.ETL
    CBBing
        17
    CBBing  
    OP
       2016-05-30 21:55:39 +08:00
    @lancerliu 嗯,正在配置订阅和发布,话说 SQL Server 配置真是蛋疼
    CBBing
        18
    CBBing  
    OP
       2016-05-30 21:56:12 +08:00
    @leakeung 用的腾讯云,不知道有没有这个功能
    CBBing
        19
    CBBing  
    OP
       2016-05-30 21:56:40 +08:00
    @DesignerSkyline 刚开始弄数据库,还不知道怎么写脚本
    frankzeng
        20
    frankzeng  
       2016-05-30 22:43:54 +08:00
    sql server 真是非常非常蛋疼,可以先备份出来,再把文件同步过去,再还原。
    xenme
        21
    xenme  
       2016-05-30 22:50:52 +08:00 via iPhone
    always-on
    gyzit
        22
    gyzit  
       2016-05-30 23:14:02 +08:00 via iPhone
    CBBing
        23
    CBBing  
    OP
       2016-05-30 23:16:38 +08:00
    @frankzeng 请问你之前有没有这方面的经验,我已经配了一个多星期的环境了,到现在都没有配好
    CBBing
        24
    CBBing  
    OP
       2016-05-30 23:18:44 +08:00
    @gyzit 非常感谢,但我用的是 MySQL

    @miaosu 兄弟来看看 MySQL 的教程
    CBBing
        25
    CBBing  
    OP
       2016-05-30 23:23:12 +08:00
    @gyzit 不对,脑子乱了,我用的是 SQL Server
    likuku
        26
    likuku  
       2016-05-30 23:25:12 +08:00
    @CBBing 既然是用的 SQL Server 这样的成熟商业产品,为何不去咨询 MS 相关技术支持?
    CBBing
        27
    CBBing  
    OP
       2016-05-30 23:25:34 +08:00
    @frankzeng 或者有教程可以参考吗? google 的教程一步一步做下来还是不行
    frankzeng
        28
    frankzeng  
       2016-05-30 23:26:42 +08:00
    @CBBing 我配置过,用脚本去做的,一天同步一次,好像不符合你这种要求。
    CBBing
        29
    CBBing  
    OP
       2016-05-30 23:27:39 +08:00
    @likuku 之前已经对着 MS 的文档看了一遍,貌似只提了一句,并没有教程可以参考
    CBBing
        30
    CBBing  
    OP
       2016-05-30 23:32:23 +08:00
    @frankzeng 嗯,确实,我这需要的是尽量实时备份
    likuku
        31
    likuku  
       2016-05-31 01:46:39 +08:00
    @CBBing 所以要去找 MS 的专业技术支持(商业 /付费技术支持)
    likuku
        32
    likuku  
       2016-05-31 01:47:17 +08:00
    @CBBing 要几乎实时备份,那只有靠中间件了。
    vietor
        33
    vietor  
       2016-05-31 06:00:23 +08:00 via Android
    加一个 update_date 字段,那些寻求完美同步方式的人——————都死了。
    xenme
        34
    xenme  
       2016-05-31 07:31:41 +08:00 via iPhone
    @likuku 中间件是什么鬼?
    always-on 只是需要 cluster 加共享存储,实时同步都 ok ,双活也 ok 。随便一搜就是一堆教程和视频。
    diyisoft
        35
    diyisoft  
       2016-05-31 08:41:20 +08:00
    公司现在用的也是主机、备机,数据库是 2008 R2 ,自己写了个“双机热备”的软件,连接 2 个数据库。哪个运行的时候,就往哪个数据库里写数据库,然后通过“双击热备”软件,把数据同步到另外一个数据库里。现在也在考虑发布-订阅,也再找更好的方法。
    154625424
        36
    154625424  
       2016-05-31 08:49:20 +08:00
    我们公司的是 把数据同时写进主机和备机,主机坏了,直接用备机。

    但是以前的数据同步不过来了 我在想办法
    takwai
        37
    takwai  
       2016-05-31 08:56:33 +08:00
    SQL Server 订阅就能满足楼主需求了, 10 楼给的方案本身是可行的。用 Google 搜吧,一大堆的。
    http://www.cnblogs.com/tyb1222/archive/2011/05/31/2064944.html
    CBBing
        38
    CBBing  
    OP
       2016-05-31 09:04:16 +08:00
    @takwai 这篇教程我已经做过一遍了,卡在了本地订阅那里,在订阅服务器上新建订阅的话,会找不到发布服务器
    likuku
        39
    likuku  
       2016-06-01 13:49:54 +08:00
    觉得数据还不足够重要到需要付费找官方技术支持的话,自己折腾也是个不错的消磨时间的方法。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2877 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 14:52 · PVG 22:52 · LAX 06:52 · JFK 09:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.