- Як зробити бекап MySQL: дамп або бінарний лог?
- Автоматичний бекап MySQL з внутрішнім агентом
- Як зробити бекап бази даних MySQL в режимі бінарних логів
- Оцінка інформації при бекапе таблиці MySQL
- Інформація про резервне копіювання MySQL в режимі дампа
- відновлення MySQL
- Як зробити бекап бази даних MySQL без використання плагіна безкоштовно
- Як зробити бекап навантажених баз даних MySQL?
Наша взаимовыгодная связь https://banwar.org/
В даному документі детально розглядаються принципи і процедури, які необхідно дотримуватися для реалізації стратегії резервного копіювання MySQL на рівні підприємства при використанні агента Bacula Enterprise Edition для MySQL.
Цей посібник користувача містить опис різних методів і стратегій, щоб проводити резервне копіювання баз MySQLі їх відновлення за допомогою агента версії Enterprise. Ці методи також дозволяють адаптувати і настроювати ПО з метою поліпшення продуктивності, ефективності, швидкості і масштабованості різних підходів до резервного копіювання баз MySQL і відповідних даних.
Автоматичне резервне копіювання MySQL розроблено з метою спростити і прискорити процедуру резервного копіювання баз MySQL, а також відновлення MySQL. Програмне забезпечення для бекапа бази даних MySQL і її відновлення створено таким чином, що адміністратору не потрібно ні знати, як працюють вбудовані інструменти для резервного копіювання MySQL, ні вміти створювати складні скрипти. Автоматичний бекап MySQL за допомогою Bacula автоматично створить резервну копію важливої інформації, наприклад конфігурації або визначень користувача. Бекап бази даних MySQL також підтримує два методи: резервне копіювання за допомогою дампа і бінарних логів.
Створення резервних копій MySQL є для платформ Linux 32 і 64 біта (платформи Debian, Ubuntu, CentOS і ін.), І підтримує MySQL 4.0.x, 4.1.x, 5.0.x, 5.5.x, 5.6.x.
Як зробити бекап MySQL: дамп або бінарний лог?
Таблиця, наведена нижче, допоможе вам вибрати один з методів резервного копіювання баз MySQL. Для того щоб вибрати, як зробити бекап бази даних MySQL, необхідно вирішити, чи хочете ви мати можливість відновлювати MySQL до певної контрольної точки, або фільтрувати об'єкти під час створення резервної копії або відновлення MySQL. Також можна комбінувати обидва методи резервного копіювання MySQL для одного сервера.
Можливості автоматичного бекапа MySQL Дамп файл Бінарний лог Можливість відновлення одиничного об'єкта MySQL (таблиця, схема ...) Так [1] Ні Швидкість резервного копіювання MySQL Повільно Швидко Швидкість відновлення MySQL Дуже повільно Швидко Розмір бекапа бази MySQL Маленький Великий Можливість відновлення MySQL до контрольної точки Так Так Підтримка інкрементального / диференціального бекапа MySQL Так Так Онлайн бекап MySQL Так Так Узгодженість Так Так Відновлення MySQL до попередньої основної версії Так [2] Ні Можливість відновити MySQL до нової основної версії Так Ні
[1] Щоб відновити одиничний об'єкт MySQL, необхідно відредагувати дамп файл.
[2] Щоб відновити базу MySQL до попередньої версії, Вам, можливо, буде потрібно відредагувати SQL файл, якщо ви використовуєте функції, недоступні в попередній версії. Як правило, відновлення MySQL до попередньої версії не підтримується і не гарантується.
Малюнок 1: Зв'язок між бекапом і бінарними балками
Автоматичний бекап MySQL з внутрішнім агентом
Автоматичний бекап бази даних MySQL в режимі дампа
Протягом всього терміну існування БД MySQL створює логи, які можна використовувати для реплікації і / або захисту БД за допомогою технології PITR (відновлення MySQL до заданої контрольної точки). За замовчуванням агент MySQL створює дамп кожної БД окремо. Це означає, що, якщо вам потрібно відновити весь сервер, все БД будуть узгоджені по-окремо, але їх резервні копії не створено не буде, в один і той же час. Значить бази даних MySQL не будуть узгоджені глобально. Щоб вирішити дану проблему, агент для резервного копіювання MySQL також буде зберігати лог файли, створювані під час резервного копіювання. Ці лог файли можна буде вважати згодом, щоб гарантувати узгодженість баз даних на певний момент часу.
На малюнку 1, показаний процес створення бекапів баз даних MySQL БД1, БД2 і БД3 (процес займає кілька годин). Під час даного процесу генеруються 3 лог файлу. Ці файли включаються в повний бекап MySQL. Наступний інкрементальний або диференційний бекап MySQL збереже тільки бінарні логи, створені після повного бекапа. Щоб гарантувати, що тільки одна копія кожного лог файлу включена в бекап, необхідно активувати функцію Accurate для виконання завдання.
В наведеному вище прикладі, перший інкрементальний бекап, створений після повного бекапа, включатиме логи 5 і 6, другий інкрементальний бекап включатиме логи 7 і 8. Диференціальний бекап включав би лог файли 5, 6, 7 і 8. При використанні функції all_databases будуть створюватися дампи всіх БД одночасно. При цьому лог файли, створені після закінчення повного бекапа, не включатимуться до нього, а логи, згенеровані до завершення завдання, будуть включені в повний бекап. У прикладі на малюнку 2 показано, що повний бекап згенерує єдиний дамп файл «all-databases.sql», який включатиме лог файли 2 і 3. Перший наступний інкрементальний бекап включатиме логи 4, 5 і 6.
Малюнок 2: Зв'язок між функцією all_databases і бінарними балками
Як зробити бекап бази даних MySQL в режимі бінарних логів
У режимі бінарних логів інструмент MySQL використовує програму Percona XtraBackup, яка представляє собою утиліту для створення гарячого бекапа серверів MySQL, яка не блокує БД під час резервного копіювання. Технологія Percona використовує методи, що гарантують узгодженість всього бекапа MySQL.
Утиліта бекапа MySQL може створювати резервні копії даних зі сховищ InnoDB, XtraDB, і MyISAM на немодифікованих серверах MySQL 5.0, 5.1 і 5.5, також як це робить утиліта Percona Server з XtraDB. Більш детальну інформацію про утиліту Percona ви знайдете на сайті:
http://www.percona.com/doc/percona-xtrabackup .
Оцінка інформації при бекапе таблиці MySQL
Команда estimate дозволяє відобразити всю інформацію, знайдену агентом MySQL. У разі режиму дампа, наше програмне забезпечення не може оцінити розмір дамп файлу для БД. Замість цього воно відобразить розмір БД.
Інформація про резервне копіювання MySQL в режимі дампа
Агент MySQL згенерує наступні файли в каталозі Bacula для сервера, що має єдину БД "test".
Файл Тип Пояснення global-grants.sql глобальний Список користувачів, їхні паролі і спеціальні функції settings.txt глобальний Поточні змінні для mysql сервера my.cnf глобальний Конфігурація MySQL createdb.sql БД Скрипт створення БД schema.sql БД Скрипт створення схеми БД data.sql БД Дані БД в форматі дампа grants.sql БД Список всіх користувачів, пов'язаних з БД
Таблиця 2. Зміст бекапа MySQL в режимі дампа
відновлення MySQL
Bacula дозволяє відновити бекап MySQL в декількох режимах відновлення:
- Відновлення MySQL з дамп файлу або бінарних логів
- Відновлення користувачів і ролей
- Відновлення єдиної БД MySQL
- Відновлення MySQL до контрольної точки
Щоб відновити бекап MySQL в режимі бінарних логів, агент використовує утиліту percona.
Малюнок 3: Вміст сервера під час відновлення MySQL
Малюнок 4: Вміст БД під час відновлення MySQL
Як зробити бекап бази даних MySQL без використання плагіна безкоштовно
Створення дампа бази даних MySQL
Даний спосіб повністю безкоштовний, оскільки дозволяє робити бекап MySQL за допомогою open source версії Bacula Community і без додаткових плагінів. Для резервного копіювання невеликих баз даних MySQL можна використовувати прості bash-скрипти для резервного копіювання баз даних . Для випадку з резервним копіюванням баз MySQL можна зробити скрипт бекапа MySQL, який буде запускатися на клієнті і робити dump бази даних MySQL.
#! / Bin / bash
mysqldump -uuser -ppassword -all-databases | gzip> /opt/mysql_backup/backup.`date +% F`.sql.gz
find / home / bacula-backup / -type f -mtime +3 -exec rm -f {} \;
Цей скрипт бекапа MySQL збереже дамп всіх БД MySQL в директорію / opt / mysql_backup / з якої ми і будемо робити резервні копії дампов бази даних, за допомогою директиви Client Run Before Job .
Приклад завдання на бекап бази MySQL:
Job {
Name = "BackupSmallMysqlServer»
Type = Backup
Level = Incremental
Client = mysqlserver1
FileSet = «mysqlserver»
Schedule = «WeeklyCycle»
Storage = SD1
Messages = Standard
Pool = Mysql
ClientRunBeforeJob = «/opt/sbin/mysql.sh»
SpoolAttributes = yes
Priority = 10
Write Bootstrap = «/var/lib/bacula/%c.bsr»
}
FileSet {
Name = "mysqlserver»
Include {
Options {
signature = MD5
compression = GZIP
}
File = / opt / mysql_backup /
}
}
Цей метод можна застосовувати для бекапа ненавантажених баз даних MySQL, наприклад баз даних невеликих сайтів, для яких блокування таблиць під час дампа не критична
Як зробити бекап навантажених баз даних MySQL?
Якщо база даних MySQL сильно навантажена, то не рекомендується на ній робити дамп, так як таблиці на час дампа блокуються. Саме правильно рішення в цьому випадку - зробити точну копію бази даних Master-Slave Replication.
Для навантажених систем репліка потрібно, щоб в разі поломки бази даний Master, можна було переключити навантаження на Slave і зробити його новим Master.
Для навантажених систем резервне копіювання MySQL необхідно робити саме для Slave бази даних.
Як зробити бекап MySQL: дамп або бінарний лог?Як зробити бекап MySQL: дамп або бінарний лог?