Настройка создания и сохранения резервной копии
Порядок выполняемых действий:
-
Настроить 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