V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
bsg1992
V2EX  ›  程序员

sql server 迁移到 pg 或者 mysql 如何不停机进行迁移

  •  
  •   bsg1992 · 48 天前 · 1392 次点击
    这是一个创建于 48 天前的主题,其中的信息可能已经有所发展或是发生改变。

    因为某些原因需要从原有的 sqlserver 数据全部迁移到 postgre 和 mysql 如何在不停机的情况下进行数据迁移,目前看到的都是停机迁移,没有没其他可行的方案呢

    12 条回复    2024-11-13 16:21:52 +08:00
    klo424
        1
    klo424  
       48 天前
    信创现在这么严,不都是迁移到达梦等国产数据库么?
    adoal
        2
    adoal  
       48 天前
    你都跨数据库类型了,还想不停机迁移,那只能改业务系统了。
    xiaogu2014
        3
    xiaogu2014  
       48 天前
    有各种基于 cdc 的方案。==比如阿里云的 DTS?
    很多都可以平滑迁移的。
    tomczhen
        4
    tomczhen  
       48 天前
    不停机迁移也是有成本的,既然都到网上社区公开求方案了,大概率停机成本是低于不停机迁移成本的。
    javalaw2010
        5
    javalaw2010  
       48 天前
    现有数据写个程序从 sqlserver 同步到 mysql ,然后修改业务代码双写 sqlserver 和 mysql ,上线期间会有短暂的真空期 sqlserver 数据有 mysql 没有,提前写个脚本到时候处理下,如果可以接受短暂的停机也可以直接停机上线,确认数据和业务都正常后,趁着一个夜黑风高系统没什么访问的夜晚,下线读写 sqlserver 的代码。
    COW
        6
    COW  
       48 天前 via Android
    先利用低峰时段执行一次全量同步,然后利用消息中间件监听 SQL serves 的数据库变更事件,实时同步到 MySQL
    bsg1992
        7
    bsg1992  
    OP
       48 天前
    @klo424 信创 也有单位 支持 mysql 和 postgresql 而且吧 国内这些数据库 大多数都是基于 pg 和 mysql
    bsg1992
        8
    bsg1992  
    OP
       48 天前
    @adoal 停机数据迁移方案 已经有了 就是想看看 在非停机下有啥好的方案
    fengpan567
        9
    fengpan567  
       48 天前
    先把服务改造成双写,然后再用工具迁移吧
    datafeng
        10
    datafeng  
       48 天前
    我看银行迁移都能出个通知夜间停机咧,可以说下什么场景的业务么。。
    ShareDuck
        11
    ShareDuck  
       48 天前
    @javalaw2010 我们也试过类似的方式,应用同时连两个数据库。新数据都往新库写,新库没有的数据应用读旧库写新库并删旧库记录。跑一段时间,就把活数据迁过去了。剩余的都是不怎么活跃的数据,起个线程慢慢迁。迁完就可以改代码,扔掉旧库了。
    自行开发的系统好办。
    catamaran
        12
    catamaran  
       47 天前
    @datafeng 老板要求的场景
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2287 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 16:06 · PVG 00:06 · LAX 08:06 · JFK 11:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.