!!! Utilisez https://github.com/appuio/postgres-backup-cronjob à la place !!!
Conteneur pour effectuer des sauvegardes complètes des bases de données PostgreSQL fonctionnant sur OpenShift. La sauvegarde est effectuée par l'outil pg_basebackup
.
Des sauvegardes plus simples utilisant pg_dump
sont disponibles dans le référentiel PostgreSQL-Simple-Backup-Container.
Fournissez un conteneur qui effectue des sauvegardes périodiques d'une base de données PostgreSQL.
Le conteneur de sauvegarde n'est pas fini Jet: Travail en cours.
Ce repo IST inspiré du conteneur de sauvegarde MySQL: https://github.com/appuio/mysql-simple-backup-contrainer
La base de données doit être configurée avec un utilisateur principal et son mot de passe.
La base de données doit être configurée pour permettre l'accès à distance à partir d'autres hôtes.
L'utilisateur de la base de données de la sauvegarde doit avoir un rôle de superutilisateur ou de réplication.
La base de données doit être configurée pour permettre des connexions de sauvegarde distantes.
Pour cela, ajoutez la configuration suivante au fichier de configuration postgresql /etc/postgresql/XX/main/postgresql.conf
Utilisez votre version de base de données pour «x.x». Comme exemple: «9,5»
max_wal_senders = 5
wal_level = hot_standby
archive_mode = on
archive_command = '/ bin / true'
Utilisation sur OpenShift.
Comment créer et exécuter la base de données PostgreSQL.
Créez le conteneur avec l' oc tool
à partir de 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
Créez le conteneur avec l' oc tool
à partir du modèle installé:
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
Modifiez la configuration de déploiement et ajoutez le mot de passe maître en tant que variable Env.
env:
-
name: POSTGRESQL_ADMIN_PASSWORD
value: mysecretpassword2
Créez le conteneur avec l' oc tool
à partir du modèle 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 -
Créez le conteneur avec l' oc tool
à partir du DB Dockerfile local. Il est corrigé pour permettre des connexions distantes.
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
Plus de documentation pour PostgreSQL sur OpenShift.
Le conteneur de la base de données PostgreSQL sur GitHub.
Supprimez toutes les ressources appartenant au conteneur de la base de données.
oc delete all -l app=postgresdb
Créer et exécuter le conteneur postgresql backukp sur 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
Supprimez toutes les ressources appartenant au conteneur de sauvegarde.
oc delete all -l app=backup
Créer et fournir des modèles OpenShift pour le conteneur de sauvegarde et combiné avec la base de données.
Modèles OpenShift:
Exécutez un conteneur de base de données PostgreSQL.
docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d -p 5432:5432 postgres
Exécutez un conteneur de base de données postgresql croquant.
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 données INIT.
docker build -t pg_backup .
Environnement:
Créer un répertoire de sauvegarde:
mkdir pgdata
Démarrer le conteneur de sauvegarde:
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