Резервное копирование данных
Для резервного копирования сервера 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 установки Системы хранения данных | — |