Heim > Datenbank > MySQL-Tutorial > Mysql 5.6原生支持单个表的迁移,不需要导出操作_MySQL

Mysql 5.6原生支持单个表的迁移,不需要导出操作_MySQL

WBOY
Freigeben: 2016-06-01 13:11:08
Original
1239 Leute haben es durchsucht

在5.6之前,迁移一个表到另外的服务器,需要使用导入和导出的方式。在5.6版本,可以直接拷贝.ibd文件进行快速的迁移,这对大表的迁移非常有用。

前提必须开启innodb_file_per_table选项。

set global innodb_file_per_table = 1:
Nach dem Login kopieren


验证:

源服务器:

1、创建表

use test;CREATE TABLE t(c1 INT) engine=InnoDB;
Nach dem Login kopieren
Nach dem Login kopieren


目标服务器:

2、创建同样结构的表

use test;CREATE TABLE t(c1 INT) engine=InnoDB;
Nach dem Login kopieren
Nach dem Login kopieren


3、丢弃表空间,在导入之前必须做这步

ALTER TABLE t DISCARD TABLESPACE;
Nach dem Login kopieren

Mysql 5.6原生支持单个表的迁移,不需要导出操作_MySQL


在mysql 5.6或更高版本,导入表空间的之间的服务版本必须都是GA版本,并在同一个系列;


源服务器:

4、静默表,创建.cfg元数据文件

FLUSH TABLES t FOR EXPORT;
Nach dem Login kopieren


该语句支持innodb表,从5.6.6可用;该语句确保该表的所有改变刷新到磁盘,以能在服务器运行时拷贝二进制文件;该语句锁表,只读模式;


5、从源服务器拷贝.cfg元数据文件和.ibd文件到目标服务器

/! scp /usr/local/mysql56/data/test/t.{ibd,cfg} root@192.168.56.102:/usr/local/mariadb10/data/test
Nach dem Login kopieren


6、在源服务器释放锁

UNLOCK TABLES;
Nach dem Login kopieren


目标服务器:

7、导入表空间

 ALTER TABLE t IMPORT TABLESPACE;
Nach dem Login kopieren


在导入数据时不会检查外键约束,所以在导出时,应该停止更新表、提交所有事务,并在表上获取共享锁;


检查数据是否完整:

源服务器,

Mysql 5.6原生支持单个表的迁移,不需要导出操作_MySQL


目标服务器:

Mysql 5.6原生支持单个表的迁移,不需要导出操作_MySQL


自为知笔记(Wiz)



Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage