在mysql5.5之前,mysql实例中innodb引擎表的迁移是个头疼的问题,要么使用mysqldump导出,要么使用物理备份的方法,但是在mysql5.6之后的版本中,可以使用一个新特性,方便地迁移Innodb表,这样一来大的innodb表的迁移就显得很easy,这个特性就是innodb表空间传输:

1.在迁出实例数据库:

mysql> use xiaoboluo;

mysql> select * from test1;  #查询一下迁出实例表数据,这里是测试表,大表请不要这么干

+------------+-------+-------------+
| product_id | param | create_time |
+------------+-------+-------------+
| 1          |     1 |           1 |
| 10         |    10 |          10 |
| 11         |     1 |           1 |
| 12         |   100 |         101 |
| 13         |   101 |         101 |
| 14         |   100 |         101 |
| 2          |     2 |           2 |
| 3          |     3 |           3 |
| 4          |     4 |           4 |
| 5          |     5 |           5 |
| 6          |     6 |           6 |
| 7          |     7 |           7 |
| 8          |     8 |           8 |
| 9          |     9 |           9 |
+------------+-------+-------------+
14 rows in set (0.00 sec)

mysql> show create table test1;  #查看表定义语句,复制出来

2.在迁入实例数据库:

mysql> create database xiaoboluo;

建表:

mysql> use xiaoboluo

mysql> CREATE TABLE `test1` (
  `product_id` varchar(50) NOT NULL,
  `param` int(11) DEFAULT NULL,
  `create_time` int(11) DEFAULT NULL,
  PRIMARY KEY (`product_id`),
  KEY `i_create_time` (`create_time`),
  KEY `i_product_create_time` (`product_id`,`create_time`),
  KEY `i_param` (`param`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

查看表相关文件:

shell > ll /data/mysql3306/xiaoboluo/test1*
-rw-rw---- 1 mysql mysql   8648 1月   7 09:31 /data/mysql3306/xiaoboluo/test1.frm
-rw-rw---- 1 mysql mysql 147456 1月   7 09:33 /data/mysql3306/xiaoboluo/test1.ibd

mysql> alter table test1 discard tablespace; #注意再三确认这个命令有没有搞错对象,一执行就会把ibd文件给删掉

再次查看表相关文件,可以看到没有了表空间文件ibd:
shell > ll /data/mysql3306/xiaoboluo/test1*
-rw-rw---- 1 mysql mysql 8648 1月   7 09:37 /data/mysql3306/xiaoboluo/test1.frm

3.在迁出实例数据库:

mysql> use xiaoboluo;
mysql> flush tables  test1 for export; #这个时候会加表锁,只能读不能写,同时也会产生一个tb_name.cfg文件

然后复制这个表的ibd和cfg文件到迁入实例的新建同名库目录下:

shell > scp /data/mysql3306/xiaoboluo/test1.{cfg,ibd} 192.168.0.37:/data/mysql3306/xiaoboluo
root@192.168.0.37's password:
test1.cfg                                                                                                  100%  801     0.8KB/s   00:00   
test1.ibd                                                                                                  100%  144KB 144.0KB/s   00:00

mysql> unlock tables; #解锁迁出实例表

4.在迁入目标实例上:
mysql> use xiaoboluo;

shell > chown mysql.mysql /data/mysql3306/xiaoboluo/test1.{ibd,cfg}

查看文件权限:

shell > ll /data/mysql3306/xiaoboluo/test1*
-rw-r----- 1 mysql mysql    801 1月   7 09:40 /data/mysql3306/xiaoboluo/test1.cfg
-rw-rw---- 1 mysql mysql   8648 1月   7 09:37 /data/mysql3306/xiaoboluo/test1.frm
-rw-r----- 1 mysql mysql 147456 1月   7 09:41 /data/mysql3306/xiaoboluo/test1.ibd

mysql> Alter table test1 import tablespace;  #导入表空间文件

mysql> select * from test1; #校验数据是否正常,这里是测试表,大表请用其他方法验证数据
+------------+-------+-------------+
| product_id | param | create_time |
+------------+-------+-------------+
| 1          |     1 |           1 |
| 10         |    10 |          10 |
| 11         |     1 |           1 |
| 12         |   100 |         101 |
| 13         |   101 |         101 |
| 14         |   100 |         101 |
| 2          |     2 |           2 |
| 3          |     3 |           3 |
| 4          |     4 |           4 |
| 5          |     5 |           5 |
| 6          |     6 |           6 |
| 7          |     7 |           7 |
| 8          |     8 |           8 |
| 9          |     9 |           9 |
+------------+-------+-------------+
14 rows in set (0.00 sec)

到这里整个innodb表就被迁移完成,是不是比以前的方法方便很多呢!!

Innodb 表空间传输迁移数据的更多相关文章

  1. EXPDP/IMPDP与EXP/IMP在不同用户和表空间之间迁移数据的实现方法

    1. EXPDP/IMPDP方式 SQL> create user zlm identified by zlm; User created. SQL> grant connect,reso ...

  2. [20170623]利用传输表空间恢复部分数据.txt

    [20170623]利用传输表空间恢复部分数据.txt --//昨天我测试使用传输表空间+dblink,上午补充测试发现表空间设置只读才能执行impdp导入原数据,这个也很好理解.--//这样的操作模 ...

  3. MySQL 表空间传输

    聊到MySQL数据迁移的话题,表空间传输时一个很实用的方法. 在MySQL 5.6 Oracle引入了一个可移动表空间的特征(复制的表空间到另一个服务器)和Percona Server采用部分备份,这 ...

  4. Oracle表空间传输测试

    源数据库平台:window 7 64bit Oracle 11g 64bit目标数据库平台:RHEL6 64bit Oracle 11g 64bit 1.查看数据集 select * from nls ...

  5. Oracle11gR2导入导出实战之表空间传输

    Oracle11gR2导入导出实战之使用Datapump进行表空间传输 表空间检查 [oracle@localhost database]$ ps -ef|grep smon oracle 8981 ...

  6. MySQL Innodb表空间不足的处理方法

    官方给出的解决方案: 添加和删除 InnoDB 数据和日志文件 这一节描述在InnoDB表空间耗尽空间之时,或者你想要改变日志文件大小之时,你可以做的一些事情. 最简单的,增加InnoDB表空间大小的 ...

  7. ibd2sdi — InnoDB表空间SDI提取实用程序

    参考mysql8.0官方文档 https://dev.mysql.com/doc/refman/8.0/en/ibd2sdi.html ibd2sdi是一个实用程序,用于从表空间文件中提取 序列化的字 ...

  8. MySQL InnoDB表空间加密

    从 MySQL5.7.11开始,MySQL对InnoDB支持存储在单独表空间中的表的数据加密 .此功能为物理表空间数据文件提供静态加密.该加密是在引擎内部数据页级别的加密手段,在数据页写入文件系统时加 ...

  9. Oracle创建删除用户,角色,表空间,导入导出数据库命令总结(转载)

    无意间看到一篇文章,觉得对于ORACLE的新手很实用,特转载,原文出处这里 说明:在创建数据库时输入的密码,是修改系统默认的密码,以system和sysman等系统默认身份登录时要输入的密码就是修改后 ...

随机推荐

  1. pptv泥够了!pptv“关闭”事件为营销炒作坐实!

    昨天还让人心生怜悯的pptv聚力,今天下午2点07分又再一次发布微博,而几天发布的内容是see U again!再次证实了pptv昨天的“关闭”还是“倒闭”消息为营销炒作.不过马浩周要问了,真的要这么 ...

  2. java基础总结——概述

      一.java语言概述 来自维基百科 https://zh.wikipedia.org/wiki/Java Java是一种计算机编程语言,拥有跨平台.面向对象.泛型编程的特性,广泛应用于企业级Web ...

  3. docker-freebsd-20150625

    http://www.docker.org.cn/book/docker/prepare-docker-1.html https://wiki.freebsd.org/Docker pkg insta ...

  4. ACM集训的第一题

    对于一群NP(2<=NP<=10)个要互送礼物的朋友,郭铮鹏要确定每个人送出的钱比收到的多多少. 在这一个问题中,每个人都准备了一些钱来送礼物,而这些钱将会被平均分给那些将收到他的礼物的人 ...

  5. (转载)在Visual Studio 2015中使用Git

    原文:http://blog.csdn.net/damon316/article/details/51885802 1. VS2015在对Git的支持 VS2015是微软IDE集成开发环境的重量级升级 ...

  6. spring boot + gradle[草稿]

    入门文档:https://github.com/qibaoguang/Spring-Boot-Reference-Guide 安装gradle 官方下载 https://gradle.org/grad ...

  7. jquery使用注意点以及建议

    jquery是一个非常优秀的js框架,相信大部分人都用过,也都非常熟悉它的应用,用起来也非常简单,基本的操作也都不用说了.这里不在罗列jquery的api,总结下需要注意的点,都是平时容易犯错误的地方 ...

  8. !+"\v1" 能判断浏览器类型吗?

    我在 http://www.iefans.net/ie-setattribute-bug/ 中看到如此判断是否是IE,if(!+"\v1"){IE代码}else{其他浏览器代码}, ...

  9. gedit 没有preference项,使preference回归,并用命令行设置行号,text wrapping等

    1.最简单的,使preference选项回来: gsettings set org.gnome.settings-daemon.plugins.xsettings overrides '@a{sv} ...

  10. GZIP压缩优化

    使用gzip优化web应用(filter实现) 相关知识: gzip是http协议中使用的一种加密算法,客户端向web服务器端发出了请求后,通常情况下服务器端会将页面文件和其他资源,返回到客户端,客户 ...