zoukankan      html  css  js  c++  java
  • mysql 案例 ~ 表空间迁移数据与数据导入


    一  简介:mysql5.6+的表空间传输
    二 目的:复制数据到另一个表
    三 步骤
       1 create table b like a ->创建一个空表
       2 alter table b discard tablespace -> 禁用空表的表空间,用于删除b的ibd文件
       3 alter table a for export ->会生成一个cfg文件,对于全局来说 表是只读状态,要非常注意
       4 cp a.cfg b.cfg && cp a.ibd b.ibd  && chown -R mysql:mysql b.cfg b.ibd->拷贝cfg和ibd文件进行复制授权
       5 unlock tables -> 拷贝完成进行解锁
       6 alter table b import tablespace -> 进行数据字典注册,这里需要注意,因为涉及到数据页的table_id的修改,可能会耗费时间,但是比dump还是快
       7 select count(*) from b 进行验证
    四 总结
       mysql表空间的迁移能快速的迁移大表,但是有自身局限性,适用以下场景
       1 冷数据表的复制,由于需要锁表,所以不能迁移热表
       2 大表数据的恢复,线上DDL操作失误,需要恢复时,利用备份+binlog进行恢复后,表空间迁移进行导入

    五 load data: 

       0 语法

         load data infile "/data/mysql/e.sql" into table e fields terminated by ',';

       1 过程

          1 读取csv文件,判断字段是否和表字段相符,然后写入innodb表中

          2 读完全部csv文件数据

          3 进行事务提交,否则事务回滚

       2 load data注意事项

            1 在远程客户端使用load data load infile的话 1 需要添加FILE权限 2需要添加load读取客户端文件

            2 load data相对file较快是因为读取文件速度远远大于读取表数据的速度,因为文件已经预先进行了读取

            

              

        

  • 相关阅读:
    iOS 代码让手机震动一下
    iOS开发 --制作圆形的头像(UIImage)
    JAVA基本数据类型和引用数据类型的区别
    jquery基础
    JS基础
    JAVA异常详解
    单例模式详解及java常用类
    JAVA基础之字符串和面向对象
    我的第一篇博客 初识动画,飞机行小动画
    GCD系列:调度组(dispatch_group)
  • 原文地址:https://www.cnblogs.com/danhuangpai/p/10383236.html
Copyright © 2011-2022 走看看