Skip to content

ノートDwinar

Hidup tuh bercanda, yang serius cuma mati

Menu
  • Home
  • Admin Server
    • Debian
    • RedHat
    • Ubuntu
    • Zimbra
  • Blog
  • Buku & Publishing
  • About
  • Contact
  • Privacy Policy
Menu

Cara Replikasi Database Master – Slave

Posted on February 15, 2019February 21, 2019 by dwinar

Replikasi database adalah seperangkat teknologi yang digunakan untuk menyalin dan mendistribusikan data dari satu database ke database yang lain. Dan selanjutnya, mensinkronisasikan antar database untuk menjaga konsistensi. Dengan replikasi, data dapat didistribusikan ke lokasi yang berbeda dan pengguna yang jauh melalui jaringan LAN, WAN, Dial-up Connection, wireless connections, dan internet.

Keuntungan menggunakan Replikasi database:

  • Menghindari kemungkinan tidak semua data ter-backup karena saat proses backup data manual dilakukan bisa saja terjadi perubahan data oleh client.
  • Apabila server master mengalami kerusakan, database bisa segera dialihkan ke server slave.
  • Replikasi master-slave berlangsung secara realtime dimana setiap perubahan pada data server master akan otomatis merubah data pada server slave.

Disini saya menggunakan ubuntu 16.04 sebagai OSnya dan mariadb 10.0.38. Dengan ketentuan sebagai berikut:

Server master = 192.168.60.141

Server Slave = 192.168.60.142

Konfigurasi Server

Master

Buka Konfigurasi Mariadb.

nano /etc/mysql/mariadb.conf.d/50-server.cnf

Menuju baris 29. Ubah bind-address ke ip master.

bind-address            = 192.168.60.141

Menuju baris 74. Hilangkan tanda pagar pada server-id dan log_bin.

server-id               = 1
log_bin                 = /var/log/mysql/mysql-bin.log

Restart service Mariadb.

systemctl restart mysql

Buat user untuk akses databases replika.

mysql -u root -p
 
GRANT REPLICATION SLAVE ON *.* TO 'replica'@'192.168.60.142' IDENTIFIED BY 'secret';
FLUSH PRIVILEGES;

Kunci database agar tidak ada perubahan pada saat konfigurasi replikasi

FLUSH TABLES WITH READ LOCK;

Tampilkan status master. File dan Position dibutuhkan pada saat konfigurasi Databases Slave.

MariaDB [(none)]> SHOW MASTER STATUS;

+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 |      812 |              |                  |
+------------------+----------+--------------+------------------+

Slave

Buka Konfigurasi Mariadb.

nano /etc/mysql/mariadb.conf.d/50-server.cnf

Menuju baris 29. Ubah bind-address ke ip slave.

bind-address            = 192.168.60.142

Menuju baris 74. Hilangkan tanda pagar pada server-id dan log_bin. Serta ubah server-id nya. Untuk server-id harus berbeda dengan server-id master. Disini saya menggunakan server-id = 2.

server-id               = 2
log_bin                 = /var/log/mysql/mysql-bin.log

Restart service Mariadb.

systemctl restart mysql

Konfigurasi koneksi ke Master.

Masuk ke server slave. Lalu jalankan perintah berikut:

MariaDB [(none)]> CHANGE MASTER TO MASTER_HOST='192.168.60.141', MASTER_USER='replica', MASTER_PASSWORD='secret', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=812;

Jalankan databases slave.

MariaDB [(none)]> start slave;

Masuk ke server master. Lalu buka kembali lock databasesnya.

mysql -u root -p
 
UNLOCK TABLES;

Tampilkan status slave.

MariaDB [(none)]> SHOW SLAVE STATUS \G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.60.141
                  Master_User: replica
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000001
          Read_Master_Log_Pos: 812
               Relay_Log_File: mysqld-relay-bin.000002
                Relay_Log_Pos: 535
        Relay_Master_Log_File: mysql-bin.000001
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: 
          Replicate_Ignore_DB: 
           Replicate_Do_Table: 
       Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table: 
  Replicate_Wild_Ignore_Table: 
                   Last_Errno: 0
                   Last_Error: 
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 812
              Relay_Log_Space: 833
              Until_Condition: None
               Until_Log_File: 
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File: 
           Master_SSL_CA_Path: 
              Master_SSL_Cert: 
            Master_SSL_Cipher: 
               Master_SSL_Key: 
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error: 
               Last_SQL_Errno: 0
               Last_SQL_Error: 
  Replicate_Ignore_Server_Ids: 
             Master_Server_Id: 1
               Master_SSL_Crl: 
           Master_SSL_Crlpath: 
                   Using_Gtid: No
                  Gtid_IO_Pos:

Uji coba

Buat suatu database di server master, jika berhasil maka database yang baru terbuat di master akan secara otomatis terbuat juga di server slave. Berikut hasil uji cobanya:

Terimakasih telah membaca.

2 thoughts on “Cara Replikasi Database Master – Slave”

  1. manda says:
    December 20, 2021 at 10:40 pm

    penyebab failed pada saat perintah sudo systemctl rerstart service

    Reply
    1. dwinar says:
      December 29, 2021 at 10:38 am

      Perlu dicek disisi log nya terlebih dahulu, kenapa failednya. Baru bisa dianalisa terkait failednya.

      Reply

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Recent Posts

  • Instalasi T-Pot Honeypot Framework
  • Ulang Tahun Excellent 9
  • Cara Setting DNS over HTTPS
  • Cara Upgrade OS Mikrotik
  • Membersihkan Sampah Pada Docker

Recent Comments

  • raihan irfan on Cara Install Docker Toolbox di Windows 10 Home
  • dwinar on Instalasi T-Pot Honeypot Framework
  • dwinar on Instalasi T-Pot Honeypot Framework
  • dwinar on Cara Replikasi Database Master – Slave
  • manda on Cara Replikasi Database Master – Slave

Categories

  • Admin Server
  • Blog
  • Debian
  • RedHat
  • Ubuntu
  • Zimbra

Archives

  • January 2021
  • September 2020
  • June 2020
  • May 2020
  • April 2020
  • March 2020
  • February 2020
  • January 2020
  • December 2019
  • November 2019
  • October 2019
  • September 2019
  • August 2019
  • July 2019
  • June 2019
  • May 2019
  • April 2019
  • March 2019
  • February 2019
  • January 2019
  • December 2018
  • November 2018
  • October 2018
  • September 2018
  • August 2018
  • July 2018

Tags

BBB Blog CentOS CentOS 8 Cockpit cPanel DataBases docer Docker Docker CE Docker Private Registry Docker Toolbox fail2ban Gnome google cloud Honeypot Jitsi Kubernetes Let’s Encrypt Linux lsync MariaDB Mikrotik Nakivo NextCloud Open Source OpenSUSE Redhat RedHat 7 S/MIME SSH SSL T-Pot Ubuntu Video Conference Web Server WFH WHM Windows Zextras Zimbra Zimbra Docs Zimbra Drive Zimbra Drive v2 Zimbra NE
February 2019
MTWTFSS
 123
45678910
11121314151617
18192021222324
25262728 
« Jan   Mar »
© 2023 ノートDwinar | Powered by Minimalist Blog WordPress Theme