Hemat 15% untuk semua layanan hosting

Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

Gunakan kode: Skills Memulai
Bagian FAQ
Administrasi Linux

Cara Mengelola Database di PostgreSQL: Panduan Lengkap untuk Pengguna Linux VPS

PostgreSQL (biasanya disebut Postgres) adalah salah satu sistem manajemen basis data relasional open-source yang paling powerful dan kaya fitur yang tersedia saat ini. Dipercaya oleh tim startup dan enterprise, PostgreSQL unggul dalam menangani query kompleks, dataset besar, dan arsitektur aplikasi yang scalable. Baik Anda membangun platform SaaS, toko e-commerce, atau backend API yang data-intensive, PostgreSQL memberikan reliability dan performance yang dibutuhkan proyek Anda.

Menjalankan PostgreSQL pada lingkungan VPS Hosting berkinerja tinggi — dengan penyimpanan NVMe SSD, akses root penuh, dan perlindungan DDoS bawaan — memberikan Anda kontrol lengkap atas infrastruktur database tanpa overhead solusi cloud terkelola. Panduan ini memandu Anda melalui setiap tugas manajemen PostgreSQL yang essential, dari akses awal dan pembuatan database hingga izin pengguna, backup, dan hardening keamanan.

Prasyarat

Sebelum melanjutkan, pastikan Anda memiliki:

  • A Linux VPS running Ubuntu, Debian, or CentOS dengan PostgreSQL terinstal
  • Akses root atau sudo ke server Anda
  • Pengetahuan dasar tentang command line Linux

Jika Anda belum menyiapkan lingkungan server Anda, VPS Control Panels AlexHost membuat konfigurasi stack Anda menjadi mudah dan cepat.

1. Mengakses Antarmuka Baris Perintah PostgreSQL

Semua tugas manajemen PostgreSQL dimulai di antarmuka baris perintah (CLI), juga dikenal sebagai psql. Secara default, PostgreSQL membuat pengguna sistem bernama postgres selama instalasi, dan akun ini digunakan untuk autentikasi dengan mesin basis data.

Langkah 1: Beralih ke Pengguna Sistem PostgreSQL

sudo -i -u postgres

Langkah 2: Luncurkan CLI PostgreSQL

psql

Setelah terhubung, Anda akan melihat prompt interaktif:

postgres=#

Ini mengkonfirmasi bahwa Anda berada di dalam lingkungan PostgreSQL dan siap untuk menjalankan perintah SQL dan meta-perintah.

> Pro Tip: Anda juga dapat terhubung langsung tanpa beralih pengguna dengan menjalankan sudo -u postgres psql dari sesi shell reguler Anda.

2. Membuat Database Baru

Database adalah kontainer tingkat atas untuk semua tabel, indeks, dan data tersimpan Anda. Gunakan pernyataan CREATE DATABASE untuk menyediakan database baru.

Sintaks

CREATE DATABASE database_name;

Contoh

CREATE DATABASE my_database;

Ini membuat database bernama my_database yang dimiliki oleh peran PostgreSQL yang sedang aktif.

Verifikasi Database Telah Dibuat

Gunakan perintah meta l untuk mencantumkan semua database di server:

l

Anda akan melihat tabel yang menampilkan nama database, pemilik, pengkodean, dan hak akses.

3. Membuat dan Mengelola Pengguna Database

Manajemen pengguna yang tepat sangat penting untuk keamanan database. Daripada memberikan akses semua aplikasi di bawah akun postgres superuser, Anda harus membuat pengguna khusus dengan izin yang terbatas.

Buat Pengguna Baru

CREATE USER username WITH PASSWORD 'your_secure_password';

Contoh

CREATE USER dbuser WITH PASSWORD 'StrongP@ssword123';

Berikan Akses Penuh ke Database Tertentu

GRANT ALL PRIVILEGES ON DATABASE database_name TO username;

Contoh

GRANT ALL PRIVILEGES ON DATABASE my_database TO dbuser;

Ini memberikan dbuser akses baca dan tulis lengkap ke my_database, termasuk kemampuan untuk membuat dan menghapus tabel.

Daftar Semua Pengguna

Untuk melihat semua peran dan pengguna yang ada:

du

4. Menghubungkan ke Database

Setelah database ada, Anda perlu terhubung dengannya sebelum Anda dapat membuat tabel atau menjalankan kueri terhadapnya.

Beralih ke Database

c my_database

Prompt akan diperbarui untuk mencerminkan database yang aktif:

my_database=#

Anda sekarang beroperasi dalam my_database dan dapat menjalankan semua pernyataan DDL dan DML terhadapnya.

5. Membuat dan Mengelola Tabel

Tabel adalah unit struktural inti dari setiap database relasional. Setiap tabel mendefinisikan skema — satu set kolom bernama dengan tipe data dan batasan spesifik.

Buat Tabel

CREATE TABLE table_name (
    column1 data_type PRIMARY KEY,
    column2 data_type,
    column3 data_type
);

Contoh Praktis: Tabel Catatan Karyawan

CREATE TABLE employees (
    employee_id SERIAL PRIMARY KEY,
    name        VARCHAR(100) NOT NULL,
    department  VARCHAR(50),
    salary      NUMERIC(10, 2)
);

Di sini, SERIAL auto-increment employee_id pada setiap baris baru, dan NOT NULL memastikan bahwa setiap karyawan harus memiliki nama.

6. Menyisipkan, Menanyakan, Memperbarui, dan Menghapus Data

Menyisipkan Catatan

INSERT INTO employees (name, department, salary)
VALUES ('Jane Smith', 'Engineering', 72000);

Menanyakan Semua Catatan

SELECT * FROM employees;

Memfilter Hasil dengan Klausa WHERE

SELECT name, salary FROM employees WHERE department = 'Engineering';

Memperbarui Catatan yang Ada

UPDATE employees
SET salary = 78000
WHERE name = 'Jane Smith';

Menghapus Catatan Tertentu

DELETE FROM employees
WHERE name = 'Jane Smith';

> Praktik Terbaik: Selalu gunakan klausa WHERE dengan pernyataan UPDATE dan DELETE. Menghilangkannya akan mempengaruhi setiap baris dalam tabel.

7. Mengelola Akses Database dan Keamanan

Keamanan adalah perhatian utama dalam setiap deployment PostgreSQL produksi. Prinsip privilege minimal — memberikan pengguna hanya izin yang mereka butuhkan — secara dramatis mengurangi permukaan serangan Anda.

Cabut Semua Privilege dari Pengguna

REVOKE ALL PRIVILEGES ON DATABASE my_database FROM dbuser;

Berikan Akses Baca-Saja ke Tabel Tertentu

GRANT SELECT ON TABLE employees TO dbuser;

Ini memungkinkan dbuser untuk menanyakan tabel employees tetapi mencegah penyisipan, pembaruan, atau penghapusan apa pun.

Berikan Izin DML Spesifik

GRANT SELECT, INSERT, UPDATE ON TABLE employees TO dbuser;

Rekomendasi Keamanan Tambahan

  • Gunakan kata sandi yang kuat dan unik untuk setiap pengguna database
  • Nonaktifkan akses jarak jauh untuk superuser postgres di pg_hba.conf
  • Aktifkan koneksi SSL untuk mengenkripsi data dalam transit — pasangkan ini dengan SSL Certificate terpercaya di server Anda
  • Audit privilege pengguna secara teratur menggunakan du dan dp
  • Jaga PostgreSQL tetap diperbarui untuk menambal kerentanan yang diketahui

8. Pencadangan dan Pemulihan Database

Pencadangan reguler adalah keharusan untuk database produksi apa pun. PostgreSQL menyediakan utilitas pg_dump dan psql untuk alur kerja pencadangan dan pemulihan yang mudah.

Mencadangkan Database ke File SQL

pg_dump my_database > my_database_backup.sql

Ini mengekspor seluruh skema database dan data sebagai skrip SQL teks biasa.

Mencadangkan dalam Format Terkompresi (Direkomendasikan untuk Database Besar)

pg_dump -Fc my_database > my_database_backup.dump

Format kustom (-Fc) menghasilkan file biner terkompresi dan mendukung pemulihan paralel.

Memulihkan Database dari Pencadangan SQL

psql my_database < my_database_backup.sql

Memulihkan dari Pencadangan Format Kustom

pg_restore -d my_database my_database_backup.dump

Mengotomatisasi Pencadangan dengan Cron Job

Jadwalkan pencadangan harian dengan menambahkan entri cron:

crontab -e
0 2 * * * pg_dump my_database > /var/backups/postgres/my_database_$(date +%F).sql

Ini menjalankan pencadangan setiap hari pada pukul 2:00 AM dan menambahkan tanggal ke nama file untuk pengelompokan versi yang mudah.

9. Menghapus Tabel dan Database

Ketika tabel atau database tidak lagi diperlukan, gunakan perintah DROP untuk menghapusnya secara permanen.

Menghapus Tabel

DROP TABLE table_name;

Contoh

DROP TABLE employees;

Menghapus Tabel Hanya Jika Ada (Sintaks yang Lebih Aman)

DROP TABLE IF EXISTS employees;

Menghapus Database

Anda harus memutuskan koneksi dari database target sebelum menghapusnya. Beralih ke database default postgres terlebih dahulu:

c postgres

Kemudian hapus target:

DROP DATABASE my_database;

> Peringatan: DROP DATABASE tidak dapat dibatalkan. Selalu verifikasi bahwa Anda memiliki backup terbaru sebelum menjalankan perintah ini di production.

10. Referensi Meta-Commands PostgreSQL yang Berguna

CLI psql mencakup serangkaian meta-commands yang kaya (diawali dengan ) yang menyederhanakan navigasi dan inspeksi:

CommandDeskripsi
lDaftar semua database
c dbnameTerhubung ke database
dtDaftar semua tabel dalam database saat ini
d table_nameJelaskan skema tabel
duDaftar semua pengguna dan peran
dpTampilkan hak akses tabel
timingAlihkan tampilan waktu eksekusi query
qKeluar dari CLI PostgreSQL

11. Keluar dari PostgreSQL CLI

Ketika Anda selesai dengan sesi Anda, keluar dengan bersih menggunakan:

q

Ini mengembalikan Anda ke prompt shell Linux.

Mengapa Menjalankan PostgreSQL di VPS AlexHost?

Performa dan kontrol adalah dua alasan terbesar untuk self-host PostgreSQL di VPS dedicated daripada mengandalkan layanan database bersama atau terkelola. Dengan infrastruktur AlexHost, Anda mendapatkan:

  • Penyimpanan NVMe SSD untuk operasi baca/tulis ultra-cepat pada dataset besar
  • Akses root penuh untuk mengonfigurasi PostgreSQL sesuai kebutuhan aplikasi Anda
  • Perlindungan DDoS untuk menjaga server database Anda tetap tersedia dalam kondisi jaringan yang buruk
  • Sumber daya yang dapat diskalakan — tingkatkan CPU, RAM, dan penyimpanan Anda seiring pertumbuhan data

Untuk tim yang mengelola beberapa aplikasi atau proyek klien, Dedicated Servers menawarkan isolasi yang lebih besar, performa mentah, dan latensi yang dapat diprediksi untuk beban kerja yang berat database.

Jika Anda menghosting aplikasi web bersama database PostgreSQL Anda, memasangkan VPS Anda dengan Shared Web Hosting untuk aset statis atau pengiriman front-end dapat lebih mengoptimalkan arsitektur Anda dan mengurangi biaya.

Kesimpulan

Menguasai manajemen database PostgreSQL di Linux VPS memberi Anda kepemilikan penuh atas infrastruktur data Anda — dari desain skema dan izin pengguna hingga backup otomatis dan pengerasan keamanan. Perintah dan alur kerja yang dibahas dalam panduan ini mewakili kumpulan keterampilan inti yang setiap pengembang dan administrator sistem butuhkan untuk mengoperasikan PostgreSQL dengan percaya diri dalam produksi.

Ringkasan Referensi Cepat:

  • Gunakan CREATE DATABASE dan CREATE USER untuk menyediakan sumber daya baru
  • Terapkan prinsip hak istimewa paling sedikit dengan GRANT dan REVOKE
  • Selalu backup dengan pg_dump sebelum membuat perubahan destruktif
  • Gunakan l, dt, dan du untuk memeriksa lingkungan Anda sekilas
  • Jadwalkan backup otomatis melalui cron untuk melindungi dari kehilangan data

Siap menerapkan keterampilan ini dalam praktik? Luncurkan lingkungan Linux yang sepenuhnya dikelola di paket VPS Hosting AlexHost dan ambil kontrol penuh atas penyebaran PostgreSQL Anda hari ini.