Skip to content

Создание и восстановление резервных копий

Перечень резервируемой информации

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

  1. Данные документоориентированной СУБД MongoDB
  2. Данные реляционной СУБД MariaDB или PostgreSQL
  3. Данные объектного хранилища MinIO

К сведению

В примерах будут приведены команды, которые выполняются на том же сервере, где установлена база данных.

Внимание

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

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

ПараметрОписание параметра
DB_NAMEНазвание базы данных
PATH_TO_ARCHIVEПуть к архиву
ARCHIVE_NAMEИмя архива
PATH_TO_DUMPПуть к дампу
DUMP_NAMEИмя дампа
BUCKET_NAMEИмя корзины MinIO
NAME_ALIASИмя alias-a
IP_ADDRESS:PORTIP адрес и порт удалённого сервера MinIO
LOGINЛогин для доступа на удалённый сервер MinIO
PASSWORDПароль для доступа на удалённый сервер MinIO
PATH_TO_MINIO_DIRECTORYПуть к директории MinIO на локальном сервере

Создание резервных копий

MongoDB

Для создания дампов в MongoDB используется команда mongodump:

shell
mongodump -d DB_NAME

При создании дампов больших баз данных используется сжатие:

shell
mongodump --host=localhost --gzip -d DB_NAME --archive=/PATH_TO_ARCHIVE/ARCHIVE_NAME.gz

MariaDB

Для создания дампа базы данных используется команда mysqldump:

shell
mysqldump DB_NAME > /PATH_TO_DUMP/DUMP_NAME.sql

При создании дампов баз данных большого объёма используется сжатие:

shell
mysqldump DB_NAME | gzip > /PATH_TO_ARCHIVE/DUMP_NAME.gz

PostgreSQL

Для создания дампа базы данных все команды выполняются под пользователем postgres:

shell
su postgres
postgres$ pg_dump DB_NAME > DUMP_NAME.sql

Важно

Выполнять команду необходимо в директории у которой проставлены права postgres:postgres

При создании дампов баз данных большого объёма используется сжатие:

shell
su postgres
postgres$ pg_dump DB_NAME | gzip > DUMP_NAME.gz

MinIO

При создании резервных копий MinIO необходимо использовать утилиту mc mirror.

Ссылка для скачивания MinIO Client с официального сайта.

Для установки MinIO Client на операционную систему Linux в директории /usr/local/bin необходимо выполнить следующие команды:

shell
cd /usr/local/bin
wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc

К сведению

В примере приведён случай, когда директория с корзинами для MinIO находится в директории: /mnt/data/minio, а директория для резервных копий /mnt/backup/minio.

Внимание

Если в системе установлен Midnight Commander, для избежания конфликта при выполнении команд MinIO Client необходимо использовать абсолютный или относительный путь к файлу mc.

Для резервного копирования всей директории minio выполним следующую команду:

shell
/usr/local/bin/mc mirror /home/data/minio /home/backup/minio

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

shell
/usr/local/bin/mc mirror /home/data/minio/BUCKET_NAME /home/backup/minio/BUCKET_NAME

Восстановление данных

MongoDB

Для разворачивания дампов в MongoDB используется команда mongorestore:

shell
mongorestore /PATH_TO_DUMP/

При восстановлении базы данных из архива необходимо выполнить команду mongorestore:

shell
mongorestore --gzip --archive=/PATH_TO_ARCHIVE/ARCHIVE_NAME.gz

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

shell
mongorestore --gzip --archive=/PATH_TO_ARCHIVE/ARCHIVE_NAME.gz --nsFrom "OLD_NAME_DB.*" --nsTo "NEW_NAME_DB.*"

MariaDB

Для восстановления базы данных из дампа необходимо выполнить команду:

shell
mysql DB_NAME < /PATH_TO_DUMP/DUMP_NAME.sql

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

shell
gunzip < /PATH_TO_ARCHIVE/DUMP_NAME.gz | mysql DB_NAME

PostgreSQL

Для восстановления базы данных команды необходимо выполнять под пользователем postgres:

shell
su postgres
postgres$ psql -d DB_NAME -f DUMP_NAME.sql

Важно

До разворачивания дампа необходимо создать базу данных

При восстановлении базы данных из архива выполняем команду под пользователем postgres:

shell
gunzip -c DUMP_NAME.gz | psql DB_NAME

MinIO

Внимание

Если в системе установлен Midnight Commander, для избежания конфликта при выполнении команд MinIO Client необходимо использовать абсолютный или относительный путь к файлу mc.

Для восстановления резервной копии всей директории MinIO выполним команду:

shell
/usr/local/bin/mc mirror /home/backup/minio /home/data/minio

При восстановлении резервной копии конкретной корзины выполним команду:

shell
/usr/local/bin/mc mirror /home/backup/minio/BUCKET_NAME /home/data/minio/BUCKET_NAME

Для переноса корзины с одного сервера на другой необходимо:

Создать alias для удалённого сервера:

shell
/usr/local/bin/mc alias set NAME_ALIAS http://IP_ADDRESS:PORT LOGIN PASSWORD

Важно

На удалённом сервере необходимо создать корзины

Копирование корзины на удалённый сервер, осуществляется командой:

shell
/usr/local/bin/mc mirror /PATH_TO_MINIO_DIRECTORY/NAME_BUCKET/ NAME_ALIAS/NAME_BUCKET/