Cara Backup Database PostgreSQL di Ubuntu Melalui Command Line



Backup dan Restore Database PostgreSQL

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 dan Restore Database MySQL Melalui Command-Line Linux Ubuntu

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 : Backup Otomatis PostgreSQL di Linux

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 : Cara Menghapus (Uninstall) PostgreSQL dari Ubuntu

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.




Tentang Penulis

Kang Ruswan
Kang Ruswan