! ¡Use https://github.com/appuio/postgres-backup-cronjob!
Contenedor para hacer copias de seguridad completas de bases de datos PostgreSQL que se ejecutan en OpenShift. La copia de seguridad es realizada por la herramienta pg_basebackup
.
Las copias de seguridad más simples que usan pg_dump
están disponibles en el repositorio PostgreSQL-Simple-Backup-Container.
Proporcione un contenedor que realice copias de seguridad periódicas de una base de datos PostgreSQL.
El contenedor de respaldo no está terminado Jet: trabajo en progreso.
Este repositorio inspirado en el contenedor de copia de seguridad de MySQL: https://github.com/appuio/mysql-simple-backup-container
La base de datos debe configurarse con un usuario maestro y su contraseña.
La base de datos debe configurarse para permitir el acceso remoto desde otros hosts.
El usuario de la base de datos para la copia de seguridad debe tener un rol de superusuario o replicación.
La base de datos debe configurarse para permitir conexiones de copia de seguridad remotas.
Para esto, agregue la siguiente configuración al archivo de configuración PostgreSQL /etc/postgresql/XX/main/postgresql.conf
Use su versión de base de datos para 'X.X'. Como ejemplo: '9.5'
max_wal_senders = 5
wal_level = hot_standby
Archive_Mode = ON
Archive_Command = '/bin/true'
Uso en OpenShift.
Cómo crear y ejecutar la base de datos PostgreSQL.
Cree el contenedor con la oc tool
desde la imagen 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
Cree el contenedor con la oc tool
a partir de la plantilla instalada:
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 la configuración de implementación y agregue la contraseña maestra como variable Env.
env:
-
name: POSTGRESQL_ADMIN_PASSWORD
value: mysecretpassword2
Cree el contenedor con la oc tool
a partir de la plantilla 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 -
Cree el contenedor con la oc tool
desde el DB Dockerfile local. Está parcheado para permitir conexiones 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
Más documentación para PostgreSQL en OpenShift.
El contenedor de base de datos PostgreSQL en GitHub.
Elimine todos los recursos propiedad del contenedor de la base de datos.
oc delete all -l app=postgresdb
Crear y ejecutar el contenedor Backukp PostgreSQL en 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
Elimine todos los recursos propiedad del contenedor de respaldo.
oc delete all -l app=backup
Cree y proporcione plantillas OpenShift para contenedor de copia de seguridad y se combine con la base de datos.
Plantillas de OpenShift:
Ejecute un contenedor de base de datos PostgreSQL.
docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d -p 5432:5432 postgres
Ejecute un crujiente contenedor de base de datos 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
Base de datos init.
docker build -t pg_backup .
Ambiente:
Crear directorio de respaldo:
mkdir pgdata
Iniciar contenedor de copia de seguridad:
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