• mysql tablespace(独立表空间)超速备份大数据


    前序

    对于用户自主创建的表,会采用此种模式,每个表由一个独立的表空间进行管理备份(速度相当的猛)

    首先介绍一下文件

    .ibd就被称之为独立表空间的数据文件
    
    .frm就是元数据文件  就是创建表后生成的
    

    独立表空间可以通过开关控制,默认状态查询一下

    show variables like '%per_table%';
    

    环境

    实例

    mysql1:192.168.137.176
    mysql2:192.168.137.180
    

    mysql版本

    mysql 5.7.22

    数据库/表

    zskdb/cas_user
    

    实践

    137.180  原始数据(旧机器)

    137.176  新数据(新机器)

    目的: 把就机器的数据全部迁移到新机器176上面。

    192.168.137.180

    1. 先导出数据表结构

    [root@localhost cheng]# mysqldump -u root -p123456 --add-locks -q -d zskdb > /home/cheng/cas_user.sql
    

    2.备份cas_user.idb文件到相关目录

    cp /data/mysql/zskdb/cas_user.ibd ./
    

    3.把备份文件传输到137.176上面

    [root@localhost cheng]# scp cas_user.* root@192.168.137.176:/home/cheng
    root@192.168.137.176's password:
    cas_user.ibd                                                                                                        100%   11MB  22.5MB/s   00:00
    cas_user.sql                                                                                                        100% 3141     1.4MB/s   00:00
    [root@localhost cheng]#
    

    192.168.137.176

    1.验证

     

    保证文件在传输过程中没有收到破坏。

    2.创建数据库

    CREATE DATABASE `zskdb` CHARACTER SET utf8 COLLATE utf8_general_ci;
    

    3.导入表结构

    source /home/cheng/cas_user.sql
    
    mysql> source /home/cheng/cas_user.sql
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    

    表中是没有数据的,验证一下

    mysql> show tables;
    +-----------------+
    | Tables_in_zskdb |
    +-----------------+
    | cas_user        |
    +-----------------+
    1 row in set (0.00 sec)
    
    mysql>
    mysql> select * from cas_user;
    Empty set (0.01 sec)

    4.删除表空间

    mysql> alter table zskdb.cas_user discard tablespace;
    Query OK, 0 rows affected (0.02 sec)
    

    5.把刚才备份的idb文件丢上来(扔到当前数据库表目录文件夹), 授权用户/组

    cp cas_user.ibd /data/mysql/zskdb/ ; chown -R mysql:mysql /data/mysql/zskdb/
    

    6.重新赋予表空间

    alter table zskdb.cas_user import tablespace;
    

    7.现在数据已经全部扔进去了, 验证一下

    mysql> select count(1) from zskdb.cas_user;
    +----------+
    | count(1)       |
    +----------+
    |     71123345 |
    +----------+
    1 row in set (0.04 sec)
    
    mysql>
    

    成功!!

  • 相关阅读:
    移动端底部fixed固定定位输入框ios下不兼容
    mint-ui Picker设置指定初始值
    vue项目的mode:history模式
    更改checkbox的默认样式
    vue组件通信的几种方式
    Python运行Google App Engineer时出现的UnicodeDecodeError错误解决方案
    ActionFilterAttribute之HtmlFilter,压缩HTML代码
    MongoDB C#驱动中Query几个方法
    无需路由端口映射 花生壳6.5工程版发布
    如何让搜索引擎抓取AJAX内容?
  • 原文地址:https://www.cnblogs.com/chenglee/p/10559773.html
Copyright © 2020-2023  润新知