Восстановление данных
Для восстановления данных PostgreSQL предлагается использовать сценарий, представленный ниже:
#!/bin/bash
#
# Restore a Postgresql database.
#
set -e
BACKUP_DIR="<BACKUP_DIR>"
DATABASE=keycloak
POSTGRES_IMAGE="pythagoras/pgs-postgres"
POSTGRES_HOST="<HOST>"
POSTGRES_PORT="<PORT>"
POSTGRES_VERSION="<VERSION>"
USER=keycloak
DATABASE_USER_PASS="<PASSWORD>"
CURRENT_DATETIME="$(date +%Y_%m_%d_%H%M)"
FILE_NAME="<NAME_OF_BACKUP>.gz"
docker run \
--name postgres_backup \
--network pgs-network \
--env PGPASSWORD=${DATABASE_USER_PASS} \
--rm \
-v "${BACKUP_DIR}:${BACKUP_DIR}" \
--entrypoint pg_restore pgs-private-registry:5001/${POSTGRES_IMAGE}:${POSTGRES_VERSION} \
-v --clean -h ${POSTGRES_HOST} \
-p ${POSTGRES_PORT} \
-U ${USER} \
-d ${DATABASE} \
${BACKUP_DIR}/${FILE_NAME}
Для восстановления данных необходимо присвоить значения переменным, перечисленным в таблице. Остальные настройки следует оставить без изменений.
| Наименование переменной | Описание | Пример |
|---|---|---|
`<BACKUP_DIR>` | Путь к месту хранения копий | `/opt/Pythagoras/backups/postgres` |
`<HOST>` | Сервер подключения | "haproxy" — при кластерной установке"postgres" — при установке без отказоустойчивости |
`<PORT>` | Порт подключения | "5000" — при кластерной установке"5432" — при установке без отказоустойчивости |
`<VERSION>` | Версия компонента в релизе | "12.18-astra" |
`<PASSWORD>` | Пароль пользователя Keycloak, переменная KEYCLOAK_POSTGRES_PASSWORD из файла inventory установки Системы хранения данных * | — |
`<NAME>` | Полное имя файла резервной копии | "postgres_2023_03_26_1435.gz" |
* — Имя пользователя и пароль идентичны для сервисов Keycloak и Restrictions.
Внимание
После восстановления данных необходимо выполнить рестарт сервиса keycloak.