PostgreSQL
'PostgreSQL' adalah sistem manajemen basis data relasional (RDBMS) bersifat open-source yang menggunakan dan memperluas bahasa SQL. PostgreSQL dikenal karena kestabilannya, keamanannya, dan kepatuhannya terhadap standar SQL.
Fitur Utama PostgreSQL
- Mendukung ACID compliance (Atomicity, Consistency, Isolation, Durability)
- Mendukung JSON, XML, dan array
- Extensible – dapat membuat tipe data, fungsi, dan operator sendiri
- Multi-version Concurrency Control (MVCC) untuk performa tinggi
- Dukungan replication, backup, dan restore
- Kompatibel di berbagai platform: Linux, Windows, macOS, serta container (Docker)
Setup PostgreSQL di VM (Linux)
Instalasi PostgreSQL
1. Setup PostgreSQL di VM (Linux)
Gunakan perintah berikut pada distribusi Linux berbasis Debian/Ubuntu:
sudo apt update
sudo apt install postgresql postgresql-contrib -y
Untuk distribusi berbasis Red Hat (CentOS/Rocky/Alma):
sudo dnf install postgresql-server postgresql-contrib -y
sudo postgresql-setup --initdb
sudo systemctl enable postgresql
sudo systemctl start postgresql
Cek Status Service
sudo systemctl status postgresql
Masuk ke PostgreSQL Shell
sudo -i -u postgres
psql
Membuat User dan Database Baru
CREATE USER vendor_ampkis WITH PASSWORD 'Bjbs2025!';
CREATE DATABASE ampkis_dev OWNER vendor_ampkis;
GRANT ALL PRIVILEGES ON DATABASE ampkis_dev TO vendor_ampkis;
Mengizinkan Akses Remote (Opsional)
Edit file postgresql.conf dan pg_hba.conf:
sudo nano /etc/postgresql/14/main/postgresql.conf
Ubah:
listen_addresses = '*'
Kemudian di pg_hba.conf:
host all all 0.0.0.0/0 md5
Restart service:
sudo systemctl restart postgresql
2. Setup PostgreSQL di Docker
Jalankan PostgreSQL dengan Docker CLI
docker run -d --name postgres-db -e POSTGRES_USER=vendor_ampkis -e POSTGRES_PASSWORD=contohpass -e POSTGRES_DB=ampkis_dev -p 5432:5432 postgres:17
Menggunakan Docker Compose
Buat file docker-compose.yml:
version: '3.8'
services:
postgres:
image: postgres:17
container_name: postgres-db
restart: always
environment:
POSTGRES_USER: vendor_ampkis
POSTGRES_PASSWORD: contohpass
POSTGRES_DB: ampkis_dev
ports:
- "5432:5432"
volumes:
- ./pgdata:/var/lib/postgresql/data
Jalankan:
docker-compose up -d
Masuk ke PostgreSQL di Dalam Container
docker exec -it postgres-db psql -U vendor_ampkis -d ampkis_dev
Perintah Dasar PostgreSQL
| Perintah | Keterangan |
|---|---|
\l | Melihat daftar database |
\c nama_database | Pindah ke database tertentu |
\dt | Melihat daftar tabel |
\du | Melihat daftar user |
\q | Keluar dari psql |
CREATE DATABASE nama_db; | Membuat database baru |
DROP DATABASE nama_db; | Menghapus database |
CREATE TABLE nama_tabel (...); | Membuat tabel baru |
SELECT * FROM nama_tabel; | Menampilkan isi tabel |
\i path/file.sql | Menjalankan file SQL |
\copy tabel FROM 'file.csv' CSV HEADER; | Import data dari CSV |
pg_dump -U user -d db > backup.sql | Backup database |
psql -U user -d db < backup.sql | Restore database |
Tips & Praktik Baik
- Gunakan versi PostgreSQL terbaru untuk keamanan dan performa.
- Gunakan volume di Docker agar data tidak hilang saat container dihapus.
- Selalu gunakan user selain
postgresuntuk aplikasi produksi. - Lakukan backup rutin menggunakan
pg_dumpataupg_basebackup. - Gunakan pgAdmin atau DBeaver untuk antarmuka GUI.