Sunday, 31 December 2023

PostgreSQL : Membuat Server Database PostgreSQL pada Ubuntu Server 22.04 [Quick Start]

PostgreSQL : Membuat Server Database PostgreSQL pada Ubuntu Server 22.04 [Quick Start]

RDBMS atau sistem manajemen basis data relasional adalah jenis sistem basis data yang menyimpan dan mengelola data dalam bentuk tabel yang terhubung satu sama lain melalui kunci utama dan kunci asing.

PostgreSQL, sering disebut sebagai "Postgres," adalah sistem manajemen basis data relasional (RDBMS) yang sangat populer dan banyak digunakan dalam berbagai sistem pada saat ini. PostgreSQL adalah proyek open-source, yang berarti sumber kode-nya dapat diakses oleh siapa saja. Hal ini memberikan fleksibilitas bagi pengguna untuk mengonfigurasi dan mengadaptasikan sistem sesuai kebutuhan mereka tanpa biaya lisensi.

Tutorial ini akan menjelaskan BAGAIMANA CEPATnya kita bisa membuat server database pada Ubuntu Server 22.04 menggunakan PostgreSQL dari proses instalasi, konfigurasi dasar seperti menambahkan user baru dan database, dan juga praktik terbaik untuk backup dan restore database.

Untuk mengikuti tutorial ini, kamu membutuhkan server Ubuntu yang sudah dilakukan konfigurasi dasar dengan mengikuti Konfigurasi Dasar pada Ubuntu Server.
Baca juga :

Konfigurasi Dasar Pada Ubuntu Server 20.04 

1. Instalasi PostgreSQL

Untuk menginstal PostgreSQL, pertama-tama kita lakukan update package lokal server menggunakan perintah :

sudo apt update

Kemudian, kita install postgresql menggunakan package -contrib yang akan menambahkan beberapa utilitas dan fungsi tambahan menggunakan perintah :

sudo apt install postgresql postgresql-contrib

Setelah proses instalasi selesai, kita periksa apakah service postgresql sudah berjalan. Kita bisa cek menggunakan perintah :

sudo systemctl status postgresql

Output :
● postgresql.service - PostgreSQL RDBMS
     Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
     Active: active (exited) since Sat 2023-12-30 15:21:00 UTC; 23s ago
   Main PID: 3881 (code=exited, status=0/SUCCESS)
      Tasks: 0 (limit: 4680)
     Memory: 0B
     CGroup: /system.slice/postgresql.service

Dec 30 15:21:00 databasesaurus systemd[1]: Starting PostgreSQL RDBMS...
Dec 30 15:21:00 databasesaurus systemd[1]: Finished PostgreSQL RDBMS.


2. Setup Default User postgres

Proses instalasi PostgreSQL akan secara otomatis membuat user bernama postgres yang terkait dengan role default Postgres. Ada beberapa cara untuk menggunakan user ini untuk mengakses PostgreSQL. Salah satu caranya adalah dengan menggunakan perintah sudo -i -u, sebelumnya kita perlu menambahkan user postgres kedalam sudoers group, caranya dengan menggunakan perintah :

sudo visudo

Kemudian input konfigurasi seperti dibawah ini :

postgres ALL:(ALL) NOPASSWD: ALL

Setelah selesai, tekan CTRL + X dan ketikan Y untuk menyimpan konfigurasinya.

Selanjutnya kita bisa masuk sebagai user postgres menggunakan perintah :

sudo -i -u postgres

Untuk mengakses terminal query postgresql, kita bisa ketikan perintah :

psql

Selanjutnya kita bisa melakukan pergantian password untuk user postgres di database menggunakan query ALTER ;

ALTER USER postgres WITH PASSWORD '12345';

Pada tahap ini, kalian bisa menambahkan user baru sesuai kebutuhan kalian menggunakan perintah ;

sudo createuser --interactive

Output :
Enter name of role to add: arief
Shall the new role be a superuser? (y/n) y


3. Membuat Database

Disini kita akan membuat database dengan nama dvd, untuk membuat database kita bisa menggunakan 2 cara yaitu lewat terminal server dan lewat terminal query ;

Untuk membuat database lewat terminal server, ketikan perintah ;

createdb dvd

Kemudian untuk membuat database lewat terminal query, kalian bisa menggunakan query CREATE DATABASE ;

CREATE DATABASE dvd;


4. Import Database dari File External

Bayangkan kita ada di suatu kondisi dimana, kita perlu melakukan setup database server untuk keperluan development sebuah aplikasi dan memerlukan database dummy untuk digunakan. Sekarang ini kita bisa mendapatkan database dummy dengan mudah, salah satunya adalah pada website postgresqltutorial, kalian bisa mendownload file database dummy yang digunakan pada tutorial ini pada websitenya.

Setelah didownload, kita perlu mengupload file archive .tar kedalam server, kalian bisa menggunakan software sftp untuk mengupload file archive tadi ke server.

Setelah filenya diupload ke server, kita perlu memindahkan file dummy tadi kedalam home directory postgres yang ada di /var/lib/postgresql. Untuk melakukannya kita bisa menggunakan perintah ;

sudo mv dvdrental.tar /var/lib/postgresql/

Pastikan bahwa file dummy sudah pindah ke home directory postgres ;

ls

Output :
12  dvdrental.tar

Selanjutnya kita ubah ownership file dummynya ke user postgres ;

sudo chown postgres:postgres dvdrental.tar

Kita pastikan bahwa ownershipnya sudah berubah ;

ls -lh

Output :
total 2.8M
drwxr-xr-x 3 postgres postgres 4.0K Dec 30 15:21 12
-rw-rw-r-- 1 postgres postgres 2.8M May 12  2019 dvdrental.tar

Disini kita akan mengimport database dari file archive .tar kedalam database dvd yang sudah kita buat tadi. Untuk melakukannya kita bisa menggunakan perintah :

pg_restore -h localhost -U postgres -d dvd -v dvdrental.tar

Fungsi pg_restore akan melakukan koneksi ke database untuk proses import ini, kita akan diminta untuk menginput password untuk user postgres yang sudah kita ubah tadi menggunakan query ALTER.

Output :
pg_restore: connecting to database for restore
Password:

Setelah proses import database selesai, kita bisa memeriksa apakah proses import berhasil dengan masuk ke terminal query dan masuk ke database dvd menggunakan query :

\c dvd

Output :
You are now connected to database "dvd" as user "postgres".

Selanjutnya kita bisa periksa table dari database dvd menggunakan query :

\dt

Output :
             List of relations
 Schema |     Name      | Type  |  Owner
--------+---------------+-------+----------
 public | actor         | table | postgres
 public | address       | table | postgres
 public | category      | table | postgres
 public | city          | table | postgres
 public | country       | table | postgres
 public | customer      | table | postgres
 public | film          | table | postgres
 public | film_actor    | table | postgres
 public | film_category | table | postgres
 public | inventory     | table | postgres
 public | language      | table | postgres
 public | payment       | table | postgres
 public | rental        | table | postgres
 public | staff         | table | postgres
 public | store         | table | postgres
(15 rows)


5. Backup pg_dump dan Restore pg_restore

Dalam proses belajar posgtresql, rasanya kurang jika tidak membahas tentang 2 fungsi penting ini yaitu pg_dump dan pg_restore.

pg_dump digunakan untuk membuat cadangan (dump) dari satu atau beberapa basis data PostgreSQL.
pg_restore digunakan untuk mengembalikan (restore) basis data PostgreSQL dari cadangan yang dibuat dengan pg_dump.
Disini kita akan melakukan backup dari database dvd menggunakan fungsi pg_dump, adapun perintah yang digunakan adalah :

pg_dump -h localhost -U postgres -F c -f db.dump dvd

Perintah pg_dump diatas akan menghasilkan file backup bernama db.dump

Selanjutnya kita akan melakukan restore database menggunakan file db.dump. Sebelumnya kita perlu membuat 1 database baru lagi, disini kita membuat database dengan nama dvd_restore menggunakan query :

CREATE DATABASE dvd_restore;

Kemudian kita bisa lakukan restore database dari file db.dump menggunakan perintah :

pg_restore -h localhost -U postgres -d dvd_restore -v db.dump

Setelah proses restore selesai, kita bisa periksa apakah prosesnya berhasil dengan masuk ke terminal query dan melihat table dari database dvd_restore.

\c dvd_restore

Setelah terkoneksi dengan database dvd_restore, kita bisa cek table-tablenya.

\dt

Output :
             List of relations
 Schema |     Name      | Type  |  Owner
--------+---------------+-------+----------
 public | actor         | table | postgres
 public | address       | table | postgres
 public | category      | table | postgres
 public | city          | table | postgres
 public | country       | table | postgres
 public | customer      | table | postgres
 public | film          | table | postgres
 public | film_actor    | table | postgres
 public | film_category | table | postgres
 public | inventory     | table | postgres
 public | language      | table | postgres
 public | payment       | table | postgres
 public | rental        | table | postgres
 public | staff         | table | postgres
 public | store         | table | postgres
(15 rows)


Kesimpulan :

Sekarang kamu berhasil membuat sebuah server database postgresql menggunakan Ubuntu Server 22.04.