根据字符串的位置拆分大型 SQL 文件或从上次失败开始 SQL

根据字符串的位置拆分大型 SQL 文件或从上次失败开始 SQL

我有一个 15GB 的 sql 文件,它是数据库的备份。我遇到的问题是,它运行到一半就失败了。幸运的是,我知道从哪个表开始。

有什么方法可以按照我需要从中获取的表的起点来拆分这个 SQL 文件,或者让 mysql 自己执行此操作?

谢谢

答案1

您可以使用sed范围来拆分文件

sed -n '/Start Text/,/End Text/p' >part.sql

当找到时,它将开始打印/Start Text/,并持续打印直到/End Text/到达文件末尾。确保Start Text对于起点来说是唯一的,并且End Text不在文件中。

答案2

您可以使用split命令(查看行数选项),也可以使用dd字节偏移量(使用找到grep -b)从转储文件中提取。

这是一篇博客文章涵盖了该过程(这是我的一个答案在网站的其他地方给了并决定在博客上发布解决方案)

相关内容