PgAdmin dan Replication Postgresql pada Ubuntu 20.04

Pada materi sebelumnya kita telah mempelejari apa itu Database Server. Database Server merupakan program komputer yang menyediakan layanan pengelolaan dan penyimpanan data yang menggunakan model client server. Salah satu perangkat lunak yang kita gunakan adalah MariaDB. Nah, pada kesempatan ini saya akan menjelaskan kembali mengenai perangkat lunak pengolah Database, yaitu Postgresql.

Postgresql

Postgresql merupakan salah satu perangkat lunak pengolah data yang open source. Seperti halnya dengan MariaDB, Postgresql juga merupakan pengelola data pada database. Postgresql juga sering dijadikan pilihan karena keandalannya, skalabilitas, dan fleksibilitasnya yang tinggi.

PgAdmin

PgAdmin merupakan antarmuka berbasis web yang digunakan untuk mengelola database Postgresql. PgAdmin sama seperti Phpmyadmin, dimana memiliki antarmuka yang intiutif dan mudah digunakan untuk pengelola dan pengembangan database Postgresql.

Step 1 – Instalasi

  1. Seperti biasa sebelum penginstalan kita akan melakukan update pada kedua server ubuntu.$sudo apt update -y
  2. Selanjutnya kita akan melakukan penginstalan postgresql pada kedua server ubuntu. Disini saya menggunakan postgresql versi 12.$sudo apt install postgreql-12 -y
  3. Masuk ke sebagai sudo pada kedua server.$sudo su
  4. Selanjutnya kita akan melakukan instalasi untuk Pgadmin Postgresqlnya. Pada ubuntu 20.04 Pgadmin tidak bisa langsung di instal melalui perintah APT, jadi kita harus menambahkan public key untuk repository dan membuat konfigurasi repository terlebih dahiulu.#curl https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo apt-key add #sudo sh -c 'echo "deb https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb_release -cs) pgadmin4 main" > /etc/apt/sources.list.d/pgadmin4.list && apt update'
  5. Setelah menambahkan publik key dan melakukan konfigurasi pada repository ubuntu, barulah kita dapat menginstall Pgadmin.#apt install pgadmin4
  6. Selanjutnya kita akan membuat akun login untuk pgadmin.#sudo /usr/pgadmin4/bin/setup-web.shNantinya akan diminta untuk memberikan email address dan password. Kalian dapat menentukan sendiri email dan password yang akan digunakan.
  7. Kita akan melakukan reset password pada user admin postgresql.#su - postgres
  8. Masuk ke database postgres dengan akun postgres.$psql -U postgres
  9. Lakukan reset password dan masukkan pasword yang diinginkan.#\password

Step 2 – Pengujian

  1. Setelah melakukan semua konfigurasi jangan lupa untuk restart layanan postgresql.#systemctl restart postgresql
  2. Lakukan pengujian pada web browser kalian dan ketikkan http://<IP atau Domain server>/pgadmin4. Masuk dengan email dan password yang telah dibuat tadi.
  3. Setelah dapat melakukan login. Kita akan menghubungkan pgadmin dengan Postgresql kita. Klik menu Add New Server.
  4. Nanti akan menampilkan windows untuk di isi. Pada tab general kalian dapat menentukan Name untuk database yang akan di hubungkan. Disini saya hanya memberikan nama local karena database berjalan di local.
  5. Selanjutnya pergi ke tab Connection. Disini kalian dapat mengisikan
    • Host name/address: Isikan dengan alamat IP atau domain Postgresql.
    • Port: Isikan port spesifik Postgresql, secara default Postgresql berjalan pada port 5432.
    • Username: Isikan dengan user Postgresql.
    • Password: Berikan password user Postgresql.
  6. Jika sudah berhasil maka nantinya kalian dapat melihat nama Database yang sudah dihubungkan tadi.

Streaming Replication Postgresql

Streaming Replication merupakan konsep dimana ketika suatu data pada database server yang disebut sebagai master menyalin atau mereplikasi secara otomatis kedatabase lain yang disebut sebagai standby. Konsep yang dimiliki ini mirip dengan Master-Standby pada DNS bedanya pada DNS melakukan replikasi berupa data zona sedangkan pada Database server melakukan replikasi suatu data yang terdapat pada Database tertentu. Pada materi ini saya akan menjelaskan bagaimana melakukan konfigurasi Streaming Replication pada Postgresql.

Step 1 – Konfigurasi Server Master

  1. Lakukan perubahan pada file konfig Postgresql dengan menggunakan perintah dibawah. Ikuti intruksi setiap baris perintah yang ada.#vim /etc/postgresql/12/main/postgresql.conf #line 59: uncomment listen_address = '*' #line 197: uncomment synchronous_commit = on #line 300: uncomment synchronous_standby_names = '*' #line 101, 103 dan 105: comment #ssl = on #ssl_cert_file = '/etc/ssl/certs/ssl-cert-snakeoil.pem' #ssl_key_file = '/etc/ssl/private/ssl-cert-snakeoil.key'Penjelasan pada beberapa perintah yang di uncomment
    • listen addresses: agar server dapat melisten semua alamat IP.
    • synchronous_commit: Agar kedua server saling sinkron.
    • synchronous_standby_names: Agar server melisten semua address.
    Pada perintah diatas juga dapat dilihat kita mencomment beberapa baris perintah, by default authentikasi replikasi pada Postgresql berjalan menggunakan SSL. Tapi pada kesempatan kali ini kita tidak menggunakan SSL jadi cukup di comment perintah tersebut agar tidak berjalan.
  2. Selanjutnya kita akan melakukan konfigurasi pada file authentikasi klien Postgresql. File authentikasi klien pada Postgresql bernama pg_hba.conf.#vim /etc/postgresql/12/main/pg_hba.conf #Tambahkan pada line terakhir #contoh perintah #host replication nama user ip kedua server md5 host replication rep_user 10.23.2.71/32 md5 host replication rep_user 10.23.2.78/32 md5Pada perintah ini kita memberikan akses pada Server Master dan Standby menggunakan user bernama “rep_user” untuk melakukan akses replikasi.
  3. Masuk ke Postgresql menggunakan akun admin postgres.#su - postgres
  4. Kemudian buatlah user baru yang akan digunakan sebagain user replika sesuai dengan yang pada file pg_hba.conf.$createuser --replication -P rep_user Enter password for new role: Enter it again: $exit
  5. Terakhir restart layanan Postgresql yang telah dikonfigurasi, agar semua konfigurasi dapat berjalan.#systemctl restart postgresql

Step 2 – Konfigurasi Standby

  1. Pertama kita akan menghentikan layanan postgresql.#systemctl stop postgresql
  2. Hapus semua file postgresql yang ada pada direktori /var/lib/postgresql/12/main.#rm -rf /var/lib/postgresql/12/main/*
  3. Masuk ke akun admin Postgresql.#su - postgres
  4. Lakukan backup dari server Master ke server Standby dengan menggunakan perintah dibawah.$pg_basebackup -R -h <ip atau domain server master> -U rep_user -D /var/lib/postgresql/12/main -P example $pg_basebackup -R -h 10.23.2.71 -U rep_user -D /var/lib/postgresql/12/main -P Password: // password user replikasi 32540/32540 kB (100%), 1/1 tablespace $exit
  5. Lakukan perubahan pada file konfig Postgresql, ikuti intruksi pada perintah dibawah.#vim /etc/postgresql/12/main/postgresql.conf #line 58: uncomment listen_address = '*' #line 315: uncomment hot_standby = onPenjelasan pada perintah diatas
    • listen_address: untuk mendengarkan alamat IP yang ditentukan.
    • hot_standby: untuk merekam transaksi yang ter update.
  6. Selanjutnya melakukan konfigurasi pada file postgresql.auto.conf.#vim /var/lib/postgresql/12/main/postgresql.auto.conf #tambahkan perintah application_name=(nama server Standby) primary_conninfo = 'user=rep_user password=password host=10.23.2.71 port=5432 sslmode=prefer sslcompression=0 gssencmode=prefer krbsrvname=postgres target_session_attrs=any application_name=server-slave'

Step 3 – Pengujian

  1. Masuk ke akun admin pada server Master#su - postgresLalu jalankan perintah dibawah untuk menampilkan informasi dari server Standby (replika) yang terhubung.$psql -c "select usename, application_name, client_addr, state, sync_priority, sync_state from pg_stat_replication;"Jika berhasil maka akan menampilkan hasil seperti dibawah.Dapat kita lihat ada beberapa informasi seperti username dan alamat IP dari server Standby, disini kita juga melihat state dari server Standby sudah sinkron atau belum.
  2. Selanjutnya kita akan melakukan uji coba untuk melihat apakah database server Master dan Standby sudah saling sinkron atau belum. Masuk ke akun admin postgresql pada server Master dan buatlah suatu database.#su - postgres $createdb test
  3. Kemudian masuk ke akun admin postgresql pada server Standby untuk melihat apakah database test yang dibuat pada server Master sudah muncul atau belum pada server Standby.#su - postgres $psql -U postgres #\lJika berhasil harusnya muncul nama database test.

Kesimpulan

Postgresql merupakan salah satu program perangkat lunak yang digunakan untuk mengolah data pada suatu database. Postgresql sama seperti MariaDB yang dimana sistem manajemen berbasis data yang open source. Postgresql juga dapat dikelola melalui sebuah perangkat lunak berbasis GUI (Graphical User Interface). Dengan menggunakan PgAdmin seorang sistem administrator database dapat dengan mudah mengelola dan mengembangkan database Postgresql. Selain itu, Postgresql juga memiliki fitur Replication. Ketika kita ingin melakukan suatu backup dengan menggunakan server database yang lain, kita dapat melakukan replikasi. Dengan replikasi ini kita dapat dengan mudah melakukan backup data jika terjadi suatu masalah pada Database server utama.

Tertarik mengikuti training di ID-Networkers? Kami menyediakan berbagai pilihan training yang bisa kamu ikuti. Klik disini untuk info lengkapnya.

Penulis : M. Syawal Saputra