Кращі практики для резервного копіювання сервера MySQL:
Реплікація MySQL
Реплікація установки в MySQL. Вам доведеться налаштувати Master і Slave сервер. Усі записи, що читаються в БД, можуть перейти на ваш Slave Server. Перевагою реплікації є те, що ви можете взяти резервну копію з вашого підлеглого сервера, не перебиваючи головний сервер, ваша програма продовжуватиме працювати на Master без будь-яких простоїв.
Використання дампа MySQL
Якщо ваш набір даних невеликий (я розумію, що "малий" є відносним терміном .. щоб його кваліфікувати, скажімо, <10 Гб), то mysqldump, ймовірно, буде чудово працювати. Це легко, це онлайн та дуже гнучко. Лише декілька речей, які може виконати mysqldump: створити резервну копію всього або лише певних баз даних або резервного копіювання таблиць, лише DDL оптимізує дамп для швидшого відновлення, зробивши отриманий файл sql більш сумісним з іншими RDBMS і багатьма іншими речами.
Однак найважливіші варіанти пов'язані з послідовністю резервного копіювання. Мої улюблені варіанти: --sele-транзакція: ця опція дає послідовне резервне копіювання, якщо (і лише якщо) таблиці використовують механізм зберігання InnoDB. Якщо у вас є таблиці MyISAM, які не доступні лише для читання, тоді не використовуйте цю опцію, створюючи резервну копію. --master-data = 2: цей параметр забезпечить послідовність вашого дампа (роблячи таблиці "lock-all", якщо ви не додали параметр --single-транзакція). Параметр --master-data також записує бінарне положення журналу в результуючому файлі дампа (= 2 викликає, що цей рядок є коментарем у дамп-файлі)
Заключна примітка про mysqldump: майте на увазі, що час відновлення може бути значно довшим, ніж час резервного копіювання. Це буде залежати від кількох факторів, наприклад, скільки індексів у вас є.
Знімок LVM
Для тих, хто має більші набори даних, фізична резервна копія - це шлях. Хоча ви можете зробити холодну резервну копію (тобто вимкнути службу MySQL, скопіювати каталог даних, перезапустити службу), багато людей не хочуть простоїв. Моє улюблене рішення - знімки. Це може бути гарячим (для InnoDB) або вимагати короткого блокування (для MyISAM). Не забудьте включити всі свої дані (включити ib_logfiles). Lenz пропонує гарну утиліту, щоб допомогти у цьому: http://www.lenzg.net/mylvmbackup/
Використання резервної копії MySQL Enterprise
Переваги використання MySQL Enterprise Backup:
- "Гарячі" резервні копії таблиць InnoDB відбуваються повністю в Інтернеті, не блокуючи резервне копіювання лише окремих таблиць або просторів таблиць
- Резервне копіювання даних, які змінилися після попередньої резервної копії
- Стиснене резервне копіювання - економить обсяг пам’яті до 90% та багато іншого ..
Довідка:
http://www.mysql.com/products/enterprise/backup/features.html
http://www.mysql.com/products/enterprise/backup.html
--single-transaction
але не забудьте додати,--events --routines
і я завжди також використовую--triggers
, навіть якщо це включено за замовчуванням, оскільки його можна відключити в my.cnf. Я б сказав, що це завжди завжди добре використовувати їх як стандартну практику, чи є у вас зараз такі типи об’єктів у вашій базі даних чи ні.