8:37 AM
0
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