- ใช้ https://github.com/appuio/postgres-backup-cronjob แทน !!!
คอนเทนเนอร์เพื่อทำการสำรองข้อมูลเต็มรูปแบบของฐานข้อมูล PostgreSQL ที่ทำงานบน OpenShift การสำรองข้อมูลทำโดยเครื่องมือ pg_basebackup
การสำรองข้อมูลที่ง่ายขึ้นโดยใช้ pg_dump
มีอยู่ในที่เก็บ postgreSQL-Simple-backup-container
จัดเตรียมคอนเทนเนอร์ที่ทำการสำรองข้อมูลเป็นระยะของฐานข้อมูล PostgreSQL
คอนเทนเนอร์สำรองยังไม่เสร็จสิ้นเจ็ท: กำลังดำเนินการอยู่
repo นี้ได้รับแรงบันดาลใจจากคอนเทนเนอร์สำรอง MySQL: https://github.com/appuio/mysql-simple-backup-container
ฐานข้อมูลจะต้องตั้งค่ากับผู้ใช้หลักและเป็นรหัสผ่าน
ฐานข้อมูลจะต้องมีการกำหนดค่าเพื่ออนุญาตให้เข้าถึงระยะไกลจากโฮสต์อื่น ๆ
ผู้ใช้ฐานข้อมูลสำหรับการสำรองข้อมูลจะต้องมีบทบาท superuser หรือการจำลองแบบ
ฐานข้อมูลจะต้องตั้งค่าเพื่ออนุญาตการเชื่อมต่อการสำรองข้อมูลระยะไกล
สำหรับสิ่งนี้เพิ่มการกำหนดค่าต่อไปนี้ในไฟล์การกำหนดค่า 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
สร้างคอนเทนเนอร์ด้วย oc tool
จาก Image 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
สร้างคอนเทนเนอร์ด้วย 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 -
สร้างคอนเทนเนอร์ด้วย oc tool
จาก DOBERFILE ในท้องถิ่น มันถูกแก้ไขเพื่อให้การเชื่อมต่อระยะไกล
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
เอกสารเพิ่มเติมสำหรับ PostgreSQL บน OpenShift
คอนเทนเนอร์ฐานข้อมูล PostgreSQL บน GitHub
ลบทรัพยากรทั้งหมดที่เป็นเจ้าของโดยคอนเทนเนอร์ฐานข้อมูล
oc delete all -l app=postgresdb
สร้างและเรียกใช้คอนเทนเนอร์ backukp postgreSQL บน 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
ลบทรัพยากรทั้งหมดที่เป็นเจ้าของโดยคอนเทนเนอร์สำรอง
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