oke kembali lagi dengan saya, sekarang pada lab ini saya akan memberikan tutorial database replication pada database Mysql jadi saya melanjutkan dari lab sebelumnya, sebelum itu saya akan menjelaskan kembali apasih replication itu,
DataBase Replication adalah sebuah metode yang digunakan untuk menyalin dan mendistribusikan data dari satu server ke server lainnya dan kemudian mensinkronisasikan antar database sehingga konsistensi data dapat terjamin, jadi jika kita mambuat sebuah data pada server master maka data tersebut akan disalin dan dikirim ke server database replication, jadinya secara tidak langsung jika kita membuat data pada server master data tersebut juga akan terdapat pada server replication.
untuk topologinya sebagai berikut
Konfigurasi Server
1. pertama kita harus mengedit mysql-server.cnf yang terletak di /etc/opt/rh/rh-mysql57/my.cnf.d/rh-mysql57-server.cnf
kemudian pada bagian [mysqld] tambahkan syntak seperti berikut
- log-bin=mysql-bin, yaitu binary logging mysql
- server-id=7, identitas untuk server, untuk nomer idnya sendiri itu bebas, asalkan idak sama dengan id server lainnya
2. setelah itu lakukan restart layanan mysql
systemctl restart rh-mysql57-mysqld
3. kemudian masuk ke shell mysql, buat user replica dengan command
grant replication slave on *.* to replica@'%' identified by 'password' ;
4. kemudian gunakan syntak flush privileges, untuk melakukan reload table akses
flush privileges;
dan exit untuk keluar dati shell mysql
5. setelah itu tambahkan service mysql pada firewall
firewall-cmd --permanent --add-service=mysql
dan jangan lupa lakukan reload agar konfigurasi dapat berjalan
firewall-cmd --reload
Konfigurasi Node
1. pada node kita juga harus mengedit file rh-mysql57-mysql-server.cnf dengan perintah
nano /etc/opt/rh/rh-mysql57/my.cnf.d/rh-mysql57-server.cnf
kemudian pada bagian [mysqld] tambahkan syntak menjadi sebagai berikut
- log-bin=mysql-bin, yaitu binary logging mysql
- server-id=14, identitas dari server slave
- read_only=1, berguna agar tidak ada lagi pembaruan yang bisa dilakukan jika kita mengaturnya menjadi 0 maka layanan ini akan dinonaktifkan
- report-host=node1.queenvin.net, merupakan host dari server slave itu sendiri
jika sudah, kemudian save
2. lakukan restart layanan mysql
Konfigurasi Master Server
1. pada server master db, masuk ke shell mysql dengan command mysql -u root -p, kemudian agar semua table yang terbuka tekunci gunakan command
2. selanjutnya untuk melihat informasi dari server master gunakan command
show master status;
dapat kita lihat terdapat kolom file dan position, ingat - ingat kedua value tersebut, kemdian keluar dari shell mysql
3. selanjutnya kita lakukan perintah mysqldump, mysqldump itu sendiri adalah sebuah bagiandari mysql relasional paket database yang mengizinkan kita untuk "dump" atau mengumpulkan aatau menimbun sebuah database atau kumpulan dari database, untuk backup atau untuk dikirmkan ke database server lainnya
mysqldump -u root -p --add-databases --lock-all-tables --events > mysql_dump.sql
- --all-databases, "dump" atau menimbun semua table dari semua database
- --lock-all-table, mengunci semua table dari semua database
- --events, untuk "dump" events dari semua database yang telah di kumpulkan sebelumnya
- mysql_dump.sql, output dari proses mysqldump
4. setelah itu masuk kembali ke shell mysql dan lakukan unlock pada semua table yang sebelumnya telah kita kunci
unlock tables;
kemudian gunakan perintah exit, untuk keluar dari shell mysql
kemudian gunakan perintah exit, untuk keluar dari shell mysql
5. kemdudian kita akan transfer file mysql_dump.sql yang sebelumnya telah kita buat ke server node kita menggunakan perintah
scp mysql_dump.sql "ip atau dns server slave":/tmp/
Konfigurasi Node
1. pada server node, kita import file dump yang sebelumnya telah di kirim dati server master
2. kemudian masuk ke shell mysql, lalu kita akan menambahkan identitas server master db agar server replication kita bisa terhubung dengan server master
- change master to, untuk mendefinisikan server master, agar server replication bisa terhubung dengan server master itu sendiri
- master_host='192.168.88.2', untuk mendefinisikan alamat dari host server master
- master_user='replica',user yang digunakan pada server master yaitu replica
- master_password='anjay', password yang digunakan oleh user replica
- master_log_file='mysql-bin.000002', status file yang sebelumnya telah kita lihat pada server master
- master_log_pos=592;, posisi master slave pada status
3. kemudian kita jalankan server node nya sebagai slave
start slave;
4. nah untuk melihat status dari server slave, kita bisa menggunakan command
show slave status\G
pada gambar diatas kita bisa melihat bahwa server slave kita telah berjalan
Verifikasi
1. untuk verifikasi saya akan mencoba membuat sebuah data base baru pada server master
create database nyobalagigan;
2. kemudian untuk mengeceknya saya akan membuak shell mysql pada server replication, dan menggunakan command show databases; untuk melihat list dari semua database
nah dapat kita lihat diatas, saat saya menggunakan command show databases pada server replication database yang sebelumnya telah saya buat sebelumnya di server master sudah terbuat dengan sendirinya
3. nah untuk verifikasi, kita juga bisa menggunakan phpMyAdmin caranya, akses database kita melalaui browser dengan mengetikkan ww.w.domaianda.xxx/phpmyadmin, kemudian login menggunakan root
4. kemduian buat database baru pada server master anda, dengan cara klik menu Databases, isikan nama database anda kemudian klik create
3. nah untuk verifikasi, kita juga bisa menggunakan phpMyAdmin caranya, akses database kita melalaui browser dengan mengetikkan ww.w.domaianda.xxx/phpmyadmin, kemudian login menggunakan root
4. kemduian buat database baru pada server master anda, dengan cara klik menu Databases, isikan nama database anda kemudian klik create
pada gambar dibawah bisa kita lihat bahwa database yang baru kita buat sudah terdapat pada server master
5. nah selanjutnya, untuk memastikan akses server replication anda menggunakan cara yang sama yaitu melalui phpMyAdmin dan login menggunakan root
dan.. apa yang terjadi... tadaaaaaaa.... database yang telah kita buat sebelumnya juga terdapat pada server replication kita.....
nah sekian untuk tutorial kali ini mengenai replication pada mysql, semoga bermanfaat...