Appearance
Создание и восстановление резервных копий
Перечень резервируемой информации
Для восстановления рабочего состояния системы после непредвидимых обстоятельств необходимо резервировать следующую информацию:
- Данные документоориентированной СУБД MongoDB
- Данные реляционной СУБД MariaDB или PostgreSQL
- Данные объектного хранилища MinIO
К сведению
В примерах будут приведены команды, которые выполняются на том же сервере, где установлена база данных.
Внимание
В данном руководстве созданные резервные копии гарантируют сохранность и целостность данных, которые были созданы при отсутствующих подключений клиентов.
Необходимо заменить следующие параметры на актуальные:
Параметр | Описание параметра |
---|---|
DB_NAME | Название базы данных |
PATH_TO_ARCHIVE | Путь к архиву |
ARCHIVE_NAME | Имя архива |
PATH_TO_DUMP | Путь к дампу |
DUMP_NAME | Имя дампа |
BUCKET_NAME | Имя корзины MinIO |
NAME_ALIAS | Имя alias-a |
IP_ADDRESS:PORT | IP адрес и порт удалённого сервера 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/