автоматичне

Сьогодні мені знадобилося налаштувати автоматичний бекап бази даних з одного хостингу на інший. Я розглянув кілька варіантів створення резервних копій баз даних і зупинився на найпростішому за допомогою утиліти mysqldump. Зараз я розповім, як це зробив.

У чому ідея резервного копіювання з одного сервера на інший?

Ідея дуже проста - якщо накриється один сервер, то з іншого базу даних можна відновити. Це краще, ніж зберігати всі резервні копії на одному сервері.

Ок і як ми це зробимо?

А тепер кілька слів про те, як проходитиме процес резервного копіювання. Допустимо, у нас є сервер «А», на якому знаходиться база даних, бекапи якої ми хочемо створювати. І є сервер «Б», на який ми ці бекапи зберігатимемо. Щоб зробити дамп БД, достатньо виконати наступну команду в командному рядку на сервері:

А щоб підключитися до бази даних на іншому сервері, достатньо додати параметр -h, наприклад:

Ну і щоб все це працювало автоматично, треба створити завдання в cron і написати невеликий скрипт на php, який підтримуватиме в директорії дампів певну кількість файлів (навіщо нам сотні дампів?).

Приступаємо до налаштування автоматичного резервного копіювання MySQL

Для роботи нам знадобиться зовсім небагато:

  1. Два сервери
  2. Cron
  3. Доступ до сервера через ssh
  4. Утиліта mysldump на сервері
  5. 20 хвилин вільного часу 🙂

Встановлюємо скрипт на сервер

Запишіть код нижче у файл database_backup.php і збережіть його на сервері, який буде сховищем дампів, у будь-якій папці, хай це буде папка /var/database_backups. Потім створіть папку, в якій зберігатимуться ваші дампи, нехайце буде наступна папка /var/database_backups/sitename.

Створюємо завдання у cron'і

Майже все! Справа за малим – створити завдання у кроні. Для цього на сервері-сховищі виконайте наступний скрипт:

Цим самим рядком ми сказали cron'у виконувати наш скрипт щодня о першій годині ночі. Ось і все! Тепер ваша база даних щодня копіюватиметься на сервер-сховище.

А що далі?

резервне