!!! Используйте https://github.com/appuio/postgres-backup-cronjob вместо этого !!!
Контейнер для выполнения полных резервных копий баз данных PostgreSQL, работающих на OpenShift. Резервное копирование выполняется инструментом pg_basebackup
.
Более простые резервные копии с использованием pg_dump
доступны в репозитории PostgreSQL-Simple-Backup-Container.
Предоставьте контейнер, который выполняет периодические резервные копии базы данных PostgreSQL.
Контейнер для резервного копирования не готовый Jet: работа в процессе.
Это репонирование вдохновленного контейнером MySQL резервного копирования: https://github.com/appuio/mysql-simple-backup-containerer
База данных должна быть настроена с помощью основного пользователя и его пароля.
База данных должна быть настроена, чтобы разрешить удаленный доступ от других хостов.
Пользователь базы данных для резервной копии должен иметь роли суперпользователя или репликации.
База данных должна быть настроена, чтобы разрешить удаленное резервное резервное копирование.
Для этого добавьте следующую конфигурацию в файл конфигурации PostgreSQL /etc/postgresql/XX/main/postgresql.conf
Используйте версию базы данных для 'x.x'. Как пример: '9.5'
max_wal_senders = 5
wal_level = hot_standby
archive_mode = on
archive_command = '/bin/true'
Использование на OpenShift.
Как создать и запустить базу данных PostgreSQL.
Создайте контейнер с oc tool
из Docker Image:
oc new-app
-e POSTGRES_PASSWORD=mysecretpassword
-e POSTGRESQL_USER=postgresuser
-e POSTGRESQL_PASSWORD=mysecretpassword
-e POSTGRESQL_DATABASE=postgresdb
-e POSTGRESQL_ADMIN_PASSWORD=mysecretpassword2
-l app=postgresdb
centos/postgresql-95-centos7
Создайте контейнер с oc tool
из установленного шаблона:
oc new-app --template=postgresql-ephemeral
--param=POSTGRESQL_USER=postgresuser
--param=POSTGRESQL_PASSWORD=mysecretpassword
--param=POSTGRESQL_DATABASE=postgresdb
--param=DATABASE_SERVICE_NAME=postgresqldb
-l app=postgresdb
Отредактируйте конфигурацию развертывания и добавьте основной пароль в качестве переменной env.
env:
-
name: POSTGRESQL_ADMIN_PASSWORD
value: mysecretpassword2
Создайте контейнер с oc tool
из локального шаблона:
oc process -f postgresql-ephemeral-template.json
-v
POSTGRES_PASSWORD=mysecretpassword
POSTGRESQL_USER=postgresuser
POSTGRESQL_PASSWORD=mysecretpassword
POSTGRESQL_DATABASE=postgresdb
POSTGRESQL_ADMIN_PASSWORD=mysecretpassword2
DATABASE_SERVICE_NAME=postgresqldb
| oc create -f -
Создайте контейнер с oc tool
из локального DB Dockerfile. Он исправлен, чтобы разрешить удаленные соединения.
oc new-app
-e POSTGRES_PASSWORD=mysecretpassword
-e POSTGRESQL_USER=postgresuser
-e POSTGRESQL_PASSWORD=mysecretpassword
-e POSTGRESQL_DATABASE=postgresdb
-e POSTGRESQL_ADMIN_PASSWORD=mysecretpassword2
-e DATABASE_SERVICE_NAME=postgresqldb
-l app=postgresdb
https://github.com/appuio/postgresql-backup-container
--context-dir=database
--name=postgresqldb
Больше документации для PostgreSQL на OpenShift.
Контейнер базы данных postgreSQL на GitHub.
Удалите все ресурсы, принадлежащие контейнеру базы данных.
oc delete all -l app=postgresdb
Создайте и запустите контейнер PostgreSQL Backukp на OpenShift.
oc new-app
-e BACKUP_USER=postgres
-e BACKUP_PASS=mysecretpassword2
-e BACKUP_PORT=5432
-l app=backup
https://github.com/appuio/postgresql-backup-container
Удалите все ресурсы, принадлежащие резервному контейнеру.
oc delete all -l app=backup
Создайте и предоставьте шаблоны OpenShift для резервного контейнера и в сочетании с базой данных.
Шаблоны OpenShift:
Запустите контейнер с базой данных PostgreSQL.
docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d -p 5432:5432 postgres
Запустите хрустящий контейнер с базой данных PostgreSQL.
docker run
--name some-postgres
-e "PG_MODE=master"
-e "PG_MASTER_USER=master"
-e "PG_MASTER_PASSWORD=master.chief"
-e "PG_USER=postgres"
-e "PG_PASSWORD=mysecretpassword"
-e "PG_DATABASE=postgres"
-e "PG_ROOT_PASSWORD=mysecretpassword2"
-d -p 5432:5432
crunchydata/crunchy-postgres:centos7-9.5-1.2.5
База данных инициирования.
docker build -t pg_backup .
Среда:
Создать каталог резервного копирования:
mkdir pgdata
Начать контейнер для резервного копирования:
docker run -ti
-e "BACKUP_HOST=postgresdb"
-e "BACKUP_USER=postgres"
-e "BACKUP_PASS=mysecretpassword"
-e "BACKUP_PORT=5432"
-v $(pwd)/pgdata:/pgdata
--link some-postgres:postgresdb
pg_backup