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

求帮助, MySQL 数据库迁移~~~~~

  •  
  •   Number13 · 2017-11-15 09:00:31 +08:00 · 4403 次点击
    这是一个创建于 2569 天前的主题,其中的信息可能已经有所发展或是发生改变。

    一个远程的主机,配置的数据库其中一张表单数据量已有 2 千万多,要迁到另一台阿里的数据库服务器中,该怎么办,昨天导一张 2 百万的数据表时,就是 50 万导一个文件这样出来的,这 2 千万…………我不得疯了啊,各位大神,行行好,搭把手把……呆滞中……

    20 条回复    2017-11-16 11:10:27 +08:00
    chenhidong
        1
    chenhidong  
       2017-11-15 09:04:16 +08:00
    才 40 次.不慌
    mchl
        2
    mchl  
       2017-11-15 09:04:19 +08:00
    2 千万不算多,不要怕

    备份:
    mysqldump -u username -p --databases your_database_name > path/to/filename.db

    传输前用 zip 压缩一下

    恢复:
    mysql -u username -p < path/to/filename.db
    siyiye
        3
    siyiye  
       2017-11-15 09:05:03 +08:00
    直接下载数据库文件,复制粘贴.....
    x7395759
        4
    x7395759  
       2017-11-15 09:10:19 +08:00
    直接用数据库的表文件导入导出,很方便的
    FFLY
        5
    FFLY  
       2017-11-15 09:11:11 +08:00
    大数据量,我一般都是复制数据库文件,简单安全,导出 SQL 有时候会遇到一些坑。
    goodryb
        6
    goodryb  
       2017-11-15 09:12:25 +08:00 via iPhone
    大兄弟啊,给你推荐个神器,阿里云数据传输服务 DTS,数据结构+全量数据+增量数据迁移,稳定高效,出门旅行……说错词了,自己去看看吧
    binjjam
        7
    binjjam  
       2017-11-15 09:12:31 +08:00
    能停 MySQL 的话直接传文件呀
    billgreen1
        8
    billgreen1  
       2017-11-15 09:23:13 +08:00
    我知道一个 rsnyc 希望能对你有用
    8355
        9
    8355  
       2017-11-15 09:24:30 +08:00
    @goodryb #6 之前没听说过这个服务 刚去查了一下发现确实牛逼啊. 阿里云为了让其他用户迁移到阿里云真是煞费苦心啊.
    lastmayday
        10
    lastmayday  
       2017-11-15 09:51:43 +08:00
    Outhwaite
        11
    Outhwaite  
       2017-11-15 11:58:07 +08:00
    学到了
    neoblackcap
        12
    neoblackcap  
       2017-11-15 14:29:12 +08:00
    1. 可以导出了,然后 zip 压缩后用 rsync 传输
    2. 弄 VPN,将现有环境与阿里云数据库网络环境打通,然后弄成主从。
    aksoft
        13
    aksoft  
       2017-11-15 16:21:00 +08:00
    数据库文件,rsnyc
    zhx1991
        14
    zhx1991  
       2017-11-15 17:27:17 +08:00
    弄成主从是最方便的
    shakoon
        15
    shakoon  
       2017-11-15 17:35:05 +08:00
    mysql 可以直接拷贝数据库文件的,直接压缩了拷走就是了。如果业务不能停止,那就建个一模一样的临时表,把临时表那几个文件打包走,再在目标服务器恢复。
    likuku
        16
    likuku  
       2017-11-15 17:51:47 +08:00
    现在普遍都是 innodb 了吧,直接复制数据库文件可不一定可行。假若新旧 mysql 版本一致,架构平台一致,或许还值得一试。

    能停机 /离线,那么再多也不是事。写入 SSD 硬盘,mysqldump 禁用 quick (不耗内存,便于长时间导出的稳定)。
    findex
        17
    findex  
       2017-11-15 18:27:49 +08:00
    有如下 3 种操作方案(思路)
    1、mysqldump 这里用 unix pip (加 zip 压缩) 远程在线出表到本地服务器,这样可以减少远程服务器 SSD 硬盘写入损耗
    2、使用 mysqlworkbencn 工具远程可视化 dump 表
    3、说的 rsync 也是一套方案。不过对信息增量不友好,因为到时候业务没有停止的时候,你还要手动 dump 一遍,rsync 一遍。

    楼上说的主从挺有意思的。可行。这样既不会影响业务,又不会损失数据。从机只做备份即可。这样虽然能保证数据安全,但是效率往下降一倍。如果你要做数据分析的话,这样安全,但是费事。

    dts 没用过,你可以试试
    tydl
        18
    tydl  
       2017-11-15 19:15:15 +08:00
    我都是这样操作。
    1、停止 mysql
    2、对数据库文件夹进行压缩。
    3、复制粘贴。

    导来导去多麻烦啊。
    msg7086
        19
    msg7086  
       2017-11-16 06:09:20 +08:00
    主从 downtime 比较低。
    直接复制整个 /var/lib/mysql 也可以,记得两边停掉服务再复制。
    woscaizi
        20
    woscaizi  
       2017-11-16 11:10:27 +08:00
    navicat 数据传输可行?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3443 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 11:22 · PVG 19:22 · LAX 03:22 · JFK 06:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.