Metode replikasi MySQL.
Pada replikasi MySQL, ada 2 istilah:
- master-master replication
- master-slave replication
Master-master replication
Adalah 2 atau lebih database utama yang digunakan dan keduanya saling bertukar data sehingga datanya akan sama pada kedua database tersebut.
Mode dari master-master replication ada 2, yaitu active-active dan active-passive.
Mode active-active
Yaitu 2/lebih database master yang aktif saling menerima transaksi (insert, update, delete) dari aplikasi. Bisa dilihat seperti gambar dibawah:
Contoh diatas yaitu master 1 dan mysql 2 sama-sama aktif menerima transaksi dari user. Misalkan user ingin melakukan transaksi dari aplikasi (app), maka dari app meneruskan transaksi tersebut ke master 1 atau master 2.
Kemudian master 1 dan master 2 akan saling bertukar data, master 1 akan mengambil data (binlog) pada master 2, begitu juga sebaliknya. Jadi data pada kedua master tersebut akan sama.
Untuk mengimplementasikan active-active replication ini agak ngeri-ngeri sedap, karena lumayan kompleks konfigurasinya, rentan high latency dan duplicate primary key. Primary key antara master 1 dan master 2 harus berbeda supaya tidak bentrok IDnya.
Mode active-passive
Hanya ada 1 database utama pada mode active-passive, sisanya idle / menunggu. Jika database utama bermasalah / down, database yang idle tersebut bisa di switch (manual/otomatis) menjadi master.
Bisa dilihat, master 1 merupakan active artinya bisa digunakan untuk transaksi. Sedangkan master 2 menggunakan mode passive, dimana dia hanya mereplikasi/copy data saja dari master 1.
Jika master 1 mengalami down, master 2 bisa saja dipromote (dipromosikan) menjadi active untuk menghandle transaksi menggantikan master 1 yang down.
Master-slave replication
Adalah 2 atau lebih database, dimana 1 adalah masternya dan 1/lebih adalah slavenya. Master bertindak sebagai database utama untuk menerima transaksi sedangkan slave hanya menyalin data binlog dari master.
Mungkin master-slave replication terdengar hampir sama dengan master-master mode active-passive. Tapi jika dilihat lebih detail, pada master-slave ini, slave tidak bisa menjadi active dan hanya bisa digunakan untuk read data saja (read only). Beda dengan active-passive dimana passive bisa sewaktu-waktu menjadi active.
Kesimpulan
- Master-master replication, dua-duanya merupakan database utama (master)
- Master-master mode active-active, dua-duanya merupakan database utama (master) yang bisa menerima transaksi dari user
- Master-master mode active-passive, dua-duanya merupakan database utama (master), namun hanya 1 yang aktif yang bisa menerima transaksi dari user, sisanya passive / idle / menunggu sebagai backup dari database utama jika yang active down
- Master-slave, 1 merupakan database utama bisa menerima transaksi, 1 merupakan slave (hanya read only saja) tidak bisa menerima transaksi dari user