Настройка автоматической отправки резервных копий БД MySQL в хранилище 1cloud на Linux

В инструкции описана настройка автоматического создания резервных копий базы данных MySQL на Linux и ее отправка в объектное хранилище.

Что это такое?

Автоматическая отправка резервных копий в облачное хранилище позволяет в любой момент времени иметь под рукой архив всех версий СУБД. Благодаря тому, что данные хранятся в хранилище, вы можете обратиться к ним из любой точки земного шара. В нашей инструкции будет создан скрипт с использованием утилиты mysqldump, curl и Swift API.

Первоначальные требования

Для того чтобы настроить автоматическую резервирование базы данных, необходимо:

  1. Наличие контейнера в облачном хранилище, в котором будут храниться резервные копии. Создать его можно несколькими способами: через панель управления; с помощью приложений S3Browser, Cyberduck или Rclone; с помощью Swift API или S3 REST API.
  2. Необходимо запомнить ExternalId, это можно сделать через API запрос.
  3. Пользователь, от имени которого будет происходить загрузка дампа в контейнер хранилища, должен иметь к нему доступ. По умолчанию доступ имеет только владелец хранилища. О том как предоставить доступ другим пользователям для работы с контейнером читайте в нашей инструкции.

Создание скрипта

С помощью текстового редактора, например vi, создайте файл в удобном для вас месте, например:

vi $HOME/auto.bash

Внесите в него следующие строки, указав значения: имя пользователя базы данных, его пароль, название базы данных, полное название файла с дампом, полное имя файла с токеном (токен генерируется скриптом), имя пользователя хранилища и его пароль, TenantId и ExternalId, а также имя контейнера и название файла в контейнере:

Пример скрипта:

Не забудьте изменить права доступа к файлу для возможности его исполнения:

chmod o+x $HOME/auto.bash

Если необходимо однократно выполнить скрипт используйте следующий синтаксис:

./$HOME/auto.bash

Создание резервной копии по расписанию

Для того, чтобы резервная копия регулярно автоматически создавалась и отправлялась в облако, необходимо настроить планировщик Cron.

Откройте файл с расписанием:

crontab -e

Внесите строку описывающую регулярность запуска скрипта, например, запуск скрипта каждый день в 0:30 и 12:30:

30 */12 * * * $HOME/auto.bash

Подробно о правилах планировщика написано в инструкции Настройка планировщика Cron в Linux.

 

Последнее обновление: 09.08.2018