Настройка создания и сохранения резервной копии
Порядок выполняемых действий:
-
Настроить PostgreSQL
-
Дать пользователю проверку доступа типа
trust
в/etc/postgres/version/main/pg_hba.conf
:sudo nano /etc/postgresql/"номер_версии"/main/pg_hba.conf
Напротив имени пользователя в графе
METHOD
изменить тип проверки наtrust
:# Database administrative login by Unix domain socket
local all postgres trustпримечаниеДля сохранения файла используйте Ctrl+O ⇒ Enter ⇒ Ctrl+X.
Перезагрузить PostgreSQL:
systemctl restart postgresql
-
Перейти в директорию
/opt/echelon/komrad/bin
:cd /opt/echelon/komrad/bin
-
Настроить хранилище
minio
(komrad-s3). После установки хранилище запускается автоматически, проверить его статус можно с помощью команды:systemctl status komrad-s3
Если сервис не запущен, то можно создать сервер в репозитории с помощью следующей команды:
./komrad-s3 server /var/lib/postgresql/version/main
Или запустить шлюз объектного хранилища s3 с помощью команды:
./komrad-s3 gateway s3 "конечная точка храни лища"
-
Настроить конфигурацию политики и пользователя:
- Проверить адрес консоли управления хранилищем можно с помощью команды:
systemctl status komrad-s3
-
При переходе по данному адресу открывается интерфейс взаимодействия с хранилищем. Авторизация проходит по логину -
komrad-s3
и паролю -komrad-s3-password
-
Настройка политики находится на вкладке "Пользователи", далее "Policies". Создание политики осуществляется с помощью кнопки
Create Policy
. В открывшемся окне необходимо придумать название политики, добавить следующую конфигурацию и сохранить:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:DeleteBucketPolicy",
"s3:GetBucketPolicy",
"s3:ListAllMyBuckets",
"s3:ListBucket",
"s3:PutBucketPolicy"
],
"Resource": [
"arn:aws:s3:::имя контейнера"
]
},
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:AbortMultipartUpload",
"s3:DeleteObject",
"s3:GetObject",
"s3:ListMultipartUploadParts"
],
"Resource": [
"arn:aws:s3:::имя контейнера/*"
]
}
]
}- Для активации политики необходимо создать пользователя во вкладке "Users" с помощью нажатия кнопки
Create User
, придумать логин (он является ключом доступаaccesskey
) и пароль (он является секретным ключомsecretkey
), выбрать созданную политику и сохранить
-
Настроить агента хранилища (
komrad-s3-agent
)- Указать псевдоним хранилища с помощью команды:
./komrad-s3-admin alias set "псевдоним хранилища" "адрес хранилища s3" "ключ доступа (accesskey)" "секретный ключ (secretkey)"
примечаниеЕсли Вы создали пользователя с именем
user
и паролем pass и хотите подключить хранилище, находящееся на локальном компьютере по порту 9050, выдав ему псевдонимmyminio
, то данная команда будет иметь вид:./komrad-s3-admin alias set myminio localhost:9050 user pass
- Создать контейнер для сбора резервных копий:
./komrad-s3-admin mb "псевдоним хранилища/имя контейнера"
- Проверить, создался ли контейнер:
./komrad-s3-admin ls "псевдоним хранилища/"
-
Создать файл в домашнем репозитории пользователя postgres
.walg.json
:sudo nano "домашний репозиторий/".walg.json
Добавить в файл содержимое:
{
"WALE_S3_PREFIX": "s3://имя контейнера",
"AWS_ACCESS_KEY_ID": "имя пользователя из п.5",
"AWS_ENDPOINT": "http://адрес хранилища",
"AWS_S3_FORCE_PATH_STYLE": "true",
"AWS_SECRET_ACCESS_KEY": "пароль пользователя из п.5",
"PGDATA": "/var/lib/postgresql/version/main",
"PGHOST": "/var/run/postgresql/",
"WALG_UPLOAD_CONCURRENCY": "2",
"WALG_DOWNLOAD_CONCURRENCY": "2",
"WALG_UPLOAD_DISK_CONCURRENCY": "2",
"WALG_DELTA_MAX_STEPS": "7",
"WALG_COMPRESSION_METHOD": "zstd"
}примечаниеЕсли имя Вашего пользователя
user
и парольpass
, имя созданного контейнераbacket
, хранилище находится на локальном компьютере по порту 9050, а версия PostgeSQL является 11, то данная конфигурация для Вас будет иметь следующий вид:{
"WALE_S3_PREFIX": "s3://backet",
"AWS_ACCESS_KEY_ID": "user",
"AWS_ENDPOINT": "http://localhost:9050",
"AWS_S3_FORCE_PATH_STYLE": "true",
"AWS_SECRET_ACCESS_KEY": "pass",
"PGDATA": "/var/lib/postgresql/11/main",
"PGHOST": "/var/run/postgresql/",
"WALG_UPLOAD_CONCURRENCY": "2",
"WALG_DOWNLOAD_CONCURRENCY": "2",
"WALG_UPLOAD_DISK_CONCURRENCY": "2",
"WALG_DELTA_MAX_STEPS": "7",
"WALG_COMPRESSION_METHOD": "zstd"
} -
Сделать резервную копию и загрузить в хранилище с помощью команды:
./komrad-backup postgres backup-push /var/lib/postgresql/version/main
-
Для восстановления резервной копии необходимо выполнить следующие шаги:
- Посмотреть список резервных копий с помощью команды:
./komrad-backup postgres backup-list
- Скачать нужную резервную копию в любую директорию:
./komrad-backup postgres backup-fetch /home/share/ "название резервной копии"
-
Перенести файлы в репозиторий
/var/lib/postgresql/version/
, удалив файл/var/lib/postgresql/version/main/backup_label
-
Перезагрузить сервис PostgreSQL:
systemctl restart postgresql