Innodb 表空间传输迁移大表
发布日期:2021-11-08 09:37:38
浏览次数:1
分类:技术文章
本文共 2877 字,大约阅读时间需要 9 分钟。
参考:小萝卜
在mysql5.5之前,mysql实例中innodb引擎表的迁移是个头疼的问题,要么使用mysqldump导出,要么使用物理备份的方法,但是在mysql5.6之后的版本中,可以使用一个新特性,方便地迁移Innodb表,这样一来大的innodb表的迁移就显得很easy,这个特性就是innodb表空间传输:目前我实验用的是小表,有机会就可以用大表测试下。
1.在迁出实例数据库:
mysql> use db1;
>select * from t1; #查询一下迁出实例表数据,这里是测试表,大表请不要这么干
+------+---------+------+------+
| id | name | sex | age |
+------+---------+------+------+
| 1 | aaa | f | 23 |
| 2 | abb | m | 23 |
| 6 | cccb | m | 27 |
| 3 | cddccb | m | 27 |
| 4 | ceeeccb | m | 99 |
+------+---------+------+------+
5 rows in set (0.00 sec)
>show create table t1; #查看表定义语句,复制出来
+-------+--------------------------------+
| table | create table |
+-------+--------------------------------+
| t1 | create table `t1` (
`id` int(10) default null,
`name` varchar(20) default null,
`sex` varchar(5) default null,
`age` int(3) default null
) engine=innodb default charset=utf8 |
+-------+--------------------------------+
1 row in set (0.05 sec)
2.在迁入实例数据库:
mysql> create database db2;
建表:
mysql> use db2
create table `t1` (
`id` int(10) default null,
`name` varchar(20) default null,
`sex` varchar(5) default null,
`age` int(3) default null
) engine=innodb default charset=utf8
查看表相关文件:
[root@llmj-svn-26-108 db2]# ll /data/mysql/mysql_3306/data/db2/t1*
-rw-r----- 1 mysql mysql 8642 Mar 10 13:59 /data/mysql/mysql_3306/data/db2/t1.frm
-rw-r----- 1 mysql mysql 98304 Mar 10 13:59 /data/mysql/mysql_3306/data/db2/t1.ibd
mysql> alter table t1 discard tablespace;#注意再三确认这个命令有没有搞错对象,一执行就会把ibd文件给删掉
再次查看表相关文件,可以看到没有了表空间文件ibd:
[root@llmj-svn-26-108 db2]# ll /data/mysql/mysql_3306/data/db2/t1*
-rw-r----- 1 mysql mysql 8642 Mar 10 13:59 /data/mysql/mysql_3306/data/db2/t1.frm
3.在迁出实例数据库:
mysql> use db2;
mysql> flush tables t1 for export; #这个时候会加表锁,只能读不能写,同时也会产生一个tb_name.cfg文件
然后复制这个表的ibd和cfg文件到迁入实例的新建同名库目录下:
[root@node1 db2]# scp t1.{cfg,ibd} root@192.168.26.108:/data/mysql/mysql_3306/data/db2/
reverse mapping checking getaddrinfo for bogon [192.168.26.108] failed - POSSIBLE BREAK-IN ATTEMPT!
root@192.168.26.108's password:
t1.cfg 100% 513 0.5KB/s 00:00
t1.ibd 100% 96KB 96.0KB/s 00:00
mysql> unlock tables; #解锁迁出实例表
4.在迁入目标实例上:
mysql> use db2;
chown mysql.mysql /data/mysql3306/xiaoboluo/test1.{ibd,cfg}
查看文件权限:
[root@llmj-svn-26-108 db2]# chown mysql:mysql t1*
[root@llmj-svn-26-108 db2]# ll
total 116
-rw-r----- 1 mysql mysql 61 Mar 10 13:58 db.opt
-rw-r----- 1 mysql mysql 513 Mar 10 14:04 t1.cfg
-rw-r----- 1 mysql mysql 8642 Mar 10 13:59 t1.frm
-rw-r----- 1 mysql mysql 98304 Mar 10 14:04 t1.ibd
mysql> Alter table t1 import tablespace; #导入表空间文件
> select * from t1; #校验数据是否正常,这里是测试表,大表请用其他方法验证数据
+------+---------+------+------+
| id | name | sex | age |
+------+---------+------+------+
| 1 | aaa | f | 23 |
| 2 | abb | m | 23 |
| 6 | cccb | m | 27 |
| 3 | cddccb | m | 27 |
| 4 | ceeeccb | m | 99 |
+------+---------+------+------+
5 rows in set (0.00 sec)
到这里整个innodb表就被迁移完成,是不是比以前的方法方便很多呢!!
转载地址:https://blog.csdn.net/zhengwei125/article/details/67633611 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月18日 13时44分10秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
vue 事件总线EventBus的概念、使用以及注意点
2019-04-27
JavaScript 用七种方式教你判断一个变量是否为数组类型
2019-04-27
黄家懿:河北高校邀请赛 -- 二手车交易价格预测决赛答辩
2019-04-27
如何利用pyecharts绘制酷炫的桑基图?
2019-04-27
王朝阳:河北高校邀请赛 -- 二手车交易价格预测决赛答辩
2019-04-27
Scratch等级考试(二级)模拟题
2019-04-27
如何在Jupyter Lab中显示pyecharts的图形?
2019-04-27
什么是Python之禅?
2019-04-27
【青少年编程】【Scratch】01 运动模块
2019-04-27
json的序列化与反序列化
2019-04-27
【第16周复盘】学习的飞轮
2019-04-27
如何利用pyecharts绘制炫酷的关系网络图?
2019-04-27
NCEPU:线下组队学习周报(007)
2019-04-27
【青少年编程】【二级】寻找宝石
2019-04-27
【组队学习】【26期】Linux教程
2019-04-27
LeetCode-LCP 18. 早餐组合(Goland实现)
2019-04-27
C++从入门到进阶近100本书推荐电子书pdf
2019-04-28
蓝桥杯 - [2014年第五届真题]分糖果(模拟)
2019-04-28
蓝桥杯 - [2013年第四届真题]大臣的旅费(DFS)
2019-04-28
蓝桥杯 - [2013年第四届真题]带分数(全排列)
2019-04-28