У меня есть файл sql размером 15 ГБ, который является резервной копией базы данных. Проблема в том, что на полпути он потерпел неудачу. К счастью, я знаю, с какого стола выбрать.
Есть ли способ разбить этот файл SQL по начальной точке таблицы, из которой мне нужно извлечь, или, возможно, заставить mysql сделать это сам?
Спасибо
Вы могли бы использовать sed
разделить файл с использованием диапазонов
sed -n '/Start Text/,/End Text/p' >part.sql
Это начнет печать, когда /Start Text/
найден и будет продолжать печать, пока /End Text/
или достигнут конец файла. Удостовериться Start Text
уникален для отправной точки и End Text
нет в файле.
Вы можете использовать split
команда (посмотрите на параметр количества строк), или вы можете использовать dd
с байтовым смещением (найдено с помощью grep -b
) для извлечения из файла дампа.
Вот сообщение в блоге который охватывает этот процесс (это ответ, который я дал в другом месте на сайте и решил написать решение в блоге).