将大的InnoDB表从一个实例,移动或者复制到另一个实例,有很多的方法,在5.6之前常用的是通过物理或者逻辑备份来实现。
在5.6.6+的版本中,用到了一种基于表空间迁移的快速方法,即类似
oracle TTS。
因为用到,故整理记录至此。
实验用到两台机器,单机单实例,
Mysql 5.6.30。
并将通过vm1>
mysql1> vm2> my
sql2> 区分两台
shell环境和mysql client环境。
〇 过程:
① 先在mysql1上创建测试数据:
-
mysql> \R mysql1>
-
PROMPT set to 'mysql1> '
-
mysql1> USE test;
-
Database changed
-
mysql1> CREATE TABLE tts(id int PRIMARY KEY AUTO_INCREMENT, name char(128));
-
Query OK, 0 rows affected (0.01 sec)
-
-
mysql1> INSERT INTO tts(name) VALUES(REPEAT('a',128));
-
Query OK, 1 row affected (0.00 sec)
-
-
mysql1> INSERT INTO tts(name) SELECT name FROM tts;
-
Query OK, 1 row affected (0.00 sec)
-
Records: 1 Duplicates: 0 Warnings: 0
-
-
mysql1> INSERT INTO tts(name) SELECT name FROM tts;
-
Query OK, 2 rows affected (0.00 sec)
-
Records: 2 Duplicates: 0 Warnings: 0
-
-
………………………………
-
-
mysql1> INSERT INTO tts(name) SELECT name FROM tts;
-
Query OK, 131072 rows affected (0.79 sec)
-
Records: 131072 Duplicates: 0 Warnings: 0
-
-
mysql1> INSERT INTO tts(name) SELECT name FROM tts;
-
Query OK, 262144 rows affected (2.15 sec)
-
Records: 262144 Duplicates: 0 Warnings: 0
-
-
mysql1> \! du -sh /data/mysql/test/tts*
-
12K /data/mysql/test/tts.frm
-
92M /data/mysql/test/tts.ibd
--结束END--
本文标题: MySQL Transportable Tablespace(传输表空间) 使用详解
本文链接: https://lsjlt.com/news/49186.html(转载时请注明来源链接)
有问题或投稿请发送至:
邮箱/279061341@qq.com QQ/279061341
0