Assalamu'alaikum wr.wb
Pada kali iini ane ingin share cara melakukan replication pada database mariaDB. 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.
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
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.
II. Konfigurasi Server Master
1. Sekarang kita akan mengkonfigurasi server-id dan log-bin pada /etc/my.cnf.d/server.cnf hal ini dilakukan untuk mengatur id server untuk replication dan untuk mengatur log
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
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 'gatau' berguna untuk membuat user yang akan digunakan untuk proses replication dengan password gatau atau bisa anda sesuaikan sesuka isi hati.
Lakukan flush terhadap semua tables yang terbuka. Tabel baru hanya diperbolehkan dibuka dengan read lock sampai perintah unlock tables; dijalankan
III. Konfigurasi Server Slave
1. Sekarang kita akan mengkonfigurasi server-id, log-bin, dan lainnya pada /etc/my.cnf.d/server.cnf hal ini dilakukan untuk mengatur id server untuk replication dan untuk mengatur log, serta yang lainnya
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
1. 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.
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 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.
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 rapi. Hal ini dilakukan pada server slave
Cari keterangan :
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Pastikan hasilnya Yes. Kalau Yes ini berarti server slave berhasil join replication
2. Untuk pengujiannya, Disini saya membuat database pada server master dengan nama database sebagai berikut
3. Untuk pengetesannya, pada server slave, masuk ke bash mysql kemudian lihat databases yang ada dengan perintah show databases apakah pada server slave berhasil ditambahkan juga databasenya.
Dan tentu saja database berhasil ditambahkan juga.
Untuk tutorial videonya dapat dilihat 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