批量传输mysql的表空间_MySQL 表空间传输
面试中经常会问有没有试过怎么快速迁移大表:
常用中可以使用mysqldump、mysqlpump、navicate等工具导入导出。我经验中可以采用load data的方式load进去,比insert快很多
MySQL5.7之后可以采用表空间传输方式也是一个很快速的大表迁移方式,适合异机实例间传输迁移,速度非常快。
1.load data方式:
MySQL快速数据导入(可以把数据加载到文件,在采用load方式进入表,速度比mysqldump快好几倍)
select * from ams.t_amsfile into outfile '/home/mysqldata/mysql- sandboxes/3309/mysql-files/ams_t_amsfile';
load data infile '/home/mysqldata/mysql-sandboxes/3309/mysql- files/ams_t_amsfile' into table ams.t_amsfile;
2.表空间传输:(适合INNODB表异机实例间传递)
适用场景:针对大表异机实例迁移,采用表空间传输的方式,会很大程度节约时间,高效迁移。
缺点:传输需要锁住表,对无法中断业务也会有影响
示例1:将InnoDB表复制到另一个实例
此过程演示如何将常规InnoDB表从正在运行的MySQL服务器实例复制 到另一个正在运行的实例。可以使用具有微小调整的相同过程在同一实例上执行完整表还原。
在源实例上,创建一个表(如果不存在): mysql> USE test;
mysql> CREATE TABLE t(c1 INT) ENGINE=InnoDB;
在目标实例上,创建一个表(如果不存在):
mysql> USE test;
mysql> CREATE TABLE t(c1 INT) ENGINE=InnoDB;
目标实例上,放弃现有表空间。(在导入表空间之前, InnoDB必须丢弃附加到接收表的表空间)
mysql>ALTER TABLE t DISCARDTABLESPACE
在源实例上,运行 FLUSH TABLES ... FOR EXPORT以停顿表并创建.cfg元数据文件:
mysql> USE test;
mysql> FLUSH TABLES t FOR EXPORT;
metadata(.cfg)在InnoDB数据目录中创建 。
注:
该FLUSHTABLES...FOREXPORT语句确保已将对指定表的更改刷新到磁盘,以便在实例运行时可以创建二进制表副本。当 FLUSHTABLES...FOREXPORT运行时,InnoDB产生了.cfg在同一个数据库的目录表文件。该.cfg文件包含导入表空间文件时用于模式验证的元数据。
将.ibd文件和 .cfg元数据文件从源实例复制到目标实例。例如:
shell> scp /path/to/datadir/test/t.{ibd,cfg} destination-server:/path/to/datadir/test 注意
.ibd文件和 .cfg文件必须释放共享锁之前如在下一步中所述被复制。
在源实例上,用于 UNLOCK TABLES释放通过FLUSH TABLES ... FOR EXPORT以下方式获取的锁 :
mysql> USE test;
mysql> UNLOCK TABLES;
在目标实例上,导入表空间:
注意:拷贝过程中数据块文件权限变了之后需要修改。否则执行下面语句时候会报错找不到表空间
mysql> USE test;
mysql> ALTER TABLE t IMPORT TABLESPACE;
注意
该ALTER TABLE ... IMPORT TABLESPACE功能不会对导入的数据强制执行外键约束。如果表之间存在外键约束,则应在相同(逻辑)时间点导出所有表。在这种情况下,您将停止更新表,提交所有事务,获取表上的共享锁,然后执行导出操作。
3.总结&思考
还有其他快速传输的方式吗? 比如xtrabackup
批量传输mysql的表空间_MySQL 表空间传输相关推荐
- mysql 表空间_mysql 表空间
什么是表空间 默认情况下,InnoDB只包含一个称为系统表空间的表空间,其标识符为0.可以使用innodb_file_per_table配置参数间接创建更多表空间.表空间由一系列文件组成.文件的大小不 ...
- 如何批量删除mysql的数据库_如何快速批量删除Mysql数据库中的数据表
一个mysql数据库中,是可以同时安装几个网站程序的,在使用中,我们只需要用不同的数据库表前缀来区分就可以了.但随着我们不断调试,那么数据 库中的表,就会一天天的多起来,如一个一个的删除就很麻烦.很辛 ...
- mysql表类型_MySQL表类型的选择
P131)创建表时的默认引擎是InnoDB,如果要修改默认的存储引擎,可以在参数文件中设置default-table-type.查看当前的默认存储引擎,可以使用一下命令: 创建新表的时候可以通过增加E ...
- mysql 表 类型_mysql表类型
MySQL支持6种不同的表类型:BDB.InnoDB.HEAP.ISAM.MERGE以及MyISAM.其中 BDB,InnoDB单独属于一类,称为"事务安全型"(transacti ...
- mysql约束条件整型_MySQL 表的操作
表的操作 创建表的完整语法: create table 表名( 字段名1 字段类型[(宽度) 约束条件], 字段名1 字段类型[(宽度) 约束条件], 字段名1 字段类型[(宽度) 约束条件] ); ...
- mysql myisam表分区_MySQL 表分区详解MyiSam引擎和InnoDb 区别(实测)
一.什么是表分区 通俗地讲表分区是将一大表,根据条件分割成若干个小表.mysql5.1开始支持数据表分区了. 如:某用户表的记录超过了1000万条,那么就可以根据入库日期将表分区,也可以根据所在地将表 ...
- mysql关系表控制_mysql表关系
一.表的详细操作 1.修改表名 alter table 旧表名 rename 新表名; 2.修改表的引擎与字符编码 alter table 表名 engine="引擎名" ch ...
- mysql right join实例_MySQL表LEFT JOIN左连接与RIGHT JOIN右连接的实例教程
LEFT JOIN 语法用法与实例MySQL LEFT JOIN 语法 SQL(MySQL) LEFT JOIN 会取得左表(table1)全部记录,即使右表(table2)并无对应匹配记录.LEFT ...
- mysql查看表描述_MySQL表记录操作介绍(重点介绍查询操作)
MySQL表记录操作指的是对数据库表中数据进行CRUD增删改查操作,一下将一一给大家介绍,重点介绍查询操作. 一.插入数据(INSERT) 二.删除数据(DELETE) 三.修改数据(UPDATE) ...
- MySQL笔记创建表结构_MySQL表结构笔记9
本篇大纲 MySQL数据表 创建表 创建主键 AUTO_INCREATE 指定默认值 更新表结构 删除表,重命名表 01:表 MySQL 数据库的表是一个二维表,由一个或多个数据列构成 每个数据列都有 ...
最新文章
- c#小软件(SaveClassic)开发手记--(1)前言
- Solaris 10网络服务
- 【FPGA实现GA】基于FPGA的GA优化算法的设计与实现
- 数据结构单链表SingleLinkedList,Java实现单链表增删改查
- Java GregorianCalendar computeTime()方法与示例
- 在Linux下快速搭建LAMP开发平台.doc
- 面试官 | 什么是 Lambda?该如何使用?
- Linux系统NFS什么意思,挂载NFS到底是什么概念
- Linux设备驱动程序学习-Linux设备模型(总线、设备、驱动程序和类)
- int 和String之间的互转
- 腾讯CDC:用户流失原因调研四步经
- 7.5日chinapub生日聚会
- 电脑软件:推荐一款本地文档搜索神器,赶快下载试试吧!
- 计算机cad模板样例,教你如何新建适合自己的CAD模板
- 华为android界面强刷救砖教程,华为手机救砖教程 华为手机开不了机变砖自救
- android 把file资源转file,Android文件管理器选择文件,获得文件路径URI转File
- Oracle误删除dbf文件和表空间恢复
- QT 自定义圆形QLabel 加载圆形图片
- 计算机团队霸气名称大全,霸气吃鸡游戏团队名字大全
- 通过 blast 结果查看 测序数据fastq是否被污染,以及污染reads所属物种、所占比例
热门文章
- 手摸手-100行代码实现一个功能完善的图片懒加载
- MyBatis实现模糊查询的几种方式
- jQuery淡入淡出
- Qt Creator 启动失败 可能的解决办法
- 异常:请将注册表值...
- 镜像分割与高可用性灾难恢复
- SQL Server树型结构数据处理的存储过程
- 为 DEV-C++ 生成 libmysql.a 的过程 及 windows下 devc++ c语言访问mysql数据库 环境配置...
- 串口通信程序中十六进制格式发送和接收实现
- 【OpenCV的cvSplit函数】