Резервное копирование MySQL Server

13

Какой лучший способ сделать резервную копию сервера MySQL? Я хотел бы метод, который не требует сбоя сервера. Нужно ли что-то вроде горячего резервного копирования InnoDB , или я могу просто использовать инструменты резервного копирования, предоставляемые в инструментах администратора MySQL. Какие преимущества предлагает одно над другим?

Kibbee
источник

Ответы:

12

Мы используем mysqldump, который работает во время работы MySQL. Мы начали использовать mysqldump, потому что его было проще всего настроить, когда наши потребности были небольшими, и казалось, что он удовлетворяет эти потребности. С тех пор наши базы данных выросли, но мы еще не переросли mysqldump. Подходит ли он вам, будет зависеть от размера ваших баз данных, их обычной рабочей нагрузки и, возможно, множества других вещей.

Timb
источник
mysqldump отлично. В отличие от двоичных дампов некоторых других RDMS, по умолчанию файлы, которые генерирует mysqldump, представляют собой текстовые файлы с полноценными командами sql - в основном это операторы CREATE TABLE и INSERT для строк. Как простые текстовые файлы, ими можно легко манипулировать, сжимать или шифровать.
Недм
3
mysqldump ломается, когда у вас большие базы данных и / или когда вы полагаетесь на MyISAM. У нас есть около 400 баз данных с большим количеством индексов, которые необходимо перестроить при импорте дампа, чтобы восстановление из резервной копии занимало три дня. Снимок LVM дает намного лучшее время восстановления, когда вы переросли mysqldump.
Нильс-Андерс Нётцетер
4

взгляните на xtrabackup от percona - это интересная альтернатива mysqlhotcopy с открытым исходным кодом для баз данных innodb.

Вы можете прочитать больше об этом здесь

PQD
источник
3

Можно использовать mysqldump , но он не гарантирует согласованного набора данных, если только вы не заблокируете все таблицы на время дампа. Это переведет базу данных в режим только для чтения, но обеспечит согласованность дампа.

Вы можете заблокировать таблицы с помощью команды:

FLUSH TABLES WITH READ LOCK;

И когда вы закончите, вы можете снять блокировку с помощью:

UNLOCK TABLES;
казарка
источник
7
mysqldump - единственная транзакция обеспечит непротиворечивый снимок
Дейв Чейни
5
--single-транзакция работает только тогда, когда все ваши таблицы InnoDB. Таблицы MyISAM не поддерживают транзакции.
Нильс-Андерс Нётцетер
2

Настройка MySQL Replication . В качестве бонуса вы получаете сервер для выполнения тяжелых заданий по составлению отчетов и mysqldump без ущерба для вашей основной производственной базы данных.

Дейв Чейни
источник
Помните, что репликация может быть отложена и поэтому не обязательно резервное копирование вашего мастера на определенный момент времени.
2
Репликация не является резервной копией. Если вы случайно удалите что-либо в ведущем устройстве, ведомое устройство также удалит это. Впрочем, в качестве ведомого устройства полезно использовать mysqldump, потому что это не повлияет на ваш рабочий сервер (как упоминал Дейв).
Мартейн Химельс
0

Самый простой способ - просто использовать команду mysqldump .

WerkkreW
источник
0

Существует также инструмент под названием mysqlhotcopy, который я посмотрел сразу и подумал, что он имеет многообещающее значение - тем не менее, никогда не использовал его.

казарка
источник