将大的InnoDB表从一个实例,迁移到另一个实例,有很多的方法,在5.6之前常用的是通过物理或者逻辑备份来实现。
在5.6.6+的版本中(5.6、5.7应该是现在的标配吧),用到了一种基于表空间迁移的快速方法,即类似Oracle TTS。
使用
用起来十分简单,此处将实例1上的表数据通过TTS方式导入实例2
① 在实例1上创建测试数据:1mysql1> CREATE TABLE tts(id int PRIMARY KEY AUTO_INCREMENT, name char(128));
2Query OK, 0 rows affected (0.01 sec)
3mysql1> INSERT INTO tts(name) VALUES(REPEAT(‘a’,128));
4Query OK, 1 row affected (0.00 sec)
5mysql1> INSERT INTO tts(name) SELECT name FROM tts;
6Query OK, 1 row affected (0.00 sec)
7Records: 1 Duplicates: 0 Warnings: 0
8mysql1> INSERT INTO tts(name) SELECT name FROM tts;
9Query OK, 2 rows affected (0.00 sec)
10Records: 2 Duplicates: 0 Warnings: 0
11………………………………
12mysql1> INSERT INTO tts(name) SELECT name FROM tts;
13Query OK, 262144 rows affected (2.15 sec)