Бекап бази даних mysql на сервері ubuntu

Розміщення серверів в надійних дата-центрах Європи. Відкрийте хмарний VPS / VDS сервер на швидких SSD за 1 хвилину!

Кращий хостинг:
- захистить дані від несанкціонованого доступу в охоронюваному європейському ЦОДі
- прийме оплату хоч в bitcoin.
- дозволить поставити свій дистрибутив

- захист від DDos-атак
- безкоштовний backup
- Uptime 99,9999%
- ЦОД - TIER III
- провайдер - TIER I

Підтримаємо російською мовою 24/7/365 Працюємо з юрособами і фізособами. Вам прямо зараз потрібно 24 ядра і 72 Gb RAM. Будь ласка!

Наші вигідні тарифи доведуть, що дешевий хостинг ви ще не знали!

Хвилинна справа: виберіть конфігурацію, оплатіть і CMS на VPS готова.
Money Back - 30 днів!

Банківськими картами, електронною валютою, через термінали Qiwi, Webmoney, PayPal, Новоплат і ін.

Задайте питання в службу підтримки 24/7/365

Знайдіть відповіді в нашій базі і познайомтеся з рекомендаціями

Що таке MySQL?

MySQL - це популярна система керування базами даних (СКБД), яка використовує для управління даними мову запитів SQL. MySQL ідеально підходить для зберігання даних сайту або веб-додатки.

Примітка. Для виконання керівництва використовувався сервер Ubuntu 12.04 і MySQL 5.5, але більш сучасні версії програмного забезпечення будуть працювати так само.

Бекап бази даних MySQL за допомогою mysqldump

Утиліта mysqldump - один з найпростіших і зручних способів створення резервної копії MySQL.

Для початку потрібно експортувати БД. Про експортуванні БД за допомогою mysqldump можна прочитати тут. Базовий синтаксис команди виглядає так:

mysqldump -u username -p database_to_backup> backup_name.sql

відновлення БД

Щоб відновити дамп БД, створений за допомогою mysqldump, потрібно просто перенаправити висновок в файл MySQL.

Для цього необхідно створити пусту БД для зберігання імпортованих даних. Увійдіть в MySQL:

mysql -u username -p

Створіть нову БД, щоб перемістити в неї дані з дампа, а потім закрийте командний рядок MySQL:

CREATE DATABASE database_name;
exit

Перенаправьте дамп-файл в файл БД:

mysql -u username -p database_name

Скопійовані дані будуть відновлені в новій БД.

Також MySQL дозволяє зберігати дані з таблиці прямо в текстові файли за допомогою оператора select.

Загальний синтаксис команди:

SELECT * INTO OUTFILE 'table_backup_file' FROM name_of_table;

Даний оператор збереже дані з таблиці в файл на сервері MySQL. Майте на увазі: якщо файл з таким ім'ям вже існує, операція не буде виконана.

Примітка. Ця опція зберігає тільки дані таблиці. Якщо таблиця має складну структуру, яку потрібно зберегти, цей метод використовувати не рекомендується.

утиліта automysqlbackup

Утиліта automysqlbackup доступна в стандартних репозиторіях Ubuntu. Вона дозволяє виконувати бекап БД автоматично на регулярній основі.

Щоб встановити цю програму, введіть в термінал:

sudo apt-get install automysqlbackup

Головний конфігураційний файл утиліти знаходиться в / etc / default / automysqlbackup; відкрийте його з правами адміністратора:

sudo nano / etc / default / automysqlbackup

Стандартне місце зберігання резервних копій - / var / lib / automysqlbackup. Знайдіть цей каталог і ознайомтеся зі структурою бекапов:

ls / var / lib / automysqlbackup
daily monthly weekly

Каталог daily містить підкаталог для кожної БД, в якому зберігається стиснене sql дамп, отриманий в результаті останнього запуску команди:

Для настройки автоматичного запуску резервного копіювання система Ubuntu встановлює разом з цією програмою демона cron.

Реплікація баз даних

Для резервного копіювання даних можна також використовувати реплікацію MySQL в зв'язці з будь-яким з перерахованих вище методів.

Реплікація - це процес віддзеркалення даних з провідного сервера на інші (тип master-slave) або з будь-якого сервера зв'язки на інші сервери (тип master-master).

Але оскільки реплікація постійно фіксує зміни динамічної системи, вона може постраждати від резервного копіювання, тому що при цьому фіксується певний момент часу.

Щоб усунути цю проблему, можна:

  • Тимчасово відключити реплікацію
  • Або тимчасово зробити сервер резервного копіювання доступним тільки для читання.

Тимчасове відключення реплікації

Щоб тимчасово відключити реплікацію на slave-сервері, введіть:

mysqladmin -u user_name -p stop-slave

Є ще один метод, що не відключає реплікацію повністю, а просто ставить її на паузу:

mysql -u user_name -p -e 'STOP SLAVE SQL_THREAD;'

Зупинивши реплікацію, можна виконати бекап за допомогою будь-якого з перерахованих вище методів. При цьому не потрібно зупиняти master-сервер.

Після цього просто відновите реплікацію:

mysqladmin -u user_name -p start-slave

Налаштування доступу до сервера резервного копіювання

Також можна отримати послідовний набір даних, тимчасово зробивши їх доступними тільки для читання.

Це можна зробити як на сервері master, так і на slave.

Для початку відкрийте MySQL з правами root:

Запишіть все кешированниє зміни на диск і налаштуйте систему тільки для читання за допомогою команд:

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

Виконайте бекап за допомогою mysqldump.

SET GLOBAL read_only = OFF;
UNLOCK TABLES;

Нерекомендовані методи резервного копіювання

Звичайно, використовувати цю техніку з механізмами зберігання, які зберігають свої дані в файлах, досить розумно; проте InnoDB, механізм зберігання MySQL за замовчуванням, не можна скопіювати таким чином.

висновок

Як бачите, MySQL надає найрізноманітніші методи копіювання даних. Всі вони мають свої переваги і недоліки, деякі з них простіше, деякі - більш широкого застосування.

В цілому, метод резервного копіювання залежить від індивідуальних потреб і ресурсів сервера, а також від виробничого середовища. Який би метод ви вибрали, обов'язково перевірте резервні копії і спробуйте відновити дані.