Assalamualaikum warahmatullah wabarakatuh Cieee,, kali ini saya akan share tentang cara membuat Replication Settings di MariaDB CentOS....

CentOS 7 : 9.6 Replication Settings on MariaDB Apache CentOS 7



Assalamualaikum warahmatullah wabarakatuh
Cieee,, kali ini saya akan share tentang cara membuat Replication Settings di MariaDB CentOS. Replication Settings ini berguna saat anda ingin membuat klone, atau tiruan dari server databasenya. Ini untuk menghindari yang namanya penyerangan web sih...

Database yang berada pada server master, akan di clone dan disebarkan ke server slave (Cadangan). Dengan begitu, insyaallah database jadi lebih aman.


Nah bahan-bahan udah kekumpul belum ???? Kalau belum kumpul, coba simak topologi berikut ini

TOPOLOGI


Sebelum memulai replication settings ini, terlebih dulu anda simak bahan bahan yang ane perlukan saat membangun replication settings ini
  • - 2 Buah Server CentOS7
  • - Sudah diinstall DNS pada Master, tutor DISINI
  • - Install Apache polosan, tutor Disini
  • - Install MariaDB, tutor DISINI
  • - Install phpMyAdmin, tutor DISINI
  • - User Root


Pokok bahasan kita pada kali ini adalah :
    1. 1. Konfigurasi DNS dan MariaDB di Server Master
    2. 2. Konfigurasi MariaDB di Node1 / slave
    3. 3. Konfigurasi kembali ke Server Master
    4. 4. Pencocokkan pada SLAVE
    5. 5. Uji Coba

hahahah,, sudah ngerti ??? Ahayyy,, kuy kita praktek



KONFIGURASI MARIADB di SERVER MASTER

1. Pastikan anda menambahkan DNS node1 pada Server master. Simak lah nslookup dibawah ini
nslookup www.networknjay.com
nslookup node1.networknjay.com


2. Edit sedikit pada file berikut ini...
nano /etc/opt/rh/rh-mariadb101/my.cnf.d/mariadb-server.cnf



3. Lalu pada baris ke "22" lalu tambahkan kata..
[server]
# kita arahkan ke log pada mysql
log-bin=mysql-bin
# Memberikan Uniq ID "nomor cantik" pada server
server-id=1


4. Simpan dan Keluar lalu restart mariaDB nya.
systemctl restart rh-mariadb101-mariadb


5. Masuk ke MariaDB nya dan masukkan password anda
mysql -u root -p 


6. Kita buat user "replica" dengan password "Xianjeng123!". Boleh diganti untuk kata password nya, tapi untuk nama user "replica" SEBAIKNYA JANGAN DIGANTI.
MariaDB [(none)]> grant replication slave on *.* to replica@'%' identified by 'password'; 
Keterangan : Membuat User (Boleh bebas mengganti pada kata 'password', untuk NAMA USER 'replica' JANGAN DIGANTI!)


7. Lalu kita flush privileges dan exit.
flush privileges; 
 exit



KONFIGURASI NODE1 /SLAVE


1. Edit sedikit pada direktori ini
 nano /etc/opt/rh/rh-mariadb101/my.cnf.d/mariadb-server.cnf



2. Tambahkan skrip berikut pada baris ke "22".
log-bin=mysql-bin
server-id=102
read_only=1
report-host=node1.networknjay.com
Keterangan :
- "log-bin=mysql-bin" = Tambahkan log dari MySQL
- "server-id=102" = memberikan ID yang Uniq (harus beda sama master, lebih ke penamaan lewat angka aja sih)
- "read_only=1" = Kasih baca
- "report-host=node1.networknjay.com" = nah, ini kita isi hostname dari slave nya

KEMBALI KE MASTER/CONTROLLER

1. Masuk lagi ke MariaDB nya
mysql -u root -p 


2. lalu kita flush tables, dan kita lihat file status dari masternya. List table ini berguna bagi Slave untuk mencocokkan konfigurasi replica dengan master. HAFALKAN FILE DAN POSITION NYA!!!
flush tables with read lock; 
 show master status;
exit
Keterangan :
-"flush tables with read lock" adalah perintah untuk mengunci semua table
- "show master status" adalah perintah untuk melihat file log dari mysql
------TABLES
- "File" adalah file Log dari MySQL yang akan di singkronisasikan pada Slave
- "Position" adalah penomoran file Log nya. (Nomor tidak harus sama)



3. Keluar dari databasenya.. dan ketikkan perintah ini untuk mengeksekusi file dump. Bisa dibilang, kita bikin backupan konfigurasi yang ada saat ini..
mysqldump -u root -p --all-databases --lock-all-tables --events > mysql_dump.sql 



4. Kembali lagi ke MariaDB nya.. Lalu unlock table yang barusan kita execute.. Lalu keluar
mysql -u root -p

 unlock tables;
exit
Keterangan :
- "unlock tables" adalah perintah untuk membuka table kembali


5. Kita transfer file mysql_dump.sql ke node1 dengan menggunakan user ROOT dari SERVER NODE1 atau Slave nya.. Ingat, MASUKKAN PASSWORD ROOT SERVER NODE1!!! Ini ibarat mengirim sebuah file dengan menggunakan SSH, jadi atur dulu SSH untuk Node1 nya..
scp mysql_dump.sql node1.networknjay.com:/tmp/
Keterangan :
- "scp" adalah perintah untuk mentransfer file keluar Server, ini juga biasa digunakan pada FTP atau Shared folder dengan syarat kita memiliki izin akses masuk ke PC nya (punya user)



Kembali Konfigurasi NODE1 /SLAVE


1. Setelah file terkirim, kita import file mysql_dump.sql berikut ke MariaDB. dengan password root dari NODE1 nya.
mysql -u root -p < /tmp/mysql_dump.sql 



2. Kita masuk ke MariaDB Node1 nya
mysql -u root -p 



3. Lalu ketikkan kalimat berikut
change master to 
    -> master_host='172.16.11.115',     # IP master MySQL nya
    -> master_user='replica',     # ID/ User replica
    -> master_password='Xianjeng123!',     # Password Replica
    -> master_log_file='mysql-bin.000001',     # Ingat step "show master status"? Copikan!
    -> master_log_pos=613;     # Position diambil berdasarkan step diatas



4. Start slaaaveee nyaa... :v
start slave;



5. Lalu kita lihat, apakah Server dan Slave /Node1 sudah saling terhubung atau belum. Dengan melihat atau menyimak yang hijau hijau itu...
show slave status\G




UJICOBA CLIENT

Saya menggunakan client Windows 10 PRO Ori dengan browser mozilla, dan saya akan mencoba mengakses domain dari database server saya.. www.networknjay.com/phpMyAdmin dan Node1.networknjay.com/phpMyAdmin.




Ciiie kebuka ciiiee,, lalu kita ke MASTER DULU deh,.. Coba buat database baru. Dan database sudah terdaftar di masterr




Lalu kita akses node1.networknjay.com nya.. Dan lihat, apakah database nya mirip dengan yang ada pada master atau www.networknjay.com

Yeayyy miripp!!!!!

1 comment:

  1. bro emang windows client nya ori, waktu itu update dirumah gua dah, pake bajakan windowsnya, pas baru baru beli laptop acer

    ReplyDelete