zoukankan      html  css  js  c++  java
  • 表迁移工具的选型-复制ibd的方法-传输表空间

    1.1. 场景

    有的时候开放人员自己的库需要帮忙导一些数据,但是表的数据量又很大。虽然说使用mysqldump或mysqlpump也可以导。但是这耗时需要比较久。

    记得之前建议开放人员可以直接使用navicat去抽取测试库的数据。但是发现但遇到大表的时候,发现navicat会卡死。

    1.2. 使用方法

    使用拷贝*.ibd的方法。

    注意:使用这种方法会锁表。因为是测试库,对服务器有一些影响还是可以接受的。

    1.3. 先决条件

    前提必须开启innodb_file_per_table选项,并且使用InnoDB存储引擎:

    1.4. 制造大表

    下面我们制造表数据,下面模拟的数据比较小,主要是为了节省时间:

    查看数据大小情况(磁盘上的数据大小)

    查看真实的大小情况

    从上面可以看出在磁盘上的数据大小是1.2G,而实际的大小才1048MB(估计值),实际情况会比上面的数据大很多。

    1.5. 将test.t1迁移到test2.t1中

    1、test2库中创建和test.t1相同的表结构

    2、废弃test2.t1表空间,等待新表空间导入

    3、锁表导出test.t1表元数据

    4、将test.t1表*.ibd和*.cfg文件拷贝到test2库中

    5、释放test.t1锁

    6、test2导入t1数据

    7、查看test2.t1数据

    1.6. 总结

    如果是数据量比较大,并且可以忍受对服务器有一点影响的,就可以考虑使用这种方法来处理。并且需要注意的是最好迁移的数据库版本是相同的。

  • 相关阅读:
    Oracle中有大量的sniped会话
    Error 1130: Host '127.0.0.1' is not allowed to connect to this MySQL server
    汉字转换为拼音以及缩写(javascript)
    高效率随机删除数据(不重复)
    vs2010 舒服背景 优雅字体 配置
    mvc中的ViewData用到webfrom中去
    jquery ajax return值 没有返回 的解决方法
    zShowBox (图片放大展示jquery版 兼容性好)
    动感效果的TAB选项卡 jquery 插件
    loading 加载提示······
  • 原文地址:https://www.cnblogs.com/DataArt/p/10231920.html
Copyright © 2011-2022 走看看