!!! استخدم https://github.com/appuio/postgres-backup-cronjob بدلاً من ذلك !!!
حاوية للقيام بنسخ احتياطية كاملة لقواعد بيانات postgreSQL التي تعمل على OpenShift. يتم النسخ الاحتياطي بواسطة أداة pg_basebackup
.
تتوفر النسخ الاحتياطية البسيطة باستخدام pg_dump
في مستودع ما بعد الخسارة البسيطة.
توفير حاوية تقوم بنسخ احتياطية دورية لقاعدة بيانات 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.
قم بإنشاء الحاوية باستخدام oc tool
من 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
قم بإنشاء الحاوية باستخدام 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
من dockerfile DBB المحلي. تم تصحيحه للسماح بالاتصالات عن بُعد.
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
إنشاء وتشغيل حاوية postgresql backukp على 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
قاعدة بيانات init.
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