Назад | Перейти на главную страницу

Разделить большой файл sql по расположению строки ИЛИ запустить sql с последней ошибки

У меня есть файл 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) для извлечения из файла дампа.

Вот сообщение в блоге который охватывает этот процесс (это ответ, который я дал в другом месте на сайте и решил написать решение в блоге).