Ok kembali lagi dijempolan01, kali ini saya akan membuat postingan mengenai replication pada mysql database, sebelumnya secara konsep saya pernah membuat sebuah artikel mengenai replication postgresql dan mariadb database, nah ini konsep nya sama seperti itu tetapi dengan jenis software databse yang berbeda yaitu mysql.


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 tampilan topologinya. 

Awal. 

Kita akses directory auto.cnf nya setelah itu kita edit uuid nya, hal tersebut dilakukan bila mana anda menggunakan sebuah vm hasil cloningan, uuid dari vm tersebut akan tetap sama seperti aslinya, nah dengan uuid yang sama akan menyebabkan proses pendeteksian id akan bentrok dan proses replication akan menalami kendala, nah makanya disini saya tulis untuk mengubah uuid.

Setelah itu jangan lupa kita bukan perijinan pada firewall supaya, service tersebut dapat diakses oleh client ataupun menangani proses service tersebut.

kita buat sebuah sub domain contoh aditiya.net yaitu bernama node1.aditiya.net dengan alamat address server node1.

Setelah itu kita tambahkan juga pada zona reverse, pada dns nya .

Master 

1. Edit file .cnf yang berada pada directory /etc/opt/rh/rh-mysql57/my.cnf.d/rh-mysql57-mysql-server.cnf, disini kita akan mengkonfigurasi log dari binary dan juga untuk menambahkan server id pada master/controller.

log-bin=mysql-bin : untuk memasukkan sebuah log dari suatu binary, log binary tersebut yaitu mysql-bin
server-id=227 : untuk menyatakan id pada sebuah server, untuk pemberian id ini kita bisa gunakan angka untuk memberikan sebuah id tersebut, tidak direkomendasikan menggunakan huruf atau symbol lainnya, nah id server ini bisa anda tentukan sesuka hati anda bisa 123, 227, 101 dan juga yang lainnya.
2. Setelah itu kita restart service pada mysql system.

3. Ok kita akses mysql database pada server master, setelah itu kita matikan slave service, setelah itu membuat user untuk proses replication, dan perintah tersebut bisa dilihat dibawah ini.
stop slave : digunakan untuk mematikan sebuah service slave yang digunakan untuk metode slave. 
grant replication slave on *.* to ....@'%' identified by '...'; : berguna untuk membuat sebuah user yang digunakan untuk mengijinkan sebuah replication nanti nya, user ini yang menjembatani hal tersebut, buat lah sebuah user tersebut dan juga beserta password nya.

Node1

1. Sama seperti master nya tadi, pada server node1/replication kita juga harus mengedit beberapa bagian didalam nya salah satu nya yang terdapat pada master tadi, untuk perintah apa yang dimasukkan anda bisa lihat dibawah ini.
log-bin=mysql-bin : untuk memasukkan sebuah log dari suatu binary, log binary tersebut yaitu mysql-bin
server-id=942 : untuk menyatakan id pada sebuah server, untuk pemberian id ini kita bisa gunakan angka untuk memberikan sebuah id tersebut, tidak direkomendasikan menggunakan huruf atau symbol lainnya, nah id server ini bisa anda tentukan sesuka hati anda bisa 123, 227, 101 dan juga yang lainnya.
read_only=1 : untuk mengatifkan read only akses pada sebuah server database.
report-host=node1.aditiya.net : yaitu untuk mendefinisikan menginformasikan, sebuah host dari server node, untuk informasi report tesebut, kita bisa gunakan sebuah domain seperti node1.aditiya.net atau pun alamat ip dari server node1 itu sendiri (192.168.1.115).
 2. Setelah itu kita lakukan restart service pada mysql system.


Replication info (master server)

1. Untuk memulai nya, kita masuk pada database mysql, dengan hak akses root berserta password nya.

2. Setelah itu kita lock flush tables read nya, setelah itu kita lihat status dari server master tersebut, nah disini informasi untuk melakukan replication nama file dengan position dari master tersebut, (instilah syncronisasi si node1 keserver informasi nya kita dapatkan disini) informasi ini kalo bisa kita ingat2 atau enggak diss aja biar gampang.

3. Sekarang kita lakukan proses pencadangan atau backup mysql seluruh data dan juga beberapa informasi dari event yang ada juga akan dibackup, backup ini menggunakan mysql dump dan target dari file nya yaitu mysql_dump.sql.

4. Buka mysql nya kembali, sekarang kita buka tables nya yang sebelum nya kita flush read lock, dengan perintah unlock tables;, dan untuk keluar dari data base bisa menggunakan perintah exit.

5. Nah data backup yang kita lakukan tadi, sekarang kita kirim menggunakan scure copy ke node1, untuk alamat nya nya bisa menggunakan ip atau domain seperti node1.aditiya.net atau 192.168.1.115, data tersebut dikirm kesebuah directory yang bernama /tmp/. 


Syncronisasi Node1 to Master/Controller server. 

1. Pada node1, kita lakukan pembukaan berkas dan langsung memasukkan file backup tersebut ke system mysql pada node1.

2. Setelah itu kita masuk pada database mysql nya, setelah itu kita lakukan proses syncronisasi ke master nya, istilah nya menyabungkan kesever master dan mengsyncronisasikannya. 
chang master to : perintah ini digunakan untuk mengature server master mana yang menjadi acuan untuk melakukan sebuah replication atau syncronisasi.
master_host='192.x.x.x', : yaitu alamat dari sebuah master server / controller.
master_user='aditiyadb', : sebuah user yang kita buat yang berfungsi untuk menjembatani proses replication ini.
master_password='jempolan01', : password dari user yang digunakan sebagai replication
master_log_file='mysql-bin.000001', : ini adalah sebuah nama file dari master, didapatkan dari proses perintah show master status (itu alasan nya saya suruh di ingat ingat, cara gampangnya tinggal copy aja ya, dari informasi master tesebut.
master_log_pos=594; : letak posisi dari master, cara mendapatkan nya sama dengan master log file, didapatkan dari proses perintah show master status.
Setelah itu kita hidupkan service slave, tetapi jika ingin merestart nya kita bisa gunakan perintah stop diawal dan start slave.  

3. Kita cek apakah node1 sudah tersyncronisasi dengan server master, untuk mengecek nya bisa gunakan perintah ini, pastikan slave io running dan slave sql running bertanda yes keduanya, juga baca informasi yang sudah saya tandakan tersebut, hal ini menandakan server node1 sudah melakukan syncronisasi dan sudah mengreplication.


Pengujian

1. Sekarang kita coba akses database mysql master nya menggunakan phpmyadmin di browser pada client, dan lihat database nya

2. Sama seperti diatas node1 satu nya juga harus kita akses, dan lihat database nya.

3. Setelah itu kita buat database dimaster, untuk nama database nya bisa kita atur sesuai dengan keinginan .

4. Cek apakah database pada master nya sudah terbentuk.

5. Bila proses pembuatan replication mode berhasil, node1 juga akan mengsyncronkan database terbaru tersebut, cek apakah database tadi terbentuk juga dinode1 nya.

Ok semoga dapat bermanfaat bagi para pembaca
Sekian dan terimakasih.