Mysql 五千万级数据快速迁移保姆级教程

       

1.源数据库5.7 目标数据库 8

Mysql8服务器安装之前 需要安装.net 并且关闭用户账户控制

试验涉及到的文件

Everything.exe

mysql-installer-community-8.0.24.0.msi

Notepad2.exe

NDP461-KB3102436-x86-x64-AllOS-ENU.exe

NDP461-KB3102436-x86-x64-AllOS-ENU静默安装.bat

2.Navicat同步表结构

 

3.目标库 配置

Root登陆命令行

SHOW VARIABLES LIKE "secure_file_priv";

必须使用 Notepad2.exe 修改配置文件

C:\ProgramData\MySQL\MySQL Server 8.0\my.ini

查找 secure-file-priv

#secure-file-priv="C:/ProgramData/MySQL/MySQL Server 8.0/Uploads"

secure-file-priv=

       

重启目标服务器 mysql服务

       

4.原系统导出数据到文件

用root登陆

执行查询 导出到excel

select

    table_schema as '数据库',

    table_name as '表名',

    table_rows as '记录数',

    truncate(data_length / 1024 / 1024, 2) as '数据容量(MB)',

    truncate(index_length / 1024 / 1024, 2) as '索引容量(MB)'

from

    information_schema.tables

where

    TABLE_SCHEMA in ('nwms')

order by

    data_length desc,

    index_length desc

得到所有表信息

生成表导出语句

select * into outfile "c:\\mysqlbak\\z_object_transcation.sql" from z_object_transcation;

       

       

原系统执行sql导出数据到文件

导出数据速度为 虚拟机内3g数据 4分钟

5.目标服务器导入 数据

 拷贝文件到 目标服务器

5.1生成导入数据 语句

load data infile "d:\\mysqlbak\\z_object_transcation.sql" into table z_object_transcation ;

excel 公式 ="load data infile ""d:\\mysqlbak\\"&B2&".sql"" into table "&B2&" ;"

     

     

用root登陆

新建空数据库iwms

Use iwms

执行上面的脚本

导入完成

 实际导入速度: 3g数据文件在2g内存1核cpu 虚拟机内导入完成耗费19分钟 还原后的数据文件mt_material_lot.ibd 3.89g

如果用Navicat 数据传输 功能, 这张表需要3个小时以上

相关参考文摘

MySQL查看表占用空间大小 - 月染霜华 - 博客园

https://www.cnblogs.com/shoshana-kong/p/11136919.html

     

MySQL数据库迁移快速导出导入大量数据_Mysql_脚本之家

https://www.jb51.net/article/157887.htm

     

MySQL 之 LOAD DATA INFILE 快速导入数据 - LeRoi - 博客园

https://www.cnblogs.com/waynechou/p/7794939.html

     

   

按此文操作完全可以试验成功

全文完

 

点击加入群聊【SAP_MES行业交流

posted @ 2021-12-31 15:27  网络来者  阅读(1149)  评论(0编辑  收藏  举报