V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
blue7wings
V2EX  ›  MySQL

MySQL 1000 万数据如何最快全量迁移?

  •  
  •   blue7wings · 2021-10-11 16:09:27 +08:00 · 5996 次点击
    这是一个创建于 1166 天前的主题,其中的信息可能已经有所发展或是发生改变。

    自建的数据库(大概 1000 万条数据,2M 带宽),现在想迁移到阿里云的 RDS 上,如何用最少的时间迁移过去?

    用了阿里云的数据迁移服务 DTS,非常的慢,而且一度把源服务器上的带宽占满,导致整个网站挂了。

    问一问,大家有没有比较好的解决方法呢?

    32 条回复    2021-10-13 11:38:52 +08:00
    taobibi
        1
    taobibi  
       2021-10-11 16:14:32 +08:00
    虽然没解答,水 1 楼
    https://v2ex.com/t/806269
    我这边要迁移几千万个图片现在还在犯愁中
    blackeeper
        2
    blackeeper  
       2021-10-11 16:19:23 +08:00
    在阿里云的服务器上建一个从库,怎么迁移都没问题,又不影响你自建的主库
    xiao109
        3
    xiao109  
       2021-10-11 16:23:53 +08:00
    本地先切成小库,再分批迁移过去
    blue7wings
        4
    blue7wings  
    OP
       2021-10-11 16:30:51 +08:00
    @blackeeper 建立一个从库,历史数据还是要导入过去的吧,我现在想直接把这部分数据导入过去就可以了。
    blackeeper
        5
    blackeeper  
       2021-10-11 16:37:27 +08:00
    @blue7wings 你这个问题就是限速,避免影响现有的服务呗。你可以导出 SQL,然后压缩、用 rsync 限速传输到阿里云服务器就可以了
    myd
        6
    myd  
       2021-10-11 17:15:53 +08:00   ❤️ 1
    1. 导出 SQL 文件
    2. 导入到新库
    3. 配置主从(新库为从库)
    4. 等到主从延迟为 0 的时候,停掉业务服务器
    5. 应用这边切换数据库到新库
    6. 启动业务
    Xusually
        7
    Xusually  
       2021-10-11 17:40:41 +08:00   ❤️ 2
    1 、做好方案,操作顺序捋清楚。
    2 、临时升级带宽到满足迁移需要。
    3 、迁移。
    4 、带宽回退到 2M 。

    花不了多少钱。
    gengchun
        8
    gengchun  
       2021-10-11 18:59:46 +08:00
    PB 一级的话,可以考虑阿里的离线迁移服务。比这小的话,其实可以试试看。最少也要几 TB 吧。

    当然,没有到 TB,还是直接升带宽吧。
    defunct9
        9
    defunct9  
       2021-10-11 19:43:46 +08:00 via iPhone
    很简单啊,做主从。慢慢来就行了
    netnr
        10
    netnr  
       2021-10-11 19:59:35 +08:00 via Android
    开一台同区域的临时宽带按量计费的机子,再做端口转发
    bing0
        11
    bing0  
       2021-10-11 20:02:28 +08:00
    添加一块网卡 1G,好像可以找客服申请 5G 口,按量付费,迁移完后删除。
    moult
        12
    moult  
       2021-10-11 20:10:02 +08:00
    自建的数据库的服务商有没有云存储卖?有的话继续往下看。
    导出 SQL 文件 - 打压缩包 - 通过内网传输到云存储上 - 开一台阿里云的按量付费实例 - 下载 SQL 压缩包 - 解压 - 通过内网导入 RDS
    整个过程一小时肯定能搞定,因为云存储服务可以按流量计费,基本都不限速的。
    Felldeadbird
        13
    Felldeadbird  
       2021-10-11 21:41:23 +08:00
    内网迁移,服务器高度写 1000 万数据很快就完成了。 当然,不知道你 1000 万数据有什么内容。5G SQL 文件服务迁移大概 10 分钟完成。
    bybyte
        14
    bybyte  
       2021-10-12 00:38:16 +08:00
    物理迁移
    helloworld000
        15
    helloworld000  
       2021-10-12 00:47:49 +08:00
    直接邮寄硬盘
    Junzhou
        16
    Junzhou  
       2021-10-12 04:42:33 +08:00 via iPhone
    备份,然后 srync 或者临时带宽升级
    jsrgqinbin
        17
    jsrgqinbin  
       2021-10-12 08:22:14 +08:00
    阿里有免费的数据迁移的服务的,你找 DTS 这个产品看下
    BeijingBaby
        18
    BeijingBaby  
       2021-10-12 08:28:28 +08:00
    这么小的数据,根本不是问题啊。
    qwerthhusn
        19
    qwerthhusn  
       2021-10-12 08:34:07 +08:00
    2M 带宽,说明此站流量不大。
    那为啥不把公网 IP 转成按量的,然后使用共享流量包呢?
    可以用 200M 带宽,只收个流量包的费用
    cxh116
        20
    cxh116  
       2021-10-12 08:50:08 +08:00   ❤️ 1
    1. XtraBackup 备份导出.
    2. 上传备份文件 OSS.
    3. 在机器上面拉取 OSS 的文件(走内网,不限速的).
    4. 使用 XtraBackup 恢复.
    5. 查看 XtraBackup 的备份文件里的信息,设从库连到主库,等从库跟上主库.
    6. 同步完成,从库转主库.
    jixiangqd
        21
    jixiangqd  
       2021-10-12 10:49:53 +08:00
    @cxh116 阿里云 RDS 现在支持从 oss 导入 xtrabackup 的备份了
    wuwukai007
        22
    wuwukai007  
       2021-10-12 10:56:21 +08:00
    直接把 mysql/data 压缩发过去
    zhengxiaowai
        23
    zhengxiaowai  
       2021-10-12 10:58:38 +08:00
    #6 + #7 应该是最快的
    导出 sql 上传到 oss,起一个机器从 oss 下载 然后导入 mysql
    Linxing
        24
    Linxing  
       2021-10-12 12:32:15 +08:00
    刚刚迁移了几个亿上去的表示 完全是按照 6 楼的操作
    wzq001
        25
    wzq001  
       2021-10-12 16:46:21 +08:00
    1 、确定业务访问低峰时间
    2 、mysql/整体打 zip 包
    3 、云服务器 wget 下载解压 zip 包,配置好
    4 、在此期间产生的新数据,可以交给主从,轻轻松松
    RangerWolf
        26
    RangerWolf  
       2021-10-12 19:43:39 +08:00
    你现在在哪个云服务? 可以在服务器上面把数据导出,然后放到文件存储上面, 这样出网带宽就不跟你服务器的带宽冲突了
    encro
        27
    encro  
       2021-10-12 20:02:52 +08:00   ❤️ 1
    阿里云迁移,设置好带宽,才 1000 万,最多两个小时。
    迁移好后设置自动同步,找一个晚上将代码也迁移过去了就是了。
    encro
        28
    encro  
       2021-10-12 20:07:45 +08:00   ❤️ 1
    阿里云 DTS 可以设置带宽,设置小一点,慢慢迁移,然后迁移完后开同步。
    这样到了底峰的时候停掉原来数据库,切换到阿里云数据库。
    我的几百 G 大小,N 亿记录都几个小时迁移完了,2H4G 数据库。
    dgr007
        29
    dgr007  
       2021-10-12 20:47:24 +08:00   ❤️ 1
    DTS 很快的,你的瓶颈不在 DTS,是不是带宽
    betteryjs
        30
    betteryjs  
       2021-10-12 22:22:16 +08:00
    oss 拉吧
    blue7wings
        31
    blue7wings  
    OP
       2021-10-13 09:33:11 +08:00
    @Xusually
    @encro
    @dgr007 感谢回复,按照你们的方法提升了带宽,然后用 DTS 迁移大概 10 分钟完成,再次感谢
    scalaer
        32
    scalaer  
       2021-10-13 11:38:52 +08:00   ❤️ 1
    阿里 DTS 同步很快的, 我之前参加过 DTS 做的比赛,50G 数据迁移 mysql 花了 15 分钟, 排倒数第二
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2717 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 11:37 · PVG 19:37 · LAX 03:37 · JFK 06:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.