Database, Ubuntu Server, Programming

Like Us

Tags

Archive

Saturday, January 28, 2017

Duplicate Entry for Primary Key - Troubleshooting replikasi database MySQL dengan hubungan Master Slave - 3


Untuk kali ini saya membuat percobaan pada replikasi Master Slave database MySQL server untuk memperbaiki masalah duplicate entry for primary key di server Slave. Berikut topologinya:


dari situ saya mencoba memasukkan data ke dalam server Slave, dimana tabel yang direplikasi memiliki constraint primary_key pada kolom ID. Jadi gini, saya punya tabel yang di replikasi dari master ke slave seperti berikut:

 Data Master
 iddata
 1test1
 2test2
Data Slave
 iddata
 1test1
 2test2

kemudian saya iseng memasukkan data ke server Slave sehingga posisinya menjadi seperti berikut:

 Data Master
 iddata
 1test1
 2test2
Data Slave
 iddata
 1test1
 2test2
 3iseng

alhasil ketika master di insert data baru menjadi:

 Data di Server Master:
 iddata
 1test1
 2test2
 3test3

Data di server slave tidak direplikasi sehingga tetap seperti berikut:

 Data di Server Slave:
 iddata
 1test1
 2test2
 3iseng

Begitu juga ketika saya menambah data baru ke server master sehingga datanya menjadi:

 Data di Server Master:
 iddata
 1test1
 2test2
 3test3
 4test4

data Slave tetap seperti sebelumnya, ternyata replikasi yang dijalankan server Slave terhenti!

  Data di Server Slave:
 iddata
 1test1
 2test2
 3iseng

lalu saya mencoba melihat status server slave dan ternyata menghasilkan error log seperti berikut:

 Last_Errno: 1062
 Last_Error: Error 'Duplicate entry '3' for key 'PRIMARY'' on query. Default database: 'belajar'. Query: 'INSERT INTO test VALUES ( NULL, 'tes3')'

maka sebagai solusinya yaitu saya menghapus data dengan ID 3 di server slave sehingga menjadi berikut:

 Data di Server Slave:
 iddata
 1test1
 2test2

kemudian saya restart service mysql server di SLAVE dengan perintah:

 sudo service mysql restart

tunggu beberapa saat maka server slave akan kembali mereplikasi seperti semula. Data di dalam tabel slave juga akan disamakan dengan tabel milik master menjadi speerti berikut:

 Data Master
 iddata
 1test1
 2test2
 3test3
 4test4
Data Slave
 iddata
 1test1
 2test2
 3test3
 4test4

Mudah bukan memperbaiki error karena duplicate id primary key yang terjadi di replikasi Master Slave MySQL. Terima kasih telah berkunjung.

No comments: