Skip to main content

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

Для резервного копирования сервера ArangoDB предлагается использовать следующий сценарий:

#!/bin/bash
# Backup ArangoDB database into a daily file.
#
set -e
BACKUP_DIR="<BACKUP_DIR>"
CURRENT_DATETIME="$(date +%Y_%m_%d_%H%M)"
KEEP_BACKUPS=<RETENTION_TIME>
ARANGODB_IMAGE="pythagoras/pgs-arangodb"
ARANGODB_VERSION="<VERSION>"
ARANGODB_HOST="<HOST>"
ARANGODB_PORT="<PORT>"
ARANGODB_PASS="<PASSWORD>"
RC=0
docker run \
--name arangodb_backup \
--network pgs-network \
--rm \
-v "${BACKUP_DIR}:${BACKUP_DIR}" \
pgs-private-registry:5001/${ARANGODB_IMAGE}:${ARANGODB_VERSION} \
arangodump \
--all-databases true \
--compress-output false \
--include-system-collections true \
--output-directory \
"${BACKUP_DIR}/arangodb_$(date +%Y_%m_%d_%H%M)" \
--server.authentication true \
--server.endpoint "tcp://${ARANGODB_HOST}:${ARANGODB_PORT}" \
--server.password ${ARANGODB_PASS} \
--server.username 'root' || RC=1
# Do tar.gz of backup folder
cd "${BACKUP_DIR}" || RC=1
tar -czf "arangodb_${CURRENT_DATETIME}.tar.gz" \
"arangodb_${CURRENT_DATETIME}" || RC=1
rm -rf "${BACKUP_DIR}/arangodb_${CURRENT_DATETIME}" || RC=1
# Delete archives older then KEEP_BACKUPS value
echo "find \"${BACKUP_DIR:?}\"/ -mtime +\"${KEEP_BACKUPS}\" -name \"*.tar.gz\" -delete || RC=1"
find "${BACKUP_DIR:?}"/ -mtime +"${KEEP_BACKUPS}" -name "*.tar.gz" -delete || RC=1
if [ ${RC} = 0 ]
then
echo "Successfully backup"
else
echo "Backup Failed"
fi

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

Наименование
переменной
ОписаниеПример
`<BACKUP_DIR>`Путь к месту хранения копий`/opt/Pythagoras/backups/arangodb`
`<RETENTION_TIME>`Глубина хранения (вводится без кавычек)целое число, например 7
`<VERSION>`Версия компонента в релизе"3.8.8"
`<HOST>`Хост подключения"coordinator" — при кластерной установке
"arangodb" — при установке без отказоустойчивости
`<PORT>`Порт подключения"8529"
`<PASSWORD>`Пароль, значение переменной ARANGODB_PASSWORD из файла inventory установки Системы хранения данных—