Быстрый бекап (копирование без индексов)

InterSky
Дата: 02.02.2013 23:38:43
А можно для быстрого бекапа просто скопировать файлы данных и структуры (без индексов)?
Тоесть копируем файл .myd и .frm (а .myi игнорируем).
Просто база несколько гигов, и столько же индексы занимают.
Ну наверняка есть загрузить базу без .myi с какими-то ключиками востановления, то MySQL пересоздаст .myi файл.
Верно?

P.S. Конечно я понимаю что на воссоздание индексного файла MySQL потратит много времени, но я предпологаю что время востановления индекса будет гораздо короче чем востановление аналогичной базы из дампа (ведь ему надо было бы вначале загрузить дамп, а потом точно так же создать индексы). И разумеется я понимаю что копирование можно производить только при выключеной базе.
Просто копирование файлов данных (8Гб) меньше минуты. Делать бекапы вместе в индексами - в два раза больше места. А делать дамп - почти час!

Если мои рассуждения в какой-то мере верны, могли бы подсказать с какими ключами надо запустить myisamchk или mysqlcheck для более быстрого востановления?
DBConstructor
Дата: 02.02.2013 23:40:41
InterSky, бэкапы не копируют индексы
vkle
Дата: 03.02.2013 02:59:25
InterSky
Просто копирование файлов данных (8Гб) меньше минуты. Делать бекапы вместе в индексами - в два раза больше места. А делать дамп - почти час!
А репликация на бекап-сервер требует только единоразовых затрат времени в самом начале. Потом синхронизация идет в фоне.
InterSky
Дата: 03.02.2013 04:06:38
Причём тут "бэкапы не копируют индексы"?
Я же сказал - при размере базы если брать дамп уйдёт больше часа!

Причём тут "репликация на бекап-сервер требует только..."
Для репликации нажна отдельная машина!
А мне просто скинул раз в неделю базу на переносной винт, и нормально...

Вопрос про то что - если копируются сами файлы, есть ли необходимость копировать индексы, или спокойно можно копировать без файлов .myi, так как если когда-то придётся восстанавливать, то MySQL сама создаст этот файл?
InterSky
Дата: 04.02.2013 17:14:56
И тишина... Неужели никто не знает?
Akina
Дата: 04.02.2013 17:49:57
InterSky, чем сидеть и ждать ответа - проще и быстрее попробовать (на небольшой тестовой БД).
InterSky
Дата: 04.02.2013 20:29:30
Индексы сотни раз летели и приходилось восстанавливать...
Просто думал - а вдруг в таком варианте есть минусы?
ctapnep
Дата: 04.02.2013 22:43:58
так копировать myisam базы можно. Лучше всего для этого использовать стандартную утилиту mysqlhotcopy. Можно с ключом --noindices если есть такое желание. Восстанавливать индексы командой myisamchk -rq

А вот InnoDB таблицы так копировать не получится.
InterSky
Дата: 05.02.2013 00:33:44
mysqlhotcopy в виндоуской версии представлен просто перловским файлом (с расширением .pl) тоесть может его через какой-то интерпретатор и можно запустить, но не разу не слышал о таких...
Если правильно понимаю, он просто коннектится к базе, делает Flush (скидывает кеш) и делает Lock (блокирует) нужую таблицу, после чего копирует её .myd и .frm, после чего делает UnLock. Или что-то ещё?
ctapnep
Дата: 05.02.2013 02:51:51
InterSky,
В линуксе он тоже исключительно перловый скрипт. В целом да, он лочит базу, скидывает логи и данные и копирует.
Если в системе нет перла и не хочется его ставить, то можно и вручную.