Cara Replication Database MariaDB (Master-Slave) | alvianaufan

BLOG IT SYSADMIN

Daftar akun digitalocean untuk mendapatkan free credit 100$.
DigitalOcean Referral Badge

Apa itu replication database?

Replication database adalah proses ketika anda memiliki lebih dari satu database server dengan terdiri dari Master (live server database) dan Slave (server database yang menerima data dan menampilkan data identik yang berada pada server database Master).

Replication database ini berfungsi sekali jika anda ingin migrasi database secara live atau sebagai backup database atau sebagai failover database.

Di postingan kali ini, saya akan menjelaskan cara setup database replication dengan contoh jika kita memiliki 2 buah server yang sudah terinstall mariadb-server.



  1. Master
    Alamat IP : 192.168.1.1
    Nama database yang sudah berjalan : db_alvian
  2. Slave
    Alamat IP : 192.168.1.2
    Belum ada database

A. Setup di server Master Database

  1. Buka akses remote database dari slave server nano /etc/mysql/mariadb.conf.d/50-server.cnf lalu edit pada bagian
    #ubah menjadi ip slave
    bind-address            = 192.168.1.2
    
    #lalu tambahkan dipaling bawah
    server-id = 1
    log_bin = /var/log/mysql/mysql-bin.log
    max_binlog_size = 100M
    relay_log = /var/log/mysql/mysql-relay-bin
    relay_log_index = /var/log/mysql/mysql-relay-bin.index

    – save (ctrl+x, y, enter)

  2. Restart mariadb server dengan command /etc/init.d/mariadb restart
  3. Buat user replication mysql -u root
    CREATE USER 'replication'@'%' identified by 'password';
    GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%';
    FLUSH PRIVILEGES;
    SHOW MASTER STATUS;
    +------------------+----------+--------------+------------------+
    | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
    +------------------+----------+--------------+------------------+
    | mysql-bin.000001 |     4302 |              |                  |
    +------------------+----------+--------------+------------------+

    – Ingat selalu nama file log dan positionnya untuk di input nanti kedalam slave server
    – exit



B. Setup di server Slave Database

  1. Buka akses remote database dari Master server nano /etc/mysql/mariadb.conf.d/50-server.cnf lalu edit pada bagian
    #ubah menjadi ip slave
    bind-address            = 192.168.1.1
    
    #lalu tambahkan dipaling bawah
    server-id = 2
    log_bin = /var/log/mysql/mysql-bin.log
    max_binlog_size = 100M
    relay_log = /var/log/mysql/mysql-relay-bin
    relay_log_index = /var/log/mysql/mysql-relay-bin.index

    – save (ctrl+x, y, enter)

  2. Restart mariadb server dengan command /etc/init.d/mariadb restart
  3. Hentikan semua proses slave dengan command mysql -u root
    STOP SLAVE;
    
    CHANGE MASTER TO MASTER_HOST = '192.168.1.1', MASTER_USER = 'replication', MASTER_PASSWORD = 'password', MASTER_LOG_FILE = 'mysql-bin.000001', MASTER_LOG_POS = 4302;
    
    START SLAVE;
    
    #buat database baru dengan nama yang sama seperti di server master
    create database db_alvian;
    
    SHOW SLAVE STATUS \G
    
    EXIT;
    
    

    – jika anda menemui error table not exist (itu biarkan saja karena memang harus melakukan import terlebih dahulu dari database master ke slave untuk mendapatkan struktur table yang identik)
    – sesuaikan isi dari setiap definisinya pastikan semua benar

  4. Backup database yang sudah ada di server Master dengan command mysqldump --host 192.168.1.1 -P 3306 -u replication -p db_alvian > backup-db_alvian.sql
  5. Restore database nya ke dalam db_alvian dengan command mysql -u root db_alvian < backup-db_alvian.sql



C. Uji Coba Replication database

  • Update data di database Master
  1. Silahkan untuk coba tambah, hapus, ataupun update data di database Master
  2. Lalu lihat data yang berada di database Slave akan sama seperti data yang ada di database Master
  3. Ketika anda membuat database baru di server Master maka database tersebut akan otomatis muncul juga di server Slave
  4. untuk melihat status slave silahkan jalankan command SHOW SLAVE STATUS \G

 

  • Update data di database Slave
  1. Silahkan untuk coba tambah, hapus, ataupun update data di database Slave
  2. Lalu lihat data yang telah anda rubah tidak akan berubah di server Master
  3. Ketika anda membuat database baru di server Slave, database tersebut tidak akan muncul di server Master
  4. kesimpulannya adalah database Slave menerima perubahan data dari database Master dan database Master tidak menerima perubahan data dari database Slave

 

Demikian tutorial cara replication database mariadb (master-slave), silahkan tulis di kolom komentar jika menemui kendala atau memiliki pertanyaan lainnya ya 🙂



Write A Comment