五好的Book

Linux 下 超大文件的编辑

应用场景:在此之前我也没有想到我会为了编辑一个54G大的 sql备份文件而想的头昏脑胀,线上有一个 大概120G的数据库,通过使用mysqldump 导出然后压缩 得到一个 16G的压缩文件,然后传出到本地,再解压,就得到了一个 54G的超大文件。

往常,通过使用 mysql -uroot -p dbname< back.sql 就可以顺利恢复了,不过问题就出在这里, 恢复的时候报了一个错误,大概的意思是 不支持 ngram插件

本地是一个 群晖的NAS 安装了MariaDB套件,即兼容mysql的一个产品,然而他并不支持 ngram (全文索引),这可如何是好啊?

不要急不要燥,该如何导入这个数据进数据库呢, 既然他不支持,那么删除掉这个 定义的语句 即可。

说干就干, vi back.sql

等的我花都谢了, 还在读文件,读54G 的文件。。。。 尝试sed 替换相应的内容, 这里进展不顺利。

这里不得不说, vi 操作 大文件还是很有用的, 只是操作 54G,太为难他了, 那就小一点,他总可以了吧。

尝试了各种 想直接编辑的方法都失败了 ,不得不退而求其次了,那就是把54打散切割, 再合并。

split -C 1024M /volume1/g.sql sql
vi sqlaa  #操作对应的内容后,保存退出
cat sql*> db.sql

不过经过实测,mysql -uroot -p dbname< back.sql 导入到MariaDB速度比较慢, 导入了2天,也还没导入完整,上次我记得是导入到mysql还挺快的。还有 一种办法通过 source 导入,进入mysql后通过mysql的终端 输入 source /sql文件的路径; 等待完成。

本原创文章未经允许不得转载 | 当前页面:五好的Book » Linux 下 超大文件的编辑

评论

文章评论已关闭!