Cara Replikasi Database Master-Slave MariaDB 10 di Ubuntu 16.04

Replikasi database adalah suatu metode untuk melakukan duplikasi database dari satu/banyak server ke satu/banyak server yang lain.

Model replikasi database:

· Master-Slave: Jika terjadi perubahan database pada Master, database pada Slave juga ikut berubah. Namun, jika terjadi perubahan pada Slave, Master tidak terpengaruh. · Master-Master: Semua server bertindak sebagai Master dan Slave. Karena jika terjadi perubahan database di salah satu server, database pada server lain juga ikut berubah.

Pada percobaan replikasi ini menggunakan model replikasi Master-Slave. Untuk model replikasi Master-Master baca di Cara Replikasi Database Master-Master MariaDB 10 di Ubuntu 16.04.

-Perangkat Percobaan-

Perangkat yang digunakan pada percobaan replikasi:

· Distro: Ubuntu 16.04 LTS · MariaDB: 10.0.29 · IP Master: 10.0.8.26 · IP Slave: 10.0.8.38

-Konfigurasi Server MariaDB Master-

Ubah konfigurasi MariaDB

[INPUT]

1 2 3 4 5 6 7 8 9 10 sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf   # baris 29, ubah IP bind-address bind-address = 10.0.8.26   # baris 74, lepas comment server-id = 1   # baris 75, lepas comment log_bin = /var/log/mysql/mysql-bin.log

Restart service MariaDB

[INPUT]

1 sudo systemctl restart mysql

Buat user untuk akses replikasi

[INPUT]

1 2 3 4 mysql -u root -p   GRANT REPLICATION SLAVE ON *.* TO ‘replica’@’10.0.8.38’ IDENTIFIED BY ‘secret’; FLUSH PRIVILEGES;

Kunci database agar tidak ada perubahan pada saat konfigurasi replikasi

[INPUT]

1 FLUSH TABLES WITH READ LOCK;

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

[INPUT]

1 2 3 4 5 6 7 SHOW MASTER STATUS;   +——————+———-+————–+——————+ | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | +——————+———-+————–+——————+ | mysql-bin.000001 |     1961 |              |                  | +——————+———-+————–+——————+

-Konfigurasi Server MariaDB Slave-

Ubah konfigurasi MariaDB

[INPUT]

1 2 3 4 5 6 7 8 9 10 sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf   # baris 29, ubah IP bind-address bind-address = 10.0.8.38   # baris 74, lepas comment. Ganti dengan nomor lain, jangan sama dengan master server-id = 2   # baris 75, lepas comment log_bin = /var/log/mysql/mysql-bin.log

Restart service MariaDB

[INPUT]

1 sudo systemctl restart mysql

Konfigurasi koneksi ke Master

[INPUT]

1 2 3 4 5 6 7 8 mysql -u root -p   CHANGE MASTER TO MASTER_HOST=’10.0.8.26′, MASTER_USER=’replica’, MASTER_PASSWORD=’secret’, MASTER_LOG_FILE=’mysql-bin.000001′, MASTER_LOG_POS=1961;

Jalankan slave

[INPUT]

1 START SLAVE;

Jika tidak ada masalah pada saat menjalankan slave, lepas kunci database pada server master

[INPUT]

1 2 3 mysql -u root -p   UNLOCK TABLES;

Tampilkan status slave

[INPUT]

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 SHOW SLAVE STATUS \G   *************************** 1. row ***************************                Slave_IO_State: Waiting for master to send event                   Master_Host: 10.0.8.26                   Master_User: replica                   Master_Port: 3306                 Connect_Retry: 60               Master_Log_File: mysql-bin.000001           Read_Master_Log_Pos: 1961                Relay_Log_File: mysqld-relay-bin.000002                 Relay_Log_Pos: 1750         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:                    Last_Error:                  Skip_Counter:           Exec_Master_Log_Pos: 1961               Relay_Log_Space: 2048               Until_Condition: None                Until_Log_File:                 Until_Log_Pos:            Master_SSL_Allowed: No            Master_SSL_CA_File:            Master_SSL_CA_Path:               Master_SSL_Cert:             Master_SSL_Cipher:                Master_SSL_Key:         Seconds_Behind_Master: Master_SSL_Verify_Server_Cert: No                 Last_IO_Errno:                 Last_IO_Error:                Last_SQL_Errno:                Last_SQL_Error:   Replicate_Ignore_Server_Ids:              Master_Server_Id: 100                Master_SSL_Crl:            Master_SSL_Crlpath:                    Using_Gtid: No                   Gtid_IO_Pos: 1 row in set (0.00 sec)

-Pengujian-

· Lakukan pembuatan database, pembuatan tabel, CRUD record pada server Master. · Setiap selesai menjalankan satu perintah pada server Master periksa server Slave apakah ada terjadi hal yang sama pada server Master.

selamat mencoba 🙂

Leave a Reply

Your email address will not be published.