Lewati ke isi

Server & Infrastruktur

Cara Pasang PostgreSQL 17 di Ubuntu 24.04

Langkah memasang PostgreSQL 17 di Ubuntu 24.04 lewat repositori resmi PGDG, membuat user dan database, lalu membuka akses dengan aman.

Terbit 5 menit baca

Jawaban singkat

Ubuntu 24.04 bawaan menyediakan PostgreSQL 16. Untuk versi 17, tambahkan repositori resmi PGDG dengan skrip apt.postgresql.org.sh, pasang paket postgresql-17, lalu buat user dan database sendiri sebelum membuka akses jaringan.

Daftar isi
  1. Apa yang perlu disiapkan?
  2. Bagaimana langkah pemasangannya?
  3. 1. Perbarui sistem
  4. 2. Tambahkan repositori PGDG
  5. 3. Pasang PostgreSQL 17
  6. 4. Pastikan layanan berjalan
  7. 5. Buat user dan database untuk aplikasi
  8. 6. Buka akses dari server lain (bila perlu)
  9. 7. Kunci port dengan firewall
  10. Setelan awal apa yang layak diubah?
  11. Sampai kapan PostgreSQL 17 didukung?
  12. Pertanyaan yang sering diajukan
  13. Checklist singkat

Butuh PostgreSQL 17 di VPS Ubuntu 24.04, tapi apt install postgresql malah memasang versi 16? Itu wajar. Ubuntu membekukan satu versi PostgreSQL untuk setiap rilisnya, dan untuk Ubuntu 24.04 versi itu adalah 16.

Jalan resminya adalah menambahkan repositori PGDG (PostgreSQL Global Development Group) di apt.postgresql.org. Repositori ini dikelola komunitas PostgreSQL sendiri, mendukung Ubuntu 24.04 (noble), dan menyediakan beberapa versi utama sekaligus. Seluruh prosesnya hanya butuh beberapa menit.

Apa yang perlu disiapkan?

  • VPS atau server dengan Ubuntu 24.04 LTS dan akses sudo.
  • Koneksi internet dari server ke apt.postgresql.org.
  • Sekitar 1 GB RAM sudah cukup untuk mencoba. Untuk produksi, sesuaikan dengan ukuran data dan jumlah koneksi.

Kalau kamu masih menimbang engine database, ada perbandingan PostgreSQL, MySQL, dan MariaDB yang bisa dibaca dulu.

Bagaimana langkah pemasangannya?

1. Perbarui sistem

sudo apt update && sudo apt upgrade -y

2. Tambahkan repositori PGDG

Cara termudah adalah skrip otomatis dari paket postgresql-common, sesuai dokumentasi resmi:

sudo apt install -y postgresql-common
sudo /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh

Skrip akan meminta konfirmasi, lalu menambahkan kunci penandatangan dan sumber paket untuk Ubuntu versimu.

Kalau kamu lebih suka cara manual, dokumentasi PostgreSQL juga menjelaskan cara mengunduh kunci ke /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc dan membuat file /etc/apt/sources.list.d/pgdg.sources dengan suite noble-pgdg. Hasil akhirnya sama.

3. Pasang PostgreSQL 17

sudo apt update
sudo apt install -y postgresql-17

Paket ini otomatis membuat cluster bernama main, dengan konfigurasi di /etc/postgresql/17/main/ dan data di /var/lib/postgresql/17/main/.

4. Pastikan layanan berjalan

sudo systemctl status postgresql
pg_lsclusters
sudo -u postgres psql -c "SELECT version();"

Perintah pg_lsclusters menampilkan versi, port, dan status setiap cluster. Biasanya cluster 17 memakai port 5432.

5. Buat user dan database untuk aplikasi

Jangan memakai user postgres untuk aplikasi. Buat user khusus:

sudo -u postgres createuser --pwprompt appuser
sudo -u postgres createdb -O appuser appdb

Opsi --pwprompt meminta kamu mengetik password. Opsi -O appuser menjadikan appuser pemilik database appdb, sehingga ia bisa membuat tabel tanpa hak superuser.

Uji login lewat koneksi lokal:

psql -h 127.0.0.1 -U appuser -d appdb

6. Buka akses dari server lain (bila perlu)

Secara bawaan, PostgreSQL hanya mendengarkan localhost. Kalau aplikasi berada di server yang sama, berhenti di langkah 5. Kalau aplikasi ada di server lain, ubah dua file.

Di /etc/postgresql/17/main/postgresql.conf, atur alamat yang didengarkan:

listen_addresses = 'localhost,10.0.0.5'

Ganti 10.0.0.5 dengan IP server database yang ingin dipakai (sebaiknya IP privat). Lalu di /etc/postgresql/17/main/pg_hba.conf, izinkan hanya IP aplikasi:

host  appdb  appuser  10.0.0.20/32  scram-sha-256

Metode scram-sha-256 adalah metode password yang direkomendasikan dokumentasi PostgreSQL. Terapkan perubahan:

sudo systemctl restart postgresql

7. Kunci port dengan firewall

Izinkan port 5432 hanya dari IP aplikasi:

sudo ufw allow from 10.0.0.20 to any port 5432 proto tcp

Pastikan aturan SSH sudah ada sebelum mengaktifkan UFW. Penjelasan lengkapnya ada di cara setting UFW di Ubuntu 24.04.

Setelan awal apa yang layak diubah?

Konfigurasi bawaan PostgreSQL sangat hemat dan aman, tapi belum memanfaatkan RAM server. Beberapa parameter di postgresql.conf yang paling sering disesuaikan:

ParameterFungsiTitik awal yang umum
shared_buffersMemori cache data milik PostgreSQLSekitar 25% RAM
effective_cache_sizePerkiraan cache total (termasuk cache OS) untuk perencana querySekitar 50 sampai 75% RAM
work_memMemori per operasi sort/hashNaikkan pelan-pelan, karena dikalikan jumlah operasi
max_connectionsBatas koneksi bersamaanSesuaikan aplikasi, pertimbangkan pooler seperti PgBouncer

Untuk melihat nilai yang sedang berlaku tanpa membuka file, masuk ke psql lalu jalankan SHOW shared_buffers;, atau baca tabel pg_settings. Cara ini juga membantu memastikan perubahanmu sudah terbaca setelah reload.

Angka di atas hanya titik awal. Ubah satu per satu, lalu amati performanya. Parameter shared_buffers butuh restart, sedangkan sebagian lain cukup sudo systemctl reload postgresql.

Sampai kapan PostgreSQL 17 didukung?

Kebijakan resmi PostgreSQL memberi setiap versi utama dukungan sekitar lima tahun. PostgreSQL 17 dirilis September 2024, dan menurut halaman versioning resmi, dukungannya berakhir November 2029. Selama itu, rilis minor (misalnya 17.x) membawa perbaikan bug dan keamanan, dan cukup dipasang lewat sudo apt upgrade.

Versi 18 juga sudah tersedia di repositori yang sama. Bila sedang memulai proyek baru, lihat dulu fitur baru PostgreSQL 18 untuk menimbang mana yang lebih cocok.

Pertanyaan yang sering diajukan

Apakah repositori PGDG aman dipakai di server produksi?

Ya. Repositori ini dikelola oleh komunitas PostgreSQL dan menjadi jalur resmi yang direkomendasikan di postgresql.org untuk mendapatkan versi yang lebih baru dari bawaan Ubuntu.

Bagaimana cara mengganti password user postgres?

Masuk dengan sudo -u postgres psql, lalu jalankan \password postgres. Untuk server yang hanya diakses lokal, user postgres cukup dipakai lewat sudo tanpa login password.

Kenapa koneksi dari server lain ditolak padahal pg_hba.conf sudah diubah?

Biasanya karena listen_addresses masih localhost, layanan belum di-restart, atau firewall belum membuka port 5432 untuk IP tersebut. Cek ketiganya berurutan.

Apakah bisa memasang PostgreSQL 16 dan 17 bersamaan?

Bisa. Setiap versi berjalan sebagai cluster terpisah dengan port berbeda. Kelola dengan pg_lsclusters, pg_ctlcluster, dan pg_upgradecluster.

Bagaimana cara backup database PostgreSQL?

Untuk satu database, gunakan pg_dump. Jadwalkan secara otomatis dan simpan salinannya di luar server. Contohnya ada di panduan backup database otomatis.

Checklist singkat

  • Repositori PGDG terpasang dan postgresql-17 aktif.
  • pg_lsclusters menunjukkan cluster 17 online di port yang benar.
  • Aplikasi memakai user sendiri, bukan postgres.
  • Akses jaringan dibatasi lewat pg_hba.conf dan firewall.
  • Backup terjadwal sudah berjalan.

Sumber & referensi

Baca juga