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