
Сьогодні мені знадобилося налаштувати автоматичний бекап бази даних з одного хостингу на інший. Я розглянув кілька варіантів створення резервних копій баз даних і зупинився на найпростішому за допомогою утиліти mysqldump. Зараз я розповім, як це зробив.
У чому ідея резервного копіювання з одного сервера на інший?
Ідея дуже проста - якщо накриється один сервер, то з іншого базу даних можна відновити. Це краще, ніж зберігати всі резервні копії на одному сервері.
Ок і як ми це зробимо?
А тепер кілька слів про те, як проходитиме процес резервного копіювання. Допустимо, у нас є сервер «А», на якому знаходиться база даних, бекапи якої ми хочемо створювати. І є сервер «Б», на який ми ці бекапи зберігатимемо. Щоб зробити дамп БД, достатньо виконати наступну команду в командному рядку на сервері:
А щоб підключитися до бази даних на іншому сервері, достатньо додати параметр -h, наприклад:
Ну і щоб все це працювало автоматично, треба створити завдання в cron і написати невеликий скрипт на php, який підтримуватиме в директорії дампів певну кількість файлів (навіщо нам сотні дампів?).
Приступаємо до налаштування автоматичного резервного копіювання MySQL
Для роботи нам знадобиться зовсім небагато:
- Два сервери
- Cron
- Доступ до сервера через ssh
- Утиліта mysldump на сервері
- 20 хвилин вільного часу 🙂
Встановлюємо скрипт на сервер
Запишіть код нижче у файл database_backup.php і збережіть його на сервері, який буде сховищем дампів, у будь-якій папці, хай це буде папка /var/database_backups. Потім створіть папку, в якій зберігатимуться ваші дампи, нехайце буде наступна папка /var/database_backups/sitename.
Створюємо завдання у cron'і
Майже все! Справа за малим – створити завдання у кроні. Для цього на сервері-сховищі виконайте наступний скрипт:
Цим самим рядком ми сказали cron'у виконувати наш скрипт щодня о першій годині ночі. Ось і все! Тепер ваша база даних щодня копіюватиметься на сервер-сховище.
А що далі?
