Assalamu'alaikum wr.wb
Pada kali iini ane ingin share cara melakukan replication pada database mysql. Pada replication mysql ini kalau menggunakan sebuah vm yang diclone, dia tidak akan bisa sinkronisasi, karena server uuidnya sama. Bisa sih di akalin dengan diedit server uuidnya.
Replication ini berguna untuk melakukan sinkronisasi database pada 2 server atau lebih. Jadi apabila server yang bertindak sebagai master membuat database, maka server yang lain akan otomatis mesinkronisasikan. inilah yg disebut dengan replika.
Oke siapkan 2 buah server. Pastikan sudah terinstall mysql nya dan service mysql sudah diizinkan pada firewall.
Disini saya punya 2 server dengan hostname ali-db0 dan ali-db1 dan dengan ip yang tertera pada topologi dibawah ini
ali-db0 bertidak sebagai master,
ali-db1 bertindak sebagai slave atau replication.
konfigurasi ini dilakukan didalam section [server]
log-bin=mysql-bin merupakan binary untuk logging sql, yaitu mysql.bin
server-id=101 merupakan penamaan saja untuk si server, ini tidak bisa menggunakan kata-kata atau kalimat, hanya berlaku untuk angka. Pada contoh ini saya mengaturnya menjadi angka 101
3. Selanjutnya kita akan membuat user yang digunakan untuk replication pada server slave sekaligus mengkonfigurasi untuk database replication. Caranya adalah masuk ke bash mysql dengan command mysql -u root -p kemudian ikuti langkah dibawah ini
Stop slave berguna untuk memberhentikan mode slave pada server master
grant replication slave on *.* to ali_replica@'%' identified by 'Gatau123_' berguna untuk membuat user yang akan digunakan untuk proses replication dengan password Gatau123_ atau bisa anda sesuaikan sesuka isi hati
Konfigurasi ini dilakukan didalam section [server], cari section [server] tersebut kemudian masukkan konfigurasi seperti dibawah ini
log-bin=mysql-bin merupakan binary untuk logging sql, yaitu mysql.bin
server-id=102 merupakan penamaan saja untuk si server, ini tidak bisa menggunakan kata-kata atau kalimat, hanya berlaku untuk angka. Pada contoh ini saya mengaturnya menjadi angka 102
read_only=1 boolean 1 pada opsi ini akan mengaktifkan akses read_only database pada server slave. Jadi server slave ini tidak dapat melakukan pembaharuan terhadap database.
report-host=202.108.5.91 merupakan host dari server slave itu sendiri, bisa anda atur menjadi nama domain, hostname, atau ip address server slave kalian. Disini saya mengaturnya dengan IP
2. Restart Service Mysql pada slave
1. Lakukan flush terhadap semua tables yang terbuka. Tabel baru hanya diperbolehkan dibuka dengan read lock sampai perintah unlock tables; dijalankan, kemudian lihat status master dengan perintah show master status
Pada saat kita melakukan show master status, terlihat file dan positionnya. File dan position ini akan digunakan pada saat slave join replication ke master.
2. Lakukan backup mysql dan backup dengan mysqldump. mysqldump ini bergua untuk melakukan dump database atau membackup database sql yang ada. kemudian cek dengan perintah ls. Seperti gambar dibawah ini
Tujuan dari perintah mysqldump -u root -p --all-databases --lock-all-tables --events > mysql_dump.sql adalah untuk melakukan backup semua database dan events yang ada pada mysql dan mengunci semua tabel ke file mysq_dump.sql perlu anda ketahui simbol > berguna untuk memasukkan output dari sebuah command kedalam file baru
3. Masuk ke bash mysql lagi untuk unlock tables
Kemudian unlock tables untuk melepas global (semua) read lock yang diperoleh pada perintah flush tables with read lock;
4. Copy file mysql_dump.sql yang berisi backup database mysql ke server slave dengan scp atau metode yang lain terserah anda.
Dengan simbol < diatas, kita akan memasukkan file /tmp/mysql_dump.sql kedalam mysq -u root -p sebagai input
2. Masuk ke bash mysql kemudian lakukan join dari slave ke master
Cari keterangan :
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Pastikan hasilnya Yes. Kalau Yes ini berarti server slave berhasil join replication
3. Untuk pengujiannya, Disini saya membuat database pada server master dengan nama database sebagai berikut
4. Cek database pada server slave untuk melihat apakah pada server slave berhasil ditambahkan juga databasenya. Caranya bisa dengan mengetikkan command show databases; pada bash mysql server slave atau bisa juga dengan membuka phpMyAdmin kalau sudah diinstall. Oke disini saya membukanya pada phpMyAdmin
Pada kali iini ane ingin share cara melakukan replication pada database mysql. Pada replication mysql ini kalau menggunakan sebuah vm yang diclone, dia tidak akan bisa sinkronisasi, karena server uuidnya sama. Bisa sih di akalin dengan diedit server uuidnya.
Replication ini berguna untuk melakukan sinkronisasi database pada 2 server atau lebih. Jadi apabila server yang bertindak sebagai master membuat database, maka server yang lain akan otomatis mesinkronisasikan. inilah yg disebut dengan replika.
I. Persiapan
Disini saya punya 2 server dengan hostname ali-db0 dan ali-db1 dan dengan ip yang tertera pada topologi dibawah ini
ali-db0 bertidak sebagai master,
ali-db1 bertindak sebagai slave atau replication.
II. Konfigurasi Server Master
1. Sekarang kita akan mengkonfigurasi server-id dan log-bin pada /etc/my.cnf hal ini dilakukan untuk mengatur id server untuk replication dan untuk mengatur log
konfigurasi ini dilakukan didalam section [server]
server-id=101 merupakan penamaan saja untuk si server, ini tidak bisa menggunakan kata-kata atau kalimat, hanya berlaku untuk angka. Pada contoh ini saya mengaturnya menjadi angka 101
2. kemudian restart service mysqld agar konfigurasi yang dibuat berjalan.
3. Selanjutnya kita akan membuat user yang digunakan untuk replication pada server slave sekaligus mengkonfigurasi untuk database replication. Caranya adalah masuk ke bash mysql dengan command mysql -u root -p kemudian ikuti langkah dibawah ini
Stop slave berguna untuk memberhentikan mode slave pada server master
grant replication slave on *.* to ali_replica@'%' identified by 'Gatau123_' berguna untuk membuat user yang akan digunakan untuk proses replication dengan password Gatau123_ atau bisa anda sesuaikan sesuka isi hati
III. Konfigurasi Server Slave
1. Sekarang kita akan mengkonfigurasi server-id, log-bin, dan lainnya pada /etc/my.cnf hal ini dilakukan untuk mengatur id server untuk replication dan untuk mengatur log, serta yang lainnya
log-bin=mysql-bin merupakan binary untuk logging sql, yaitu mysql.bin
server-id=102 merupakan penamaan saja untuk si server, ini tidak bisa menggunakan kata-kata atau kalimat, hanya berlaku untuk angka. Pada contoh ini saya mengaturnya menjadi angka 102
read_only=1 boolean 1 pada opsi ini akan mengaktifkan akses read_only database pada server slave. Jadi server slave ini tidak dapat melakukan pembaharuan terhadap database.
report-host=202.108.5.91 merupakan host dari server slave itu sendiri, bisa anda atur menjadi nama domain, hostname, atau ip address server slave kalian. Disini saya mengaturnya dengan IP
2. Restart Service Mysql pada slave
IV. Proses Replication
A. Pada Server Master
Pada saat kita melakukan show master status, terlihat file dan positionnya. File dan position ini akan digunakan pada saat slave join replication ke master.
2. Lakukan backup mysql dan backup dengan mysqldump. mysqldump ini bergua untuk melakukan dump database atau membackup database sql yang ada. kemudian cek dengan perintah ls. Seperti gambar dibawah ini
Tujuan dari perintah mysqldump -u root -p --all-databases --lock-all-tables --events > mysql_dump.sql adalah untuk melakukan backup semua database dan events yang ada pada mysql dan mengunci semua tabel ke file mysq_dump.sql perlu anda ketahui simbol > berguna untuk memasukkan output dari sebuah command kedalam file baru
3. Masuk ke bash mysql lagi untuk unlock tables
Kemudian unlock tables untuk melepas global (semua) read lock yang diperoleh pada perintah flush tables with read lock;
4. Copy file mysql_dump.sql yang berisi backup database mysql ke server slave dengan scp atau metode yang lain terserah anda.
B. Pada Server Slave
1. Lakukan restore dump backup mysql_dump.sql yang tadi.
Dengan simbol < diatas, kita akan memasukkan file /tmp/mysql_dump.sql kedalam mysq -u root -p sebagai input
2. Masuk ke bash mysql kemudian lakukan join dari slave ke master
Join replication dengan cara dibawah ini, sesuaikan user, password,log_file dan log_pos dengan milik server master anda.
change master to merupakan opsi untuk mangatur parameter yang digunakan oleh server slave untuk terhubung dan berkomunikasi dengan server master selama replikasi.
master_host : merupakan alamat host server master
master_user : merupakan user replica pada server master
master_password : password yg digunakan dari user tersebut
master_log_file : ini merupakan log file milik master. Jadi anda bisa melihatnya pada show master status yang sebelumnya dilakukan.
master_log_pos : merupakan position yang terlihat pada proses show master status yang sebelumnya dilakukan.
3. Jalankan mode slave pada server slave
Kemudian kalau sudah, kita masuk ke tahap verifikasi.
V. Verifikasi dan Pengujian
1. Untuk verifikasi, pada server slave, cek status slave dengan perintah show slave status\G; keterangan \G ini digunakan agar output yang dihasilkan berjejer secara rapiCari keterangan :
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Pastikan hasilnya Yes. Kalau Yes ini berarti server slave berhasil join replication
3. Untuk pengujiannya, Disini saya membuat database pada server master dengan nama database sebagai berikut
4. Cek database pada server slave untuk melihat apakah pada server slave berhasil ditambahkan juga databasenya. Caranya bisa dengan mengetikkan command show databases; pada bash mysql server slave atau bisa juga dengan membuka phpMyAdmin kalau sudah diinstall. Oke disini saya membukanya pada phpMyAdmin
Dan tentu saja database berhasil ditambahkan juga.
Untuk tutorial berbasis video bisa anda lihat disini
Penutup
Mungkin itu kita telah membuat konfigurasi replication database MySQL. Jadi kalau kita membuat database pada server master, maka otomatis database tersebut akan dibuat juga pada server slave. Jadi kaya kembar gitu, hehe

Sekian semoga bermanfaat
loading...
Comments
Post a Comment