Pengantar
Backup dan restore database adalah langkah penting dalam manajemen data, terutama untuk mencegah kehilangan informasi akibat kesalahan sistem, serangan, atau kegagalan perangkat keras. PostgreSQL menyediakan alat bawaan yang sangat baik untuk melakukan kedua proses ini, baik dalam format SQL (.sql) maupun dalam format binary (.dump).
Prasyarat
Anda sudah membaca:
- Cara install PostgreSQL
- Akses root dan sudo
- Akses user postgres atau user lain dengan hak akses ke database
Cara Backup Database PostgreSQL
PostgreSQL menyediakan dua metode umum untuk backup
- Backup ke Format SQL (Plain Text)
File .sql ini bisa dibaca manusia dan mudah untuk dipelajari atau dimodifikasi.
pg_dump -U nama_user -W -F p nama_database > backup_nama_database.sql
Contoh
pg_dump -U postgres -W -F p plasawebhost > plasawebhost.sql
Saat diminta password, masukkan password user PostgreSQL.
Penjelasan:
- -U nama_user → nama user PostgreSQL
- -W → meminta password
- -F p → format plain text SQL
- > backup.sql → hasil disimpan ke file
Hasil backup akan berada di folder root
- Perintah pg_dump juga mendukung berbagai format output lainnya. Anda bisa menentukan format output dengan opsi -F, di mana c merujuk pada format arsip khusus (custom), d untuk format direktori, dan t untuk format arsip tar. Semua format ini dapat digunakan kembali dengan perintah pg_restore.
Contoh
$ pg_dump -F c nama_database > nama_database.dump atau $ pg_dump -F t nama_database > nama_database.tar
Untuk menghasilkan output dalam format direktori, gunakan opsi -f untuk menentukan direktori tujuan, bukan nama file. Perlu diperhatikan bahwa direktori tersebut tidak boleh sudah ada sebelumnya, karena pg_dump akan membuatnya secara otomatis.
$ pg_dump -F d nama_database -f nama_databasedumpdir
Cara Restore Database PostgreSQL
- Restore dari File SQL (Plain Text)
Sebelum restore, pastikan database tujuan sudah dibuat.- Buat database baru
createdb -U postgres nama_database_baru
- Restore
psql -U postgres -d nama_database_baru -f backup_nama_database.sql
- Contoh
createdb -U postgres plasawebhost_restore psql -U postgres -d plasawebhost_restore -f plasawebhost.sql
- Buat database baru
- Restore dari Format Custom (.dump)
- Buat database tujuan
createdb -U postgres nama_database_restore
- Restore
pg_restore -U postgres -W -d plasawebhost_restore backup_plasawebhost.dump
- Contoh
pg_restore -U postgres -W -d plasawebhost_restore plasawebhost.dump
- Buat database tujuan
Tips Tambahan
- Untuk melihat semua database
psql -U postgres -c "\l"
- Untuk login PostgreSQL
sudo -i -u postgres psql
- Jika Anda sedang mencadangkan database berukuran besar dan ingin menghasilkan file output yang lebih kecil, Anda bisa melakukan proses backup terkompresi dengan mengalirkan output dari pg_dump ke alat kompresi seperti gzip atau alat favorit Anda lainnya.
Jika basis data Anda sangat besar, Anda dapat melakukan dump secara paralel dengan mengekspor beberapa tabel sekaligus menggunakan opsi -j diikuti dengan jumlah proses yang diinginkan.$ pg_dump nama_database | gzip > nama_database.gz
$ pg_dump -F d -j 5 -f nama_databasedumpdir
Kesimpulan
Backup dan restore database PostgreSQL sangat penting untuk menjaga keamanan dan integritas data. PostgreSQL menyediakan dua metode utama untuk backup dan restore: format SQL (mudah dibaca manusia) dan format custom (lebih fleksibel dan efisien). Dengan mengikuti langkah-langkah di atas, Anda dapat dengan mudah mengelola backup dan pemulihan database PostgreSQL di server Ubuntu 22.04 Anda.