восстановление одной базы из большого файла

pavel83

Новичок
восстановление одной базы из большого файла

Простой вопрос поверг в тупик:
имеется текстовый бекап всех баз сервера MySQL 451 Мб, без архива (сделанный утилитой fsbackup или mysqldump)

Подскажите как оттуда восстановить только одну базу (текстовый дамп весит в районе метра)?
Локально текстовым редактором порезать не получается (пробовал emEditor, Pspad)
Может какие ключи у mysql есть, восстанавливающие только одну базу?
 

vovanium

Новичок
Хм, а какая версия emeditor? Я им правил гиговые дампы. Можно сделать простейший скрипт, который выкусит кусок дампа между USE 'нужная БД' и до USE 'следующая БД в дампе'.
Также можно на локалке восстановить это всё, а потом сделать дамп нужной базы.
 

pavel83

Новичок
Автор оригинала: vovanium
Хм, а какая версия emeditor? Я им правил гиговые дампы. Можно сделать простейший скрипт, который выкусит кусок дампа между USE 'нужная БД' и до USE 'следующая БД в дампе'.
Также можно на локалке восстановить это всё, а потом сделать дамп нужной базы.
1. EmEditor v5.00 1,5 Гига оперативки проц 3 Ггц (правда одноядерный) честно ждал час
2. Про скрипт тоже была мысль, только думаю надо читать весь файл кусочками в цикле, а то, наверное функцией file() машина на которой это все пахать будет загнется :)
3. Интересный вариант, попробую
 

brook

Новичок
По поводу редактирования файла - попробуйте через Far, я им правил дампы большие
 

pilot911

Новичок
notepad++ спокойно открывает 100 метровые дампы, больше не пробовал
 

vovanium

Новичок
pavel83
1. Ну ты и антиквариатом пользуешься, EmEditor уже 9 версия доступна ;) У него проблем с большими файлами нет, гиговые дампы открывал с подсветкой и сохранял без проблем, за секунды.
2. Ну естественно частями читать :)
 

pavel83

Новичок
Всем спасибо, особенно vovanium

Проблема решилась с помощью Emeditor-а. Даже целиком весь файл открылся (единственное при изменении файла restore не сохранял)
 

pavel83

Новичок
Автор оригинала: Alexandre
насмешил :)
может я дедушка но: head+tail + grep + элементарное знание юникс режет все прекрасно.
Моих знаний юниксовой консоли на это видимо не хватает, при том что я представляю, что каждая из команд делает. Если так все просто - рецепт в студию, все, кто участвовал в обсуждении возьмут на заметку. Случай-то вполне стандартный.
 

Alexandre

PHPПенсионер
схема очень простая:
grep -n 'CREATE DATABASE'
дает номера строк содержащих 'CREATE DATABASE
Пусть надо взять от 100 до 500
отрезаем низ
head -500 mysql.dump > mysql.dump.tmp
расчитываем остаток
500-100 = 400
отрезаем верх
tail -400 mysql.dump.tmp > mysql.new.dump

последовательность моно изменить, сперва отрезать верх, потом низ

режет любые объемы, даже гигабайтные.
 
Сверху