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.
- 1. Konfigurasi DNS dan MariaDB di Server Master
- 2. Konfigurasi MariaDB di Node1 / slave
- 3. Konfigurasi kembali ke Server Master
- 4. Pencocokkan pada SLAVE
- 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
nslookup node1.networknjay.com
2. Edit sedikit pada file berikut ini...
nano /etc/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
# 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 mysql
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
exit
KONFIGURASI NODE1 /SLAVE
1. Edit sedikit pada direktori ini
nano /etc/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 :server-id=102
read_only=1
report-host=node1.networknjay.com
- "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 :show master status;
exit
-"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;
> exit
- "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
-> 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!!!!!
nano /etc/my.cnf.d/server.cnf
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_address='gcomm://10.10.10.10,10.10.10.20'
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
wsrep_cluster_name='cluster1'
wsrep_node_address='10.10.10.10'
wsrep_sst_method=rsync
wsrep_sst_auth=shincan:123
wsrep_on=ON
0 comments: