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.

Wednesday, 20 April 2022

Membuat System Scheduler untuk Backup dan Reset Counter pada Router Mikrotik

thumbnail-scheduler-backup-reset-counter

Pada tutorial kali ini, kita akan membahas tentang System Scheduler, dimana sistem schedule ini akan kita gunakan untuk keperluan maintenance rutin seperti backup konfigurasi dan reset counter.

Sebelum memulai proses konfigurasi pada tutorial ini, pastikan bahwa pengaturan jam dan tanggal pada router kalian sudah sudah sesuai dengan waktu setempat.

BackUp
Router Mikrotik adalah sebuah device yang sewaktu-waktu bisa hang, error atau mengalami kerusakan yang mengharuskan kita melakukan reset atau penggantian ke unit baru. Untuk menjaga semua konfigurasi yang sudah kita buat pada router tersebut, kita bisa menggunakan fitur backup dengan menambahkan sistem scheduler pada fungsinya.

Pada tutorial ini, kita akan mencoba untuk membuat sistem scheduler backup dengan menambahkan fungsi email didalamnya, jadi ketika scheduler backup berjalan, dia tidak hanya melakukan backup konfigurasi saja, tetapi juga mengirimkan file backup tersebut ke sebuah email yang sudah kita setting.

Kita siapkan dulu email yang akan digunakan, disini kita menggunakan gmail, tapi sebelumnya kita harus menghidupkan dulu allow access secure apps pada pengaturan akun google.

allow-less-secure-app-access

Setelah itu masuk ke aplikasi winbox. Buka menu Tools - Email, kemudian kita gunakan SMTP dari gmail untuk pengaturan emailnya dengan Server smtp.gmail.com dan Port 587, setelah itu isikan nama router, username dan password email kalian.

smtp-email-settings

Kemudian kita akan buat script yang berfungsi untuk melakukan backup dan mengirim file backup tersebut ke email yang sudah kita setting. Buka menu System - Script, lalu isikan nama scriptnya dan script seperti dibawah ini :

/system backup save name=backup-router-utama;
;delay 3s;
/tool e-mail send to="emailkamu@emailkamu.com" subject="judul email" body="Ini pesan otomatis dikirimkan dari router utama, ini file backupnya" file="backup-router-utama" start-tls=yes;

Sesuaikan parameter send to dengan alamat email yang kalian gunakan, lalu untuk parameter file juga harus sama dengan nama file backup yang akan di save. Kemudian untuk subject dan body bisa kalian sesuaikan sendiri.

script-backup-email

Setelah itu coba jalankan scriptnya dengan mengklik tombol Run Script, jika konfigurasinya benar maka pada menu File List akan ada file backup dan di email langsung ada pesan masuk yang berisi file backup juga.

file-list-backup-email-send

Selanjutnya kita buka menu System - Scheduler lalu atur jadwal untuk backup seperti jam mulai dan jeda waktu yang ditentukan. Disini saya membuat schedule untuk dilakukan backup seminggu sekali setiap jam 5 sore, lalu pada parameter On Event masukkan nama Script yang tadi sudah kita buat.

scheduler-settings-backup-email

Reset Counters
Ketika sedang melakukan monitoring jaringan dari aplikasi winbox, kita akan diperlihatkan banyaknya counter pada rule firewall yang melakukan filter dari trafik di jaringan lokal, counter mikrotik ini akan menumpuk sesuai dengan akses traffic dari client. Jika dibiarkan dan tidak pernah di reset, counter ini akan menumpuk dan membebani kinerja mikrotik.

Bayangkan jika semua counter tersebut sudah berjumlah Gbytes karena tidak pernah di reset, bisa saja Mikrotik menjadi jadi lambat responnya. Oleh karena itu kita perlu untuk mereset semua counter tersebut, disini kita akan membuat sistem scheduler untuk melakukan reset counter.

Buka menu System - Scheduler, lalu atur jadwal Reset Counter seperti jam mulai dan jeda waktu yang kalian tentukan. Contoh disini saya membuat schedule untuk dilakukan reset counter 1 hari sekali di jam 7 pagi. Selanjutnya pada parameter On Event gunakan script dibawah ini :

/ip firewall filter reset-counters-all
/ip firewall nat reset-counters-all
/ip firewall mangle reset-counters-all
/queue simple reset-counters-all
/queue tree reset-counters-all

Setelah itu klik Apply lalu OK.

scheduler-settings-reset-counter

Hasil akhirnya akan seperti gambar dibawah ini, kita memiliki 2 rule scheduler yang pertama berfungsi untuk backup dan yang kedua untuk reset counter.

rule-scheduler

Kesimpulan :
Fitur script dan scheduler bisa kita manfaatkan untuk banyak hal, salah satunya untuk keperluan maintenance rutin seperti backup dan reset counter mikrotik. Backup diperlukan untuk menghindari hal-hal yang tidak di inginkan, seperti terjadi kerusakan pada hardware, dengan adanya file backup, kita tidak perlu lagi untuk melakukan konfigurasi dari awal, cukup dengan melakukan restore saja. Begitupula dengan Reset Counter, counter yang menumpuk ini bisa menyebabkan kinerja router menjadi lambat jika dibiarkan terlalu lama, untuk itu diperlukan proses reset pada semua counter tersebut.

Sekian untuk tutorial cara membuat sistem scheduler untuk backup dan reset counter mikrotik, semoga ilmu yang kalian dapat dari tutorial ini bisa bermanfaat untuk kalian semua. Terima kasih.