mysql5.7物理快速复制大数据表
在mysql5.7下复制大表一般用mysql,mysqldump命令导出后再导入,如果表比较大,这个时间就比较长了。我们使用物理的方式迅速复制大表 。
mysql5.7一般用innodb表引擎。对于物理结构有frm和ibd表,前者是表结构,后者是表数据又称表空间。(到了mysql8 取消了frm)
步骤
物理复制数据表具体步骤如下:
1.在目标库建立与源数据表相同的表结构的表
如源数据库source有源数据表user。在目标数据库target建立表与source.user相同表结构的目标数据表target.user。在数据库目录,找到target.user对应得物理数据文件user.frm和user.ibd。
2. 删除目标数据库表空间(.ibd文件)
alter table user discard tablespace;
3. 复制源数据库.ibd文件到目标数据库
用cp,scp进行将源数据库的源数据表的.ibd文件复制到目标数据库的物理储存位置。然后更改文件的所有权限。
chown -R mysql:mysql user
4.导入表空间
alter table user import tablespace;
本文介绍了在MySQL5.7环境下,如何利用物理方式快速复制大数据表,包括创建相同表结构、删除目标表空间、复制ibd文件并导入,以及对frm和ibd文件的处理,以及MySQL8中字典缓存的替代作用。
518

被折叠的 条评论
为什么被折叠?



