!!! Use https://github.com/appuio/postgres-backup-cronjob em vez disso !!!
Container para fazer backups completos de bancos de dados PostgreSQL em execução no OpenShift. O backup é feito pela ferramenta pg_basebackup
.
Backups mais simples usando pg_dump
estão disponíveis no repositório PostGresql-Simple-Backup-container.
Forneça um contêiner que faça backups periódicos de um banco de dados PostgreSQL.
O recipiente de backup não está acabado com o jato: trabalho em andamento.
Este repositório inspirado no contêiner de backup do MySQL: https://github.com/appuio/mysql-simple-backup-container
O banco de dados deve ser configurado com um usuário mestre e sua senha.
O banco de dados deve ser configurado para permitir o acesso remoto de outros hosts.
O usuário do banco de dados para o backup deve ter uma função de superusuário ou replicação.
O banco de dados deve ser configurado para permitir conexões de backup remotas.
Para isso, adicione a configuração seguinte ao arquivo de configuração PostGresql /etc/postgresql/XX/main/postgresql.conf
Use a versão do seu banco de dados para 'x.x'. Como exemplo: '9.5'
max_wal_senders = 5
wal_level = hot_standby
archive_mode = ON
Archive_Command = '/bin/true'
Uso no OpenShift.
Como criar e executar o banco de dados PostGresql.
Crie o contêiner com a oc tool
a partir da imagem do Docker:
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
Crie o contêiner com a oc tool
a partir do modelo instalado:
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
Edite a configuração de implantação e adicione a senha mestre como variável Env.
env:
-
name: POSTGRESQL_ADMIN_PASSWORD
value: mysecretpassword2
Crie o contêiner com a oc tool
a partir do modelo local:
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 -
Crie o contêiner com a oc tool
a partir do DB Dockerfile local. É corrigido para permitir conexões remotas.
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
Mais documentação para o PostgreSQL no OpenShift.
O contêiner do banco de dados PostgreSQL no GitHub.
Exclua todos os recursos de propriedade do contêiner de banco de dados.
oc delete all -l app=postgresdb
Crie e execute o contêiner postgreSQL backukp no 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
Exclua todos os recursos de propriedade do contêiner de backup.
oc delete all -l app=backup
Crie e forneça modelos OpenShift para contêiner de backup e combinado com o banco de dados.
Modelos OpenShift:
Execute um contêiner do banco de dados PostgreSQL.
docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d -p 5432:5432 postgres
Execute um contêiner de banco de dados PostGresql crocante.
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
Banco de dados init.
docker build -t pg_backup .
Ambiente:
Crie diretório de backup:
mkdir pgdata
Inicie o contêiner de backup:
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