大型SQL文件导入mysql解决方案

作者: Darren 分类: mysql 发布时间: 2019-08-10 22:55

今天遇到提问,就是一个20G的数据库文件要导入到一个2G的小机器中,怎么实现感觉上,如果是2G的小机器是跑linux那还好,如果是跑window,那么就已经占了1.5G(包括了环境),在网上找了很多解决方案,但是都是效率不是很好最后找到一款不错的软件与解决方案.如果是默认方式导入,那么需要修改mysql的默认配置文件,修改mysql中的max_allowed_packet参数为10G大小,net_buffer_length参数也根据需求适度调大。

 

这里运行环境是linux:

最后在网上找到一款软件名字叫做SQLDumpSplitter3_0.9.2,先进行数据库切割,最后批量导入.

大型SQL文件导入mysql解决方案插图

source /mydata/sql/a.sql;
source /mydata/sql/b.sql; 如果有多个请继续往下扩展

为避免ssh连接掉线而导致执行关闭,需要写一个shell脚本,通过nohup后台执行。
myshell.sh脚本如下

mysql -h host  -uxxx -pxxx --database=user_database</mydata/sql/all.sql

后台执行指令

nohup ./myshell.sh &

 

最后总结一下:对于大型sql,最好的方案也是先切割(确保顺序性),然后利用一些更高效率的软件执行来实现最终结果,也需要根据时间空间场景灵活选用方案。

 

 

相关文件下载地址
©下载资源版权归作者所有;本站所有资源均来源于网络,仅供学习使用,请支持正版!

发表评论

电子邮件地址不会被公开。

3 × 2 =