Ok kembali lagi dijempolan0, disiang dibulan puasa ini sambil menunggu bukan (magrib ya) saya luangkan beberapa waktu saya untuk menulis sebuah artikel lanjutan dari lab 9.2, dimana artikel ini berjudul bagamaina caranya membuat sebuah server replika pada sebuah database server postgresql. 

Replication database server salah satu cara untuk mengnscyncronisasikan server data base yang satu dengan yang lainnya, dengan ini kita tidak perlu repot melakukan penyalinan data secara manual  keserver lainnya, dengan ini server lain nya juga akan mempunyai data yang sama, dan keuntungan bila mana salah satu server lain mati database masih tetap bisa diakses dengan data yang sama seperti pada master nya, dengan ini datanya juga aman dan masih ada pada server lain nya, untuk membuat replication database kita membutuhkan beberapa tahapan pengerjaan sampe kedua server tersebut terhubung dan saling syncronisasi.


Berikut skema gambarang topologinya.

Awal. 

1. Untuk dns yang digunakan saya mewakilkan dns node1 kepada server pusat, kita tambahkan subdomain contoh namanya node1.aditiya.net. dengan alamat ip node1 yaitu 192.168.1.130

2. Jangan lupa kita tambahkan juga pada reverse zone nya.

3. Setelah itu kita restart service named nya, supaya konfigurasi yang kita tambahkan tadi dapat diterapkan.


Konfigurasi controller.

1. Edit .conf pada postgresql, yaitu berletak pada /var/opt/rh/rh-postgresql95/lib/pgsql/data/postgresql/con,  Hilangi localhost, ganti dengan tanda *, tanda tersebut digunakan supaya semua dapat mengakses data basenya.

2. Setelah itu menuju baris 173 , edit war_level server syncronous_commit nya, contohnya bisa dilihat pada gambar dibawah ini.
wal_level = hot_standby : metode pembacaan data dan melakukan sebuah query, untuk opsinya anda bisa memilih hot_standby atau yang lain nya.
synchronous_commit =local : sebuah syntak yang medefinisikan kemanakan sebuah server master akan akan disincronkan node kan atau yanglain nya, dan local adalah tipe lokasi dari sebuah server nya.

archiving_mode = on : digunakan untuk mengatur cahce data pada suatu data base, ini sangat berguna pada replication, karena log dari update cahce nya otomatis akan terekam dan dapat dianilisis dan itu akan mempermudah proses syncronisasi, untuk mengatifkan dan mematikan bisa menggunakan syntak no atau off
archive_command = 'c %p /var/opt/rh/... : Untuk menentukan letak sebuah directory archive nya.

mas_wal_senders = 2 : Menentukan jumlah maksimum koneksi yang dilakukan pada suatu server, karena saya disini membuat sekema dua buah server yang masuk dalam replication mode, maka jumlah saya senting menjadi dua.
wal_keep_segments = 10 : Jumlah besara dari jumlah log file, anda bisa atur lebih dari 10 dan juga yang lain nya disesuaikan.

syncronous_standby_names = '' : Untuk memberikan sebuah target, terget manakah yang akan dijadikan sebagai replication nya names tersebut dapat difenisikan sebagai hostname pada node.
3. Kita edit file pg_hba.conf yang berada pada /var/opt/rh/rh-postgresql95/lib/pgsql/data/.
Kita edit replication connection nya sesuai dengan server yang ada, untuk user replica anda bisa ganti sesuai dengan nama user yang digunakan untuk melakukan sebuah replika, cantumkan alamat server dari master/controller dan juga node nya, ganti sebagian metdhod nya menjadi md5
4. Kita lakukan restart service pada protgresql95 nya supaya konfigurasi tersebut dapat diterapkan.

5. Sekarang kita buat sebuah user untuk melakukan replication, untuk nama user sama kan seperti pada pg_hba.conf contoh saya menyeting nya dengan nama replica, setelah itu masukkan password yang kita ingin bikin.

Kofigurasi node1 dan syncronisasi. 

1. Kita matikan service postgresql nya.

2. Setelah itu kita hapus file yang ada pada directory /var/opt/rh/rh-postgresql95/lib/pgsql/data.

3. Kita lakukan syncronisasi data pada server controller / master.
pg_basebackup ini digunakan untuk mengambil pusat backup pada sebuah database master, dan membuat salinan nya pada server replika / node
-h 192.168.1.120 alamat source yang ingin direplikakan atau di syncronisasikan, alamat tersebut berasal dari master server / controller. 
-U replica : user apa yang akan digunakan dalam proses replication ini. 
-D /var/opt/rh/rh...... : target sebuah data yang ingin disyncronisasi kan atau dilakukan nya pencadangan data dari master ke node. 
-P --xlog : akses user tersebut dengan menggunakan password, dan juga catatan keterangan sebuah log
4. Kita masuk pada file .conf postgresql nya setelah itu kita nyalakan hot_standby nya supaya dapat melakukan syncronisasi.

5. Kita copy file recovery.conf.sample nya setelah itu kita ganti nama menjadi recovery.conf saja, untuk lokasi nya juga kita pindah kan dari root/usr ke lib/pgsql.

6. Setelah itu kita edit isi dari file recovery.conf
perintah yang digunakan untuk proses pengambilan sebuah data atau sebuah arsip pada sebuah server master, file tersebut diambil dengan metode scure copy, dengan alamat master server yaitu 192.168.1.120
7. Setelah itu kita hidupkan standby_mode nya dan jangan lupa hilangkan tanda pagar nya supaya aktif .


8. Kita set primary conninfo, untuk contoh perintah nya bisa dilihat dibawah ini.
Perintah tersebut digunakan untuk menghubungkan antara server node dengan server master, untuk melakukan hal tersebut kita akan menentukan arah tujuan serta perantaranya. 
host=192..x.x.x: alamat dari server master yang dituju
port=5432 : port default postgresql yang digunakan sebagai penghubung
user dan password : user mana mana yang akan digunakan sebagai media syncornisasi (replika), berserta dengan password user tersebut.
aplication_name=node1 : nama server apakah yang ingin tersambung dengan master server dalam hal ini yang ingin disambungkan adalah node1.
9. Setelah itu kita restart service postgresql, supaya konfigurasi dapat diterapkan.

10. Kita Lakukan verifikas apakah node sudah tergabung pada replication, untuk melakukan hal tersebut kita bisa akses server master, masuk pada database postgresql, setelah itu gunakan perintah tersebut psql -c "select application_name, state, sync_priority, sync_state from pg_stat_replication;", lihat akah replication name yang sudah anda tentukan terlihat disana dan sudah ter syncronisasi.

11. Buat sebuah user root / su pada posgresql, buat sebuah database, setelah itu berikan password pada user yang kita buat.

Pengujian. 

1. Kita akse postgresql master dengan menggunakan phpPgAdmin, setelah itu login menggunakan user yang kita buat .

2. Berikut database yang kita buat sebelumnya, setelah itu kita coba buat sebuah database baru.

3. Buat database tersebut dengan nama sesuai dengan yang anda inginkan, tahap ini untuk mencoba apakah pada node1 nantinya data base ini tetap ada atau otomatis tersyncronisasi.

4. Nah pada master server, data base tersebut sudah terbentuk.
5. Kita coba cek apakah node1 melakukan syncronisasi terhadap database yang baru tersebut

6. Node1 akan syncron secara otomatis terhadap database yang kita buat pada master server tadi.

Sekain dari saya semoga bermanfaat
dan Terimakasih.