mysql5.6之innodb导入的改进

在mysql5.6之前,导入单个innodb表的idb文件需要对齐tablespace id,而如果tablespace id不一致,就需要通过在新库不挺的新建表,来增长tablespace id,以致对齐tablespace id。

5.6版本之后

alter table ... import tablespace

已经不需要对齐tablespace id。

alter table ...for export

5.6增加了以上命令,可以使导出的idb文件保持一致状态,并且生成文件.cfg后缀文件。当我们需要单表复制的时候,直接拷贝.frm/.idb/.cfg文件,然后直接执行

alter table ... import tablespace

即可导入.

在5.6.8之后,可以不需要生成cfg文件,直接复制idb文件和结构文件即可进行导入!但是会生成如下告警:

Warning Code : 1810
InnoDB: IO Read error: (2, No such file or directory) Error opening ‘./test/log_table_cube.cfg‘, will attempt to import without schema verification

注意,当对表加上for export锁定之后,复制完记得unlock tables释放该锁!

参考资料:

http://www.educity.cn/wenda/404363.html

http://dev.mysql.com/doc/refman/5.6/en/tablespace-copying.html

mysql5.6之innodb导入的改进,布布扣,bubuko.com

时间: 2024-11-08 06:09:52

mysql5.6之innodb导入的改进的相关文章

快速入手ITOO导入-问题改进和错误解决方案

这两天快要评教了,所以要往数据库中导入数据,导入好几万条数据,这可是头疼啊,幸亏有咱们的导入功能.这两天对导入功能进行了一点点的改进. 面对这么多的数据难免往数据库中导入的时候有纰漏,没有提示是个麻烦的事情啊.后来跟小伙伴们商量一下,如果有错误数据则返回错误列表,好知道哪行出错了.对客户端进行了一点点的改进. #region 批量导入数据--宋笑 2015年5月18日19:46:59 /// <summary> /// 批量导入数据--宋笑 2015年5月18日19:46:59 /// <

MySQL-5.7设置InnoDB表数据文件存储位置

[[email protected] data]# ls a1 a2 a3 auto.cnf ib_buffer_pool ibdata1 ib_logfile0 ib_logfile1 ibtmp1 localhost.localdomain.err localhost.localdomain.pid mysql performance_schema sys ibdata1就是InnoDB表的共享存储空间,默认innodb所有表的数据都在一个ibdata1里. 查看当前配置 mysql> sh

MySQL5使用Innodb引擎时如何设置数据文件按表存储

在Innodb引擎中,数据库的表可以共享存储空间也可以按表单独存储,共享存储空间虽然看起来简洁干净,但是从管理和运维的角度的看这种方式不可取.首先在同一个MySQL服务器下得不通数据库的表都会被存放于一个文件中,这个文件不会以为数据库某个表或者某些数据的删除二进行收缩,当数据库很多并且插入操作频繁的情况下,共享存储文件会增长的很快很大.如果数据库要做迁移,架构比较简单,但是存储于共享空间的中的数据就不太容易分离出来. 如果使用按表单独存储则可以很好的解决上述问题,遗憾的是MySQL5中使用Inn

mysql5.7新特性探究

一.MySql5.7增加的特性 1.MySql服务方面新特性 1) 初始化方式改变 MySql5.7之前版本初始化方式: scripts/mysql_install_db MySql5.7版本初始化方式: [[email protected] mysql_new]# ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql_new/ --datadir=/usr/local/mysql_new/data/ 2015-10-

MySQL系列:innodb引擎分析之文件IO

innodb作为数据库引擎,自然少不了对文件的操作,在innodb中所有需要持久化的信息都需要文件操作,例如:表文件.重做日志文件.事务日志文件.备份归档文件等.innodb对文件IO操作可以是煞费苦心,其主要包括两方面,一个是对异步io的实现,一个是对文件操作管理和io调度的实现.在MySQL-5.6版本的innodb还加入了DIRECT IO实现.做了这么多无非是优化io操作的性能.在innodb的文件IO部分中,主要实现集中在os_file.*和fil0fil.*两个系列的文件当中,其中o

MySQL InnoDB Online DDL学习

正文 MySQL Online DDL这个新特性是在MySQL5.6.7开始支持的,更早期版本的MySQL进行DDL对于DBA来说是非常痛苦的.现在主流版本都集中在5.6与5.7,为了更好的理解Online DDL的工作原理与机制,本文就对Online DDL的实现方式进行总结. 本文使用的MySQL版本为官方社区版 5.7.24. (root@localhost) [test] > select version(); +------------+ | version() | +--------

InnoDB 存储引擎的线程与内存池

InnoDB 存储引擎的线程与内存池 InnoDB体系结构如下: 后台线程: 1.后台线程的主要作用是负责刷新内存池中的数据,保证缓冲池中的内存缓存的是最近的数据: 2.另外,将以修改的数据文件刷新到磁盘文件: 3.同时,保证在数据库发生异常的情况下,InnoDB能恢复到正常运行状态. 内存池:InnoDB有多个内存块,这些内存块组成了一个大的内存池.这些内存块包括有:缓冲池(innodb_buffer_pool)和日志缓冲(log_buffer)以及额外内存池(innodb_addtional

innoDB源码阅读笔记--缓冲池

最开始学Oracle的时候,有个概念叫SGA和PGA,是非常重要的概念,其实就是内存中的缓冲池.InnoDB的设计类似于Oracle,也会在内存中开辟一片缓冲池.众所周知,CPU的速度和磁盘的IO速度相差可以用鸿沟来形容,因此聪明的前辈们使用了内存这个ROM来弥补这道鸿沟,那么数据库的设计者们也继承了这个优良的设计理念,在内存中开辟了一片区域,存放缓冲数据,提高数据库效率. 可以将磁盘的缓冲区理解成一个简单的模型--由数据块组成的一片区域,数据块(block/page)默认大小是16KB.那么现

InnoDB发展历史

InnoDB和MySQL的一些曲折历史: InnoDB引擎是由InnobaseOy公司开发. 2001年,Innobase公司开始与MySQL AB公司进行合作并开源InnoDB存储引擎的代码. Oracle公司在2005年以迅雷不及掩耳之势收购了Innobase公司. 2008年Sun公司收购MySQL AB公司. 2009年Oracle收购Sun公司,而MySQL数据库最终到了Oracle的手中,InnoDB存储引擎和MySQL终于又在一起了. 2008年发布InnoDB Plugin,适用