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:

  1. Cara install PostgreSQL 
  2. Akses root dan sudo 
  3. Akses user postgres atau user lain dengan hak akses ke database

Cara Backup Database PostgreSQL

PostgreSQL menyediakan dua metode umum untuk backup

  1. 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:

    1. -U nama_user → nama user PostgreSQL
    2. -W → meminta password
    3. -F p → format plain text SQL
    4. > backup.sql → hasil disimpan ke file

      Hasil backup akan berada di folder root

  2. 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

  1. Restore dari File SQL (Plain Text)
    Sebelum restore, pastikan database tujuan sudah dibuat.
    1. Buat database baru 
      createdb -U postgres nama_database_baru
      
    2. Restore
      psql -U postgres -d nama_database_baru -f backup_nama_database.sql
    3. Contoh
      createdb -U postgres plasawebhost_restore
      psql -U postgres -d plasawebhost_restore -f plasawebhost.sql
  2. Restore dari Format Custom (.dump)
    1. Buat database tujuan 
      createdb -U postgres nama_database_restore
    2. Restore
      pg_restore -U postgres -W -d plasawebhost_restore backup_plasawebhost.dump
    3. Contoh
      pg_restore -U postgres -W -d plasawebhost_restore plasawebhost.dump

Tips Tambahan

  1. Untuk melihat semua database
    psql -U postgres -c "\l"
  2. Untuk login PostgreSQL
    sudo -i -u postgres
    psql
  3. 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.
    $ pg_dump nama_database | gzip > nama_database.gz
    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 -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.