Skip to main content

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

Для восстановления данных 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.