我有一个 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
)从转储文件中提取。
这是一篇博客文章涵盖了该过程(这是我的一个答案在网站的其他地方给了并决定在博客上发布解决方案)