美文网首页
mysql Innodb引擎独立表空间下通过复制.ibd文件快速

mysql Innodb引擎独立表空间下通过复制.ibd文件快速

作者: 程序猿先生 | 来源:发表于2018-03-29 10:25 被阅读0次

    假设需求:需要把库test1中的的数据迁移到test2中,并且test2中数据量特别大

    硬性条件:1.mysql 使用 Innodb引擎,且开启独立表空间,2.两个库的mysql版本一致(不同版本下未做测试)

    1.导出test1库的表结构创建语句,在test2库中执行

    2.使test2库表空间卸载,

    SELECT CONCAT('ALTER TABLE ', TABLE_NAME, ' discard tablespace;') FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'test2' and TABLE_TYPE like '%TABLE%' 

    把这条语句查询结果导出为sql文件,然后在test2中执行这个sql文件,执行完毕则使test2库所有表空间已卸载

    3.停止mysql服务

    4.进入mysql的数据文件夹,windows下目录类似“C:\ProgramData\MySQL\MySQL Server 5.6\data”,进入"test1"文件夹中复制所有.ibd文件到“test2”中

    5.开启mysql服务,并使test2库表空间装载

    SELECT CONCAT('ALTER TABLE ', TABLE_NAME, ' import tablespace;') FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'test2' and TABLE_TYPE like '%TABLE%' 

    类似地把上面执行结果导出为sql文件,在执行,至此数据库test1中所有的数据已迁移到test2中

    相关文章

      网友评论

          本文标题:mysql Innodb引擎独立表空间下通过复制.ibd文件快速

          本文链接:https://www.haomeiwen.com/subject/tdtmcftx.html