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

Как сделать резервную копию базы данных MySQL из командной строки в CentOS?

Мне нужно сделать резервную копию базы данных на CentOS 5.5, запустив сервер MySQL из командной строки. В основном мне нужно экспортировать все в нем.

Если у вас есть большая база данных, которую вы хотите сохранить в оперативном режиме (т.е. не блокировать чтение) во время резервного копирования, вы также можете рассмотреть Innobackupex скрипт, который использует xtrabackup из percona, который поддерживает онлайн-резервное копирование как inno, так и myisam (с некоторой степенью согласованности)

Zmanda имеет продукт ZRM manager, который включает mysqldump инструмент и сочетает в себе планировщик и агент отчетов, что удобно для управления заданиями cron и восстановления.

xtrabackup manager также является инструментом командной строки, который обертывает вызовы и в некоторой степени управляет планированием ... http://code.google.com/p/xtrabackup-manager/

А также есть Голландия, еще одна оболочка командной строки для резервного копирования mysql, которая поддерживает несколько бэкэндов.

Следуя @symcbean, это моя попытка получить согласованный дамп командной строки системы со смешанной конфигурацией движка myisam и innodb ... (это, очевидно, сделает вашу базу данных доступной только для чтения, пока она не будет завершена, и любые INSERT / UPDATE / DELETE запросы будут заблокированы и т. Д.)

FLUSH TABLES WITH READ LOCK;
SET GLOBAL read_only = ON;

#--single-transaction is only useful if all the tables are innodb
SYSTEM mysqldump --lock-all-tables --quick --all-databases > all-databases.sql

SET GLOBAL read_only = OFF;
UNLOCK TABLES;

предостережения в том, что GLOBAL read_only не уважает пользователей root, поэтому, если вы запускаете свои веб-приложения как root, вам нужно будет убедиться, что они также были остановлены.

также, если ваша файловая система - xfs, или на LVM, вы можете использовать собственные инструменты fs, чтобы получить блокировку READ на уровне fs, которая устраняет необходимость блокировки на уровне базы данных. например для xfs;

СИСТЕМА xfs_freeze

а для lvm есть dmsetup.

mysqldump - подробности читайте на странице руководства.

Обратите внимание, что создание файла полной резервной копии может занять некоторое время - если вы хотите согласованную резервную копию, подумайте о настройке ведомого устройства репликации (и отключите репликацию во время создания резервной копии).

Использовать mylvmbackup сделать снимки файловой системы или (если база данных небольшая) mysqldump получить дамп SQL. Я не рекомендую mysqldump для больших наборов данных.

Также, mysqlhotcopy идеально подходит для MyISAM.

Для InnoDB попробуйте Горячее резервное копирование, но это стоит.