!!! Gunakan https://github.com/appuio/postgres-backup-cronjob sebagai gantinya !!!
Wadah untuk melakukan cadangan penuh database PostgreSQL yang berjalan di OpenShift. Cadangan dilakukan oleh alat pg_basebackup
.
Cadangan yang lebih sederhana menggunakan pg_dump
tersedia di repositori PostgreSQL-Simple-Backup-Container.
Berikan wadah yang melakukan cadangan berkala dari database PostgreSQL.
Wadah cadangan belum selesai Jet: Bekerja dalam proses.
Repo ini terinspirasi oleh wadah cadangan mysql: https://github.com/appuio/mysql-simple-backup-container
Database harus diatur dengan pengguna master dan kata sandi.
Basis data harus dikonfigurasi untuk memungkinkan akses jarak jauh dari host lain.
Pengguna basis data untuk cadangan harus memiliki peran superuser atau replikasi.
Basis data harus diatur untuk memungkinkan koneksi cadangan jarak jauh.
Untuk ini, tambahkan konfigurasi berikut ke file konfigurasi postgresql /etc/postgresql/XX/main/postgresql.conf
Gunakan versi database Anda untuk 'x.x'. Sebagai contoh: '9.5'
max_wal_senders = 5
wal_level = hot_standby
archive_mode = on
archive_command = '/bin/true'
Penggunaan di OpenShift.
Cara membuat dan menjalankan database PostgreSQL.
Buat wadah dengan oc tool
dari gambar 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
Buat wadah dengan oc tool
dari template yang diinstal:
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
Edit konfigurasi penyebaran dan tambahkan kata sandi master sebagai variabel env.
env:
-
name: POSTGRESQL_ADMIN_PASSWORD
value: mysecretpassword2
Buat wadah dengan oc tool
dari template lokal:
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 -
Buat wadah dengan oc tool
dari DB DockerFile lokal. Itu ditambal untuk memungkinkan koneksi jarak jauh.
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
Lebih banyak dokumentasi untuk PostgreSQL di OpenShift.
Wadah Database PostgreSQL di GitHub.
Hapus semua sumber daya yang dimiliki oleh wadah database.
oc delete all -l app=postgresdb
Buat dan jalankan wadah PostgreSQL Backukp di 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
Hapus semua sumber daya yang dimiliki oleh wadah cadangan.
oc delete all -l app=backup
Buat dan berikan templat OpenShift untuk wadah cadangan dan dikombinasikan dengan database.
Template OpenShift:
Jalankan wadah basis data PostgreSQL.
docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d -p 5432:5432 postgres
Jalankan wadah basis data PostgreSQL yang renyah.
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
Basis data init.
docker build -t pg_backup .
Lingkungan:
Buat direktori cadangan:
mkdir pgdata
Mulai wadah cadangan:
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