!!!!使用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