Langkah 1: Identifikasi Container PostgreSQL
Gunakan perintah docker ps
untuk menemukan container PostgreSQL:
docker ps
Catat CONTAINER ID
atau NAMES
dari container PostgreSQL.
Langkah 2: Backup Semua Database
Gunakan docker exec
untuk menjalankan pg_dumpall
di dalam container:
docker exec -t <CONTAINER_ID_OR_NAME> pg_dumpall -U <username> > backup_all_databases_$(date +%Y%m%d_%H%M%S).sql
Di sini, <CONTAINER_ID_OR_NAME>
adalah ID atau nama container PostgreSQL Anda, dan <username>
adalah nama pengguna untuk PostgreSQL.
Langkah 3: Menyimpan Backup di Lokasi yang Aman
Simpan backup di lokasi di luar container untuk keamanan, contoh:
docker exec -t <CONTAINER_ID_OR_NAME> pg_dumpall -U <username> > /path/ke/backup/di/host/backup_all_databases_$(date +%Y%m%d_%H%M%S).sql
/path/ke/backup/di/host
adalah lokasi di host di mana Anda ingin menyimpan file backup.
Langkah 4: Verifikasi Backup
Setelah backup dibuat, Anda bisa menguji restore-nya dengan membuat container baru atau menggunakan container yang ada untuk restore semua database:
cat backup_all_databases_20241209_080000.sql | docker exec -i <CONTAINER_ID_OR_NAME> psql -U <username> postgres
postgres
di sini adalah database default tempat psql
akan menjalankan query. Ini akan menginisiasi restore semua database dari file backup.
Catatan: Pastikan pengguna yang Anda gunakan (<username>
) memiliki izin yang cukup untuk mengakses semua database yang akan di-backup. Juga, file backup bisa sangat besar jika Anda memiliki banyak database atau data dalam jumlah besar.