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
- Pada saat proses Back Up data, kinerja server sedikitnya akan terganggu yang tentunya akan menganggu kenyamanan user
- 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
- 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 terjadiperintah query insert, update, maupun delete, hanya perintah select saja yang diijinkan. Memang kelihatannya seperti pemborosan, tapi sebetulnya tidak juga karena
- Apabila server master rusak, maka database bisa segera dialihkan ke server slave
- 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
http://rapidshare.com/files/359424409/Replikasi.rar
Size: 7156 KB Downloads: 21 Status: File available Last Download: 08.04.2010 03:39:03
Baca konten-konten menarik Kompasiana langsung dari smartphone kamu. Follow channel WhatsApp Kompasiana sekarang di sini: https://whatsapp.com/channel/0029VaYjYaL4Spk7WflFYJ2H