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 · 5679 次点击
    这是一个创建于 941 天前的主题,其中的信息可能已经有所发展或是发生改变。

    腾讯云最新优惠活动来了:云产品限时1折,云服务器低至88元/年 ,点击这里立即抢购:9i0i.cn/qcloud,更有2860元代金券免费领取,付款直接抵现金用,点击这里立即领取:9i0i.cn/qcloudquan

    (福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

    自建的数据库(大概 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   ·   实用小工具   ·   5689 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 05:48 · PVG 13:48 · LAX 22:48 · JFK 01:48
    Developed with CodeLauncher
    ? Do have faith in what you're doing.


    http://www.vxiaotou.com