Skip to main content

Lab 9.3 Konfigurasi Replication pada PostgreSQL di Centos 7

Assalamu'alaikum wr.wb



Pada kali ini ane ingin share gimana sih caranya buat replication database postgresql. Oke disini saya punya 2 server, satu sebagai masternya, dan yang satu lagi sebagai slavenya. Jadi satu server hanya menjadi backup database saja. 

I. Persiapan

Pastikan anda mempunyai 2 buah server yang sudah diinstall postgresql, caranya bisa dilihat disini
Dari kedua server tersebut ada yg bertindak sebagai master dan ada juga yang bertindak sebagai slave. Untuk lebih jelasnya bisa lihat gambar topologi dibawah ini..
Topologi :


II. Konfigurasi Server Master

1. Edit file konfigurasi postgresql yaitu postgresql.conf yang terletak di /var/lib/pgsql/data/


2. Konfigurasi seperti ini

Cari wal_level kemudian atur valuenya menjadi hot_standby kemudian scroll kebawah sedikit uncomment synchornus_commit dan ubah valuenya menjadi local


Write-Ahead Logging (WAL) adalah metode standar untuk mengatur integritas data. WAL memiliki konsep yaitu bahwa perubahan pada file data (di mana tabel dan indeks berada) harus ditulis hanya setelah perubahan tersebut dicatat, yaitu setelah catatan log yang menjelaskan perubahan telah terdapat pada penyimpanan permanen. wal_level menentukan banyaknya informasi yang ditulis kedalam WAL. Disini saya mengaturnya menjadi hot_standby, maksudnya yaitu istilah yang digunakan untuk menggambarkan kemampuan untuk terhubung ke server dan menjalankan query read-only sementara server sedang berada dalam recovery arsip atau mode standby.
synchronous_commit (synchronous replication) adalah opsi yang memungkinkan transaksi kedua server selesai lebih cepat. Disini saya mengatur valuenya menjadi local, karena saya membuat server replikasi ini didalam server lokal.

Kemudian scroll kebawag lagi dan cari baris archive_mode dan archive command atur 2 opsi ini menjadi seperti dibawah ini


Kedua opsi ini saling terkait, karena dengan mengaktifkan archive_mode dengan cara mengubah valuenya menjadi on, ini berguna untuk mengaktifkan WAL Segment akan dikirrim ke penyimpanan arsip dengan perintah yang didefinisikan pada opsi archive_command. Maksudnya adalah Wal Segment yang ditandakan dengan %p yaitu path dari file yang akan diarsipkan akan dikirim ke /var/lib/pgsql/archive/%f . %f ini mendefinisikan nama file dari WAL Segment tersebut.

Scroll kebawah, kemudian cari baris max_wal_senders, wal_keep_segments, dan synchronus_standby_names dan atur menjadi seperti ini


max_wal_senders berguna untuk menentukan jumlah server yang digunakan sebagai replication, disini saya menggunakan 2 server, maka saya memasukkannya 2,
wal_keep_segments mendefinisikan besarnya log file yang akan dibuat, dalam hal ini satuan filenya MB, disini saya mengaturnya menjadi 10, yaitu 10MB
synchronus_standby_names berguna untuk mendefinisikan server standby yang digunakan sebagai server replika atau disebut juga server slave, disni masukkan hostname dari server slave tersebut, disini saya memasukkannya ali-n2

3. Konfigurasi pg_hba.conf untuk mengatur user untuk replication


Tambahkan 3 baris yang saya tandai dengan kotak merah, sesuaikan dengan keadaan anda


Kolom pertama menandakan host, kemudian kolom kedua beruna untuk melakukan replication, kolom ketiga mendefinisikan user yang digunakan untuk replication, masukkan sesuka hati anda, disini saya mengatur usernya menjadi ali-replica kemudian atur address atau server yang digunakan untuk replication. Disini saya memasukkan IP address dari kedua server master dan slave diikuti dengan prefix /32 karena itu hanya 1 address saja dalam network /32 tersebut. Sedangkan md5 adalah metode agar dapat melakukan autentikasi dengan password pada saat menggunakan user tersebut.

4. Restart service postgresql


5. Buat user  yang tadi telah ditentukan pada pg_hba.conf dengan option --replication untuk membuat user tersebut agar digunakan untuk replikasi, sedangkan option -P berguna untuk menambahkan password untuk user tersebut


II. Konfigurasi Server Slave

1. Hentikan service postgresql, kemudian hapus semua file konfigurasi yang ada pada /var/lib/pgsql/data/  hal ini dilakukan karena kita akan melakukan sinkronisasi terhadap server master selanjutnya


2. Masuk ke bash postgres, kemudian lakukan sinkronisasi server slave dengan masternya. Jadi setalah melakukan sinkronisasi ini, konfigurasi master dan slave sama. Sinkronisasinya dengan cara dibawah ini


pg_basebackup berguna untuk mengambil base backup yang ada pada server master
-h 202.108.5.91 mendefinisikan host tempat base backup berada yaitu pada server master. Disini masukkan ip atau domain server master. Dalam hal ini server master saya ipnya 202.108.5.91
-U ali-replica mendefiniskan user yang digunakan untuk sinkronisasi, yaitu user yang telah dikonfig pada pg_hba.conf di server master.
-D /var/lib/pgsql/data mendefinisikan letak file konfigurasi pada server master.
-P berguna untuk menambahkan autentikasi dengan password
--xlog berguna untuk membuat catatan terhadap semua log yang dihasilkan selama backup
kemudian masukan password user yang digunakan untuk replica kemudian keluar dari bash

3. Cek konfigurasi yang telah dikonfigurasi, apakah berhasil sinkron atau tidak dengan mengecek isi file dari direktori /var/lib/pgsql/data


4, Konfigurasi postgresql.conf pada /var/lib/pgsql/data di server slave


Cari baris hot_standby, kemudian ubah valuenya menjadi on untuk mengizinkan query pada saat recovery berlangsung. Konfigurasi ini ada hubungannya dengan wal_level pada master server.


5. Konfigurasi recovery.conf Ini bertujuan untuk mengkonfig recovery postgresql pada server slave. File ini belum ada pada /var/lib/pgsql/data/ masih ada pada /usr/share/pgsql/ copy dahulu ke /var/lib/pgsq/data/ dengan mengubah namanya yang tadinya recovery.conf.sample menjadi recovery.conf. Kemudian buka file tersebut


Cari baris restore_command, kemudian atur valuenya menjadi :
scp ipmaster:/var/lib/pgsql/archive/%f %p

Konfigurasi diatas berguna untuk mengambil wal segment pada server master melalui scp atau securecopy berbasis ssh.
Scroll lagi kebawah dan cari baris primary_conninfo, kemudian isikan valuenya menjadi host=ipmaster port=5432 user=user_yg_digunakan_untuk_replication password=password_user application_name=nama_yg_udah_ditentukan_pada_synchronus_standby_name


host=202.108.5.91 mendefinisikan ip server master, disini saya memasukannya pada ip 202.108.5.91
port=5432 mendefinisikan port yang digunakan selama proses replication disini saya memasukannya secara default yaitu port 5432
user=ali-replica mendefinisikan user yang digunakan untuk replication, disini saya memasukannya ali-replica
password=gatau mendefinisikan password user tersebut, disini saya memasukannya gatau
application_name=ali-n2 sebagai penamaan untuk replication

6. Restart service postgresql agar konfigurasi yang dilakukan berjalan


III. Pengujian & Verifikasi

1. Untuk mengecek apakah sudah berhasil join atau tidak dengan mengetikkan command sebagai berikut pada server master


command psql diatas adalah sebuah terminal interaktif postgreSQL untuk mengeksekusi dengan perintah -c untuk melihat application_name, state, dan sync_priority pada server master.
Nah terlihat disana application_name yang ada yaitu ali-n2 dengan state streaming dan sync_prioritynya 1 kemudian paling penting adalah sync_statenya berisi sync. Hal ini menandakan kalau ali-n2 berhasil melakukan replication.

2. Masih di server master, kemudian kita buat user beserta database baru untuk pengujian. Disini saya membuat database db-ali-tes dengan usernya ali-tes. Setelah itu buat role password user tersebut agar pada saat mengakses database tersebut dapat dilakukan dengan autenteikasi.


3. Cek database yang telah dibuat, bisa dengan mengetikkan psql -l pada kedua server master dan slave, atau bisa juga dengan phpPgAdmin kalau sudah diinstall. Untuk instalasi phpPgAdmin bisa dilihat disini.
Disini saya membuka phpPgAdmin server master dengan memasukkan user ali-tes


Nah tara... terlihat sudah database yang telah dibuat, yaitu db-ali-tes


2. Kemudian disini saya coba buka halaman phpPgAdmin pada server slave dengan memasukkan user ali-tes.


And voila... database sudah otomatis dibuat juga pada server slave


IV. Penutup

Mungkin itu kita telah membuat konfigurasi replication database PostgreSQL. Jadi kalau kita membuat database pada server master, maka otomatis database tersebut akan dibuat juga pada server slave. Jadi kaya kembar gitu, hehe

Hasil gambar untuk kembar cantik

Dengan saya membagikan tutorial tersebut semoga dapat bermanfaat untuk kita semua, amiin.

Hasil gambar untuk cantik berdoa

Untuk lebih jelas prosesnya bisa dilihat di video berikut ini :


Sekian Semoga Bermanfaat
loading...

Comments

Popular posts from this blog

Lab 8.8 Konfigurasi Log Analyzer Visited Pages dengan Awstats di Apache pada Centos7

Assalamu’alaikum wr.wb Pada kali ini ane ingin share cara monitoring dengan awstats. Awstats adalah sebuah tools untuk memantau visited pages pada webserver. Langsung saja kita konfigurasi 1. Install epel, karena awstats ini tidak ada pada repository centos, tetapi ada pada epel. Caranya adalah seperti dibawah ini   2. Kemudian install awstats 3. Awstats ini secara default membuat konfigurasi sesuai dengan hostname. Jika tidak sesuai Antara hostname dan web yang akan dibuatkan halaman awstatsnya, maka rename konfigurasi yang ada sesuai hostname menjadi nama domain anda tanpa menghilangkan format yang ada. [root@ct-ali ~]# mv /etc/awstats/awstats.ct-ali.alisofyan.com.conf /etc/awstats/awstats.www.alisofyan.com.conf 4. Konfigurasi awstats untuk webserver yang telah diatur [root@ct-ali ~]# vi /etc/awstats/awstats.www.alisofyan.com.conf Sesuaikan konfigurasi seperti dibawah ini dengan keadaan anda  dan ...

Merepresentasikan Algoritma dengan Flowchart dan Pseudocode

  Merepresentasikan Algoritma dengan Flowchart Flowchart adalah jenis diagram (grafis tau simbolik) yang mewakili suatu algoritma atau proses-proses tertentu. Setiap langkah dalam algoritma diwakili oleh simbol yang sama atau berbeda dan berisi penjelasan singkat setiap langkah. Flowchart merepresentasikan algoritma dalam bentuk desain, simbol dan dijadikan dokumentasi dan kemudian dituangkan menjadi kode-kode program. Sebelum membuat flowchart, kita harus memahami unsur flowchart sebagai berikut : Input Percabangan ( biasanya menggunakan perintah if dan switch) Perulangan ( biasanya menggunakan perintah atau kode while, for, loop, each ) Output Flowchart biasanya digambar menggunakan beberapa simbol standar, namun tidak menutup opsi lain untuk menyertakan simbol-simbol di luar standar untuk digunakan jika memang diperlukan simbol tersebut di desain yang kita buat. Berikut ini simbol – simbol yang biasa digunakan dalam flowchart. Simbol simbol diatas adalah simbol dasar yang diguna...

Contoh Soal Data dalam Sistem Bahasa Pemrograman R

  Tuliskan pernyataan R untuk membuat deret bilangan berikut : x = [-5 -4 -3 -2 -1 0 1 2 3] y = [5 4 3 2 1] z = [1000000 1166667 1333333 1500000 1666667 1833333 2000000] p = [9 9 9 5 5 5] q = [1 1 1 2 2 2 1 1 1 2 2 2] Jawaban : > x <- seq (from=-5,to=3,length=9) > x [1] -5 -4 -3 -2 -1 0 1 2 3 > y <- seq (from=5,to=1,length=5) > y [1] 5 4 3 2 1 > z <- seq (from=1000000,to=2000000,length=7) > z [1] 1000000 1166667 1333333 1500000 1666667 1833333 2000000 > p <- rep(c(9,5),each=3) > p [1] 9 9 9 5 5 5 > q <- rep(c(1,2,1,2),each=3) > q [1] 1 1 1 2 2 2 1 1 1 2 2 2 Tuliskan pernyataan R untuk membuat frame data siswa berikut : No Jurusan asal_daerah usia 1 Komputer Bogor 25 2 Fisika Bogor 25 3 Komputer Bandung 25 4 Fisika Bandung 25 5 Komputer Bogor 26 6 Fisika Bogor 26 7 Komputer Bandung 26 8 Fisika Bandung 26 Jawaban : > jurusan <- c("Komputer","Fisika","Komputer","Fisika","Komputer...
loading...