Cari Blog Ini

Senin, 22 Maret 2010

Replikasi Data Base MySQL pada OS Windows

Replikasi Data Base MySQL pada OS Windows
di tulis oleh Wawan Supriadi

MySQL merupakan salah satu Database Engine yang walaupun gratis, tapi kemampuannya cukup handal. Sebagai bukti di RSUD Kabupaten Sumedang sampai sekarang (06-03-2010) jumalh data sudah mencapai lebih dari 10 juta record (baris) dengan sekitar 80 buah client, tapi software masih stabil.

Dengan data yang semakin membesar akan menimbulkan kekhawatiran, bagaimana apabila suatu ketika server rusak, apa yang akan terjadi pada data ? tentu akan ikut hilang juga, sedangkan kita tahu bahwa data tak ternilai harganya.

Untuk mengatasi hal tersebut dapat dilakukan diantaranya dengan cara Back Up data secara rutin. Tapi banyak sekali kelemahannya yaitu

  1. Pada saat proses Back Up data, kinerja server sedikitnya akan terganggu yang tentunya akan menganggu kenyamanan user
  2. Pada saat back up data, tidak semua data akan ter Back Up, sebab pada saat Back Up mungkin saja terjadi perubahan data yang dilakukan oleh user
  3. Ketika server rusak, walaupun data secara rutin di Back Up tentunya banyak data yang hilang. Data yang dapat diselamatkan hanyalah data yang ada sebelum Proses Back Up dilakukan.

Untuk menangani masalah Back Up data yang ternyata banyak sekali kelemahanya, ada satu cara yang ampuh yaitu Replikasi. Dengan cara replikasi ini kita membutuhkan paling tidak 2 buah server yaitu server Master, dimana disana terrjadi perubahan data yaitu Insert (Penambahan), Update (Perubahan) dan delete (Penghapusan). Sedangkan server Slave berfungsi untuk menyamakan data, perubahan data di server master secara otomatis akan merubah data pada server slave, dengan kata lain data pada server slave selalu menyesuaikan (sama) dengan data pada server Master.

Pada server slave, tidak terjadi perintah query insert, update, maupun delete, hanya perintah select saja yang diijinkan. Memang kelihatannya seperti pemborosan, tapi sebetulnya tidak juga karena

  1. Apabila server master rusak, maka database bisa segera dialihkan ke server slave
  2. Server slave, bisa digunakan oleh software manajerial yang hanya melihat laporan saja

Langkah-langkah replikasi MySQL pada OS Windows

Sebelumnya download dulu dua buah aplikasi yang saya buat secara khusus yang terdiri dari Master.exe dan Slave.exe, Master.exe harus diinstalkan pada server Master dan Slave.exe harus diinstalkan pada server Slave , yang dapad di download DISINI

Download terlebih dahulu MySQL Administrator yang dapad di dpwnload DISINI

Setting Pada server Master

1. Instalkan Software Master pada Server Master

2. Tambahkan 1 user khusus untuk replikasi, misalnya user : replikasi , password : replikasi

3. Masuk ke data base mysql

4. Berikan perintah query grant replication slave on *.* to replikasi@’ip-slave’ identified by ‘replikasi’;

Ip-slave = ip dari Server Slave (misalnya 192,168.1.69)

5. Buka file my.cnf tambahkan isian berikut pada bagian [mysqld],

log-bin=/var/lib/mysql/mysql-bin.log

server-id=1

binlog-ignore-db=”mysql”

6. Buka Sofware MySQL Adminitraor klik kotak Binary Logfile Name sehingga muncul tanda ceklist, kemudian isi kotak isiannya dengan nama log-bin

6. Matikan MySQL server dengan cara klik tombol

Pada

Hidupkan lagi MySQL Server dengan mengklik tombol

7. Lakukan back-up database yang akan direplikasi pada master dan restore pada server

Slave (proses replikasi hanya bisa bekerja bila struktur data pada Slave sama dengan struktur data pada Master)

8. Buka software Master

Isi Host Masteer, User Master (sebaiknya menggunakan root) dan password,

kemudian klik tombol , sehingga dua kotak terbawah terisi

catat nama file log dan posisinya

Setting Pada Server Slave

1. Salin database Yang di Back Up dari Server Master ke Server Slave

2. Instalkan Slave.exe

3 . Edit file my.cnf tambahkan perubahan berikut pada bagian [mysqld],

server-id = 2

master-host = ip-master (ip dari Server Master)

master-user= replikasi

master-password= replikasi

master-port=3306

matikan MySQL Server

hidupkan MySQL Server

Jalankan Aplikasi Slave.exe

Isi Ip Slave, User Slave, Password, IP Master, User Master, password, Nama File Log, dan Posisi (dua terakhir lihat dari hasil proses Master.exe)

Klik tombol

Bila pada status muncul tulisan Connecting to master artinya proses replikasi berhasil. Coba lakukan perubahan data pada server (bisaa berupa insert, update, atau delete), maka data base pada slave pun akan ikut berubah.

Bila ingin mempelajari Kode Program bisa dipelajari disini

Master

Option Explicit

Private Sub Command1_Click()

End Sub

Private Sub Form_Load()
Me.Top = (Info.WorkAreaHeight - Me.Height) / 2
Me.Left = (Info.WorkAreaWidth - Me.Width) / 2

End Sub

Private Sub PushButton1_Click()
On Error GoTo eh

Me.MousePointer = vbHourglass

Set gCnn = New MYSQL_CONNECTION
gCnn.OpenConnection PT1.Text, PT2.Text, PT3.Text, PT4.Text

Me.MousePointer = vbNormal
If gCnn.State = MY_CONN_OPEN Then
Dim pRs As MYSQL_RS
Dim theTemp As String

‘Save record
Set pRs = New MYSQL_RS
SQL = “SHOW MASTER STATUS”
pRs.OpenRs SQL, gCnn
PT5.Text = pRs.Fields(”File”)
PT6.Text = pRs.Fields(”Position”)

Else
MsgBox “Koneksi Ke Data Base MySQL Gagal !”, vbCritical, “Gagal”
End If
Exit Sub
eh:
MsgBox “Koneksi Ke Data Base MySQL Gagal !”, vbCritical, “Gagal”
PT1.Text = “”
PT2.Text = “”
PT3.Text = “”
PT1.SetFocus
Me.MousePointer = vbNormal
End Sub

Private Sub PushButton2_Click()
End
End Sub

Slave

Option Explicit

Private Sub Command1_Click()

End Sub

Private Sub Form_Load()
Me.Top = (Info.WorkAreaHeight - Me.Height) / 2
Me.Left = (Info.WorkAreaWidth - Me.Width) / 2

End Sub

Private Sub PushButton1_Click()
On Error GoTo eh

Me.MousePointer = vbHourglass

Set gCnn = New MYSQL_CONNECTION
gCnn.OpenConnection PT1.Text, PT2.Text, PT3.Text, PT4.Text

Me.MousePointer = vbNormal
If gCnn.State = MY_CONN_OPEN Then
Dim pRs As MYSQL_RS
Dim theTemp As String

‘Save record
Set pRs = New MYSQL_RS
SQL = “SHOW MASTER STATUS”
pRs.OpenRs SQL, gCnn
PT5.Text = pRs.Fields(”File”)
PT6.Text = pRs.Fields(”Position”)

Else
MsgBox “Koneksi Ke Data Base MySQL Gagal !”, vbCritical, “Gagal”
End If
Exit Sub
eh:
MsgBox “Koneksi Ke Data Base MySQL Gagal !”, vbCritical, “Gagal”
PT1.Text = “”
PT2.Text = “”
PT3.Text = “”
PT1.SetFocus
Me.MousePointer = vbNormal
End Sub

Private Sub PushButton2_Click()
End
End Sub

SLAVE

Option Explicit

Private Sub Command1_Click()

End Sub

Private Sub Form_Load()
Me.Top = (Info.WorkAreaHeight - Me.Height) / 2
Me.Left = (Info.WorkAreaWidth - Me.Width) / 2

End Sub

Private Sub PushButton1_Click()
On Error GoTo eh

Me.MousePointer = vbHourglass

Set gCnn = New MYSQL_CONNECTION
gCnn.OpenConnection PT8.Text, PT9.Text, PT10.Text, PT4.Text

Me.MousePointer = vbNormal
If gCnn.State = MY_CONN_OPEN Then
Dim pRs As MYSQL_RS
Dim theTemp As String

‘Save record
Set pRs = New MYSQL_RS
SQL = “STOP SLAVE”
pRs.OpenRs SQL, gCnn

Set pRs = New MYSQL_RS
SQL = “RESET SLAVE”
pRs.OpenRs SQL, gCnn

Set pRs = New MYSQL_RS
SQL = “CHANGE MASTER TO MASTER_HOST=’” & PT1.Text & “‘, MASTER_USER = ‘” & PT2.Text & “‘, MASTER_PASSWORD= ‘” & PT3.Text & “‘,MASTER_LOG_FILE=’” & PT5.Text & “‘,MASTER_LOG_POS=” & PT6.Text & “;”
pRs.OpenRs SQL, gCnn

Set pRs = New MYSQL_RS
SQL = “START SLAVE”
pRs.OpenRs SQL, gCnn

Set pRs = New MYSQL_RS
SQL = “SHOW SLAVE STATUS”
pRs.OpenRs SQL, gCnn

PT7.Text = pRs.Fields(”Slave_IO_State”)

Else
MsgBox “Koneksi Ke Data Base MySQL Gagal !”, vbCritical, “Gagal”
End If
Exit Sub
eh:
MsgBox Err.Number & ” ” & Err.Description, vbCritical, “Error While Connecting”
MsgBox “Koneksi Ke Data Base MySQL Gagal !”, vbCritical, “Gagal”
PT1.Text = “”
PT2.Text = “”
PT3.Text = “”
PT1.SetFocus
Me.MousePointer = vbNormal
End Sub

Private Sub PushButton2_Click()
End
End Sub

SELAMAT MENCOBA DAN SEMOGA BERMANFAAT

Sumber : http://teknologi.kompasiana.com/2010/03/06/replikasi-data-base-mysql-pada-os-windows/?ref=home#comment