!!!!使用https://github.com/appuio/postgres-backup-cronjob!
容器可以完成OpenShift上运行的PostgreSQL数据库的完整备份。备份由pg_basebackup
工具完成。
使用pg_dump
的较简单备份可在PostgreSQL-Simple-backup-container存储库中使用。
提供一个容器,该容器可定期备份PostgreSQL数据库。
备用容器未完成喷气式:正在进行中。
此存储库的灵感来自MySQL备份容器:https://github.com/appuio/mysql-simple-backup-container
数据库必须使用主用户及其密码设置。
必须配置数据库以允许与其他主机进行远程访问。
备份的数据库用户必须具有超级用户或复制角色。
必须设置数据库以允许远程备份连接。
为此,将以下配置添加到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数据库。
使用Docker Image使用oc tool
创建容器:
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 -
使用本地DB Dockerfile的oc tool
创建容器。它被修补以允许远程连接。
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
有关OpenShift上PostgreSQL的更多文档。
GitHub上的PostgreSQL数据库容器。
删除数据库容器拥有的所有资源。
oc delete all -l app=postgresdb
在OpenShift上创建并运行PostgreSQL Backukp容器。
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