Как мне заархивировать базы данных MySQL?
Вопрос
У меня есть база данных MySQL, которую я хочу архивировать . Каков наилучший способ сделать это?
Примечание. Я не хочу просто создать резервную копию . Я хочу сделать одноразовый экспорт данных для долгосрочного хранения таким образом, чтобы я мог получить их позже. В частности, я хочу, чтобы меня не привязывали к MySQL, базе данных или, предпочтительно, к какому-либо конкретному программному обеспечению (мне бы очень хотелось, чтобы это было тривиально - написать программу, которая может читать ее обратно, что-то вроде нескольких десятков строк C или perl) . р>
Мой текущий план состоит в том, чтобы записать материал в таблицу с использованием механизма CSV, а затем записать его на DVD. Это хорошо, потому что CSV может быть загружен многими разными программами. Единственный недостаток в этом заключается в том, что основная часть данных находится в столбцах Blob, как в двоичном формате, поэтому мне нужно будет декодировать, как это кодируется.
Решение
Экспорт в CSV, кодирование двоичных данных в кодировке Base64, а затем сжатие с помощью gzip звучит как хороший путь. Я бы посоветовал вам хорошо подумать о выборе DVD. Записываемые носители имеют тенденцию быстро портиться с годами.
Другие советы
Вы можете выгрузить всю БД в файл .sql и использовать VCS для архивирования каждой версии. Если вам нужна старая версия, вы можете экспортировать ее из хранилища и восстановить из нее.
mysql> ALTER TABLE arch2 ENGINE='ARCHIVE';