Cara Konfigurasi Server Replikasi Database 2 Node Master dan Slave dengan OS Windows
1.Backup database "test" Mysql Server CRC Master 10.100.111.18 via remote vnc password: password dan untuk backupnya menggunakan mysql front.
2.Copy ke ftp untuk diambil ke server mysql slave dengan ip 10.100.111.150 remote via remote desktop dengan username :administrator password:crc2009
3.Sesudah dicopy ke Lokal C:\ atau ke direktori lainnya proses selanjutnya adalah restore database dengan perintah source /home/’filesql lengkap dengan extention’; ini untuk linux sedangkan untuk windows dengan perintah source C:file.sql; tetapi posisikan cmd prompt masuk tinggal c saja yaitu C:\> bukan C:\>Document and Setting,
Ini contoh yang masih salah
Ini contoh perintah yang benar
Proses restore pastikan sebelumnya belum ada database yang akan direstore
Ternyata menggunakan perintah source pada mysql lama memakan waktu 8 jam lebih, ini mencoba menggunakan mysql front, tetapi gagal juga , sekrang mencoba copy langsung ke folder mysql /data
Pada folder db yang akan di replikasi
#Berikut tambahan script replikasi pada server slave di file my.cnf : slave-skip-errors=1062
4.Check binlog dan file pada server master dengan perintah :
a.flush tables with read lock;
b.show master status;
c.unlock tables;
5.Stop slave pada server slave, kemudian jalankan change master
Dengan perintah :
Change master to master_host=’10.100.111.18’, master_user=’repl’,master_password=’password’,master_log_file=’’,master_log_pos=;
6.jalankan perintah start slave;
7.Check apakah sukses tidak replikasi tersebut dengan mengetikkan perintah
Show slave status \g;
Replikasi dikatakan sukses jika slave_io_running =yes dan slave_sql_running:yes
8.jalankan notifikasi pada server 192.168.1.9 dengan remote putty login dan masuk ke direktori /home/script/ kemudian jalankan ./notif_crc_juanda_dki.sh
Yang isi perintahnya dibawah ini
=================================================================================
#!/bin/bash
# Aan
# Mey 22, 2013
# Checks MySQL Replication status. Sends user(s) a notification of status
status=0
MasterHost="10.100.111.18"
SlaveHost="10.100.111.150"
Name="DB_CRC_DKI_JUANDA"
emails="it.server@jsm.co.id" #multiple emails space separated
Count=5
PingFailed="DOWN_slave_server_$Name"
Port="3306"
Mysqldown="DOWN_Mysql_service_on_slave_server_$Name"
DownSubject="DOWN_replication_status_$Name"
GoodSubject="GOOD_replication_status_$Name"
ErrorSubject="ERROR_replication_status_$Name"
GoodMessage="Everything regarding MySQL replication on server $Name from master $MasterHost to slave $SlaveHost is good.\nHave a great day!\n\n"
# checking status server with ping
count=$(ping -c $Count $SlaveHost | grep 'received' | awk -F',' '{ print $2 }' | awk '{ print $1 }')
if [ $count -eq 0 ];
then
echo "server slave $Name $SlaveHost is down at $(date)" | mail -s "$PingFailed" $emails
else
# checking service mysql with telnet
TELNET=`echo "quit" | telnet $SlaveHost $Port | grep "Escape character is"`
if [ "$?" -ne 0 ]; then
echo "MySql server slave $Name $SlaveHost on port $Port failed at $(date)" | mail -s "$Mysqldown" $emails
exit 1
else
# Grab the lines for each and use Gawk to get the last part of the string(Yes/No)
SQLresponse=`mysql -u root -h $SlaveHost -e "show slave status \G" |grep -i "Slave_SQL_Running"|gawk '{print $2}'`
IOresponse=`mysql -u root -h $SlaveHost -e "show slave status \G" |grep -i "Slave_IO_Running"|gawk '{print $2}'`
# If the replication is working fine
if [ "$SQLresponse" = "Yes" ] && [ "$IOresponse" = "Yes" ];
then
for address in $emails; do
echo -e $GoodMessage | mail -s $GoodSubject $address
echo "Replication is up"
done
else
# If the replication is not working
if [ "$SQLresponse" = "No" ] ||[ "$IOresponse" = "No" ];
then
down="Replication MySQL server $Name from master $MasterHost to slave $SlaveHost has down"
echo -e $down | mail -s $DownSubject $emails
echo "Replication down"
exit
else
# other condition
error="Replication MySQL server $Name from master $MasterHost to slave $SlaveHost has error"
echo -e $error | mail -s $ErrorSubject $emails
echo "Replication error"
exit
fi
fi
fi
fi
===============================================================================
9.Jika berhasil tandanya dapat mengirimkan email
Ada tulisan replication up
10.Buat cronjob dngn perintah crontab –e
Masukkan interval berapa menit ngirim email
11.selesai tiap per jam 6 pagi ada email masuk notifikasi dari monitoring replikasi
Sebelum melakukan perintah tersebut pastikan pada mysql ada user repl pada server keduanya jika belum ada buatlah dengan perintah:untuk server slave perintahnya :
create user 'repl'@ identified by 'j@r1ng';
untuk server master perintahnya : "grant replication slave on *.* to repl@'%'identified by 'password';"
dibawah ini adalah capture user repl jika server kedua tersebut ada user repl
Tambahan trik
Command Untuk Melihat User user di mysql:
select user,host from mysql.user;
Command untuk melihat apakah replikasi berjalan dengan baik atau tidak
show slave status \G;
Perintah untuk menambah user pada mysql beserta passwordnya.
grant replication slave on *.* to repl@'%' identified by 'j@r1ng';
perintah untuk melihat koneksi user
show processlist;
#root dengan password : grant all privileges on *.* to namauser@'%' identified by 'password';
flush privileges;
root tanpa password : grant all privileges on *.* to namauser@'%';flush privileges;
0 comments:
Post a Comment