Копирование и восстановление базы данных

Самое главное в онлайн-сервисе или программе Докидо - это информация пользователя. Он владеет всеми вводимыми им данными, а задача программного обеспечения делать резервные копии и восстанавливать информацию в случае необходимости.

Резервная копия

Онлайн-сервис и программы Докидо имеют функцию автоматического резервного копирования на сервис Yandex Object Storage. В случае онлайн-сервиса создаются резервные копии данных только для зарегистрированных пользователей. Каждые два часа происходит проверка и копирование в хранилище файлов, в которых произошли изменения. В онлайн-сервисе создание резервных копий происходит постоянно и не отключается. Пользователь в любой момент может восстановить данные из последней резервной копии, для чего нужно нажать на кнопку Восстановить. Кроме этого в облаке дополнительно хранится ещё предыдущая копия данных, она может быть восстановлена по запросу в службу поддержки.

Рассмотрим как работает резервное копирование в случае self-hosted сервера или десктопной программы. Так как в этих случаях все файлы базы данных находятся под вашим контролем, то вы можете самостоятельно организовать автоматическое резервное копирование в соответствии с вашими требованиями. Для этого достаточно копировать содержимое директории и поддиректорий где находится программа Докидо. Например, программа Rclone позволяет копировать данные на различные файловые хранилища. Если же у вас есть аккаунт на Yandex Cloud и подключено универсальное масштабируемое облачное объектное хранилище, то можно быстро настроить резервное копирование.

Прежде всего нужно установить клиент awscli от Amazon S3. Он совместим с объектным хранилищем Яндекса и используется Докидо для резервного копирования. Страница AWS Command Line Interface (AWS CLI) содержит информацию по установке и конфигурированию aws клиента для работы с Yandex Object Storage.

После того как установлен aws клиент нажмите на кнопку Настройки и укажите имя бакета хранилища, в который будует копироваться база данных.

Автоматическое резервное копирование
Отметьте, если вы хотите сразу включить создание резервных копий. Вы в любой момент можете включать и отключать автоматическое резервное копирование.

Бакет
Укажите имя бакета, куда будут копироваться файлы настроек и базы данных. Это обязательное поле.

Интервал обновления резервной копии
Укажите количество часов через которое будет происходить сверка и резервное копирование.

Если сохранение настроек произошло без ошибок, значит настройки корректны и всё готово к работе. При включенном автоматическом резервном копировании первый бэкап будет запущен через пять минут, а в дальнейшем он будет выполняться через указанный вами интервал времени.

Чтобы откатиться к последней резервной копии нужно нажать кнопку Восстановить. Перед этим рекомендуем заархивировать текущую базу данных - бэкапы не бывают лишними.

Экспорт

Экспорт базы данных позволяет получить резервную копию и в дальнейшем перенести БД на другое устройство. Например, вы пользовались онлайн-сервисом, но захотели установить программу на свой сервер или работать с десктопной версией программы. Экспорт осуществляется нажатием одной кнопки.

После нажатия на кнопку Экспорт на сервере создастся .zip файл, который содержит все файлы вашей базы данных. Когда база данных заархивируется, вы увидите ссылку для скачивания. Вы можете скачать созданный файл и хранить его как резервную копию данных или импортировать базу данных на другое устройство.

Через 2 часа архивный файл будет удалён из программы автоматически, но вы можете сделать это раньше, нажав на иконку с корзиной справа от ссылки.

Импорт

Импорт даёт возможность загрузить базу данных из резервной копии, которая получена в результате Экспорта. Вам необходимо на вашем компьютере выбрать архивный файл с БД и нажать на кнопку Импорт. После чего выбранный файл загрузится в программу, будет распакован, и ваша база данных обновится.

В онлайн-сервисе Докидо эта возможность отключена в целях безопасности. Поэтому, если вы хотите импортировать БД в онлайн-сервис, то обратитесь в службу поддержки.