Apakah kamu mempunyai sistem yang sudah running dan menggunakan PostgreSQL sebagai databasenya? Jika ia, tentu kamu harus melakukan backup rutin, karena ga mau dong kalau tiba-tiba databasenya gangguan atau bahkan hilang sedangkan kamu tidak mempunyai data cadangannya.
Untuk melakukan backup dan resotore di Postgres ini sangat banyak caranya, bisa langsung menggunakan command line / terminal, atau bisa menggunakan juga tools lain yang berbentuk GUI seperti pgAdmin, phpPgAdmin, Navicat, dan juga lainnya.
Nah kali ini saya akan memberikan sedikit tutorial mengenai cara backup dan resotre database PostgreSQL menggunakan command line / terminal ubuntu, salah satu keunggulan langsung menggunakan command line ini karena prosesnya bisa lebih cepat.
Untuk bisa mengikuti tutorial ini sebaiknya kamu sudah sedikit mengerti tentang cara menggunakan terminal di ubuntu. Lalu proses backup atau restore database ini juga memerlukan akses root privileges, sehingga kamu harus lebih berhati-hati melakukannya.
Baca juga : Cara Backup Database PostgreSQL di Ubuntu Melalui Command Line
Dalam proses backup database ini akan saya bagi menjadi dua, yaitu proses backup manual satu kali dan juga proses backup otomatis yang terjadwal.
Sekali Proses
Backup Database PostgreSQL Tunggal
Maksud sekali proses disini adalah ketika selesai menjalankan perintah di command line maka prosesnya akan selesai dan tidak akan terulang kembali kecuali kita mengetikan perintah lagi, dan maksud database tunggal adalah kita akan membackup satu database saja, tanpa menghiraukan database yang lain.
Berikut adalah urutannya:
1. Masuk sebagai user postgres
su - postgres
Baca juga : Cara Install PostgreSQL di Ubuntu 16.4 dan 18.4
2. Backup database dengan menggunakan perintah dibawah ini, ganti namadatabase dengan nama database yang akan kamu backup.
pg_dump namadatabase > namadatabase.bak
Terdapat beberapa ektensi database yang bisa digunakan, yaitu:
- *.bak: compressed binary format
- *.sql: plaintext dump
- *.tar: tarball
Setelah selesai menjalankan perinah diatas, silahkan cek apakah file backup nya ada dengan ukuran yang sesuai ataukah tidak, kalau ada berarti proses backup berhasil.
3. Setelah itu, kita lanjut ke proses restore database. Kamu boleh menghapus contoh database lama yang tadi sudah di backup atau bisa juga membuat database baru.
dropdb dbname
createdb dbname
4. Resotore database menggunakan psql
psql namadatabase < namadatabase.bak
Baca juga : Cara Membetulkan Core Web Vitals Agar Website Lebih SEO Friendly
Backup Database dari Remote Server
Seandainya kita ingin membackup database yang ada di remot server semisal VPS, maka itu sangat bisa dilakukan selama kita tau IP server, serta username, password dan port database postgres yang ada di server. Perintah yang digunakan adalah:
pg_dump -h 202.10.219.174 -U namauserdatabase -p 5432 namadatabase > namadatabase.bak
-h adalah host server, bisa berupa IP atau juga domain
-U adalah user dari database
-p adalah posrt, secara default adalah 5432
namadatabase adalah nama database yang akan di backup
namadatabase.bak adalah nama database hasil proses backup
Backup Semua Database
Karena pg_dump hanya membuat backup satu database pada satu waktu, pg_dump tidak menyimpan informasi tentang peran basis data atau konfigurasi cluster-wide lainnya. Untuk menyimpan informasi ini, dan membackup semua database yang ada secara bersamaan, maka kita bisa menggunakan perintah pg_dumpall.
1. Backup database
pg_dumpall > pg_backup.bak
2. Restore semua database
psql -f pg_backup.bak postgres
Back Otomatis Menggunakan Cron Task
Seandainya kita harus backup database secara manual setiap hari pasti repot dan membosankan, nah untuk itu kita bisa memanfaatkan crontab untuk melakukan tugas tersebut secara otomatis, sehingga kita tidak perlu melakukannya lagi secara manual setiap hari.
1. Masuk sebagai user postgres
su - postgres
2. Buat directory / folder untuk menyimpan file hasil backup otomatis
mkdir -p /home/ruswan/backups
3. Buka crontab untuk menambahkan cront task baru
crontab -e
Baca juga : Backup Otomatis PostgreSQL di Linux
4. Tambahkan baris beritkut di paling bawah isi crontab
00 16 0 * * 0 pg_dump -U postgres namadatabase > /home/ruswan/backups/namadatabase.bak
5. Simpan hasil perubahan tersebut.
Itu artinya crontab akan melakukan proses backup setiap jam 16 alias jam 4 sore, silahkan sesuaikan sendiri waktu, nama database dan tempat penyipanan databasenya.
Bersambung, karena masih ada beberapa cara backup database postgreSQL lainnya, salah satunya adalah cara backup database postgreSQL yang ukurannya sudah besar dan hasil backup nya langsung terkompres.