[Mysql] 运行中怎么将表进行迁移

环境:公司上新设备,需要把客户信息从旧设备迁移。

旧设备:mysql版本:5.6   centos:7.3   存储引擎:INNODB

新设备:mysql版本:5.7   centos:7.6   存储引擎:INNODB

战斗时间过长,设备老旧

实现思路,首先要查看之前创库创表语法,并将库和表创建好,然后新表进行分离,再将旧表的idb文件传输到新表/usr/local/mysql/data/库中

1、查之前的创库语法,用同样的语法在新设备上创建库

[Mysql] 运行中怎么将表进行迁移_第1张图片

2、查之前的创库语法,用同样的语法在新设备上创建表

[Mysql] 运行中怎么将表进行迁移_第2张图片

 3、将新创好的表进行分离

 alter table (表名) discard tablespace

[Mysql] 运行中怎么将表进行迁移_第3张图片

[Mysql] 运行中怎么将表进行迁移_第4张图片

4.、把旧设备的 ibd文件通过SCP传到新设备上;

 [Mysql] 运行中怎么将表进行迁移_第5张图片

 5、远程传输不会保留原有权限,将此文件所属者改为mysql

[Mysql] 运行中怎么将表进行迁移_第6张图片

 6、将原表的ibd文件导入

[Mysql] 运行中怎么将表进行迁移_第7张图片

 select查看就会有了!多表转移也是按原表创表语法一个一个来创建,分离、导入可以用拼接命令进行分离导入!

批量分离:

select concat ('alter table ' ,table_schema,'.',table_name , ' discard tablespace') from information_schema.tables where table_schema not in ('sys','mysql','information_schema','performance_schema');

批量导入:

select concat ('alter table ' , table_schema,'.',table_name , ' import tablespace') from information_schema.tables where table_schema not in ('sys','mysql','information_schema','performance_schema');

将要分离、导入的数据直接复制粘贴执行即可。

[Mysql] 运行中怎么将表进行迁移_第8张图片

 

你可能感兴趣的:(sql,oracle,mysql,database)