GNU/Linux >> Belajar Linux >  >> Debian

Cara Mengonfigurasi Replikasi Master-Slave MySQL (MariaDB) di Debian 10

Replikasi MySQL adalah proses penyalinan data dari satu database server (master) ke satu atau lebih server (slave).

MySQL mendukung beberapa topologi replikasi dengan topologi Master/Slave menjadi salah satu topologi paling terkenal di mana satu server database bertindak sebagai master, sementara satu atau lebih server bertindak sebagai budak. Secara default, replikasi bersifat asinkron di mana master mengirimkan peristiwa yang menjelaskan modifikasi basis data ke log binernya dan slave meminta peristiwa saat sudah siap.

Dalam panduan ini, kami akan menunjukkan cara mengatur replikasi MariaDB Master/Slave dengan satu server master dan satu slave di Debian 10. MariaDB adalah implementasi default MySQL di Debian. Langkah yang sama berlaku untuk Oracle MySQL.

Jenis topologi replikasi ini paling cocok untuk menerapkan replika baca untuk penskalaan baca, pencadangan database langsung untuk pemulihan bencana, dan untuk tugas analitik.

Prasyarat #

Kami berasumsi bahwa Anda memiliki dua server yang menjalankan Debian 10, berkomunikasi satu sama lain melalui jaringan pribadi. Jika penyedia hosting Anda tidak mendukung alamat IP pribadi, Anda dapat menggunakan alamat IP publik dan mengonfigurasi firewall Anda untuk mengizinkan lalu lintas di port 3306 hanya dari sumber tepercaya.

Server yang digunakan dalam contoh ini memiliki alamat IP berikut:

Master IP: 10.10.8.12
Slave IP:  10.10.8.164

Menginstal MariaDB #

Repositori default Debian 10 menyertakan MariaDB versi 10.3. Yang terbaik adalah menginstal versi MariaDB yang sama di kedua server untuk menghindari potensi masalah.

Instal MariaDBon master dan slave dengan mengeluarkan perintah berikut:

sudo apt-get updatesudo apt-get install mariadb-server

Mengonfigurasi Server Master #

Langkah pertama adalah menyiapkan server master. Kami akan membuat perubahan berikut:

  • Setel server MariaDB untuk mendengarkan di IP pribadi.
  • Tetapkan ID server yang unik.
  • Aktifkan pencatatan log biner.

Buka file konfigurasi MariaDB dan batalkan komentar atau atur baris berikut:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
master:/etc/mysql/mariadb.conf.d/50-server.cnf
bind-address           = 10.10.8.12
server-id              = 1
log_bin                = /var/log/mysql/mysql-bin.log

Setelah selesai, simpan file dan mulai ulang layanan MySQL agar perubahan diterapkan:

sudo systemctl restart mariadb

Langkah selanjutnya adalah membuat pengguna replikasi baru. Masuk ke server MariaDB sebagai pengguna root:

sudo mysql

Jalankan kueri SQL berikut untuk membuat pengguna bernama replica dan berikan REPLICATION SLAVE hak istimewa bagi pengguna:

CREATE USER 'replica'@'10.10.8.164' IDENTIFIED BY 'replica_password';
GRANT REPLICATION SLAVE ON *.* TO 'replica'@'10.10.8.164';
Pastikan Anda mengubah IP dengan alamat IP budak Anda. Anda dapat memberi nama pengguna sesuai keinginan.

Saat masih di dalam prompt MySQL, jalankan perintah berikut yang akan mencetak nama file biner dan posisinya.

SHOW MASTER STATUS\G
*************************** 1. row ***************************
            File: mysql-bin.000001
        Position: 328
    Binlog_Do_DB: 
Binlog_Ignore_DB: 
1 row in set (0.001 sec)

Catat nama filenya, 'mysql-bin.000001' dan Posisi ‘328’ . Nilai-nilai ini diperlukan saat mengkonfigurasi server budak dan mungkin akan berbeda di server Anda.

Mengonfigurasi Server Slave #

Kami akan membuat perubahan yang sama pada server slave seperti pada master:

  • Setel server MySQL untuk mendengarkan IP pribadi.
  • Tetapkan ID server yang unik.
  • Aktifkan pencatatan log biner.

Buka file konfigurasi MariaDB dan edit baris berikut:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
slave:/etc/mysql/mariadb.conf.d/50-server.cnf
bind-address           = 10.10.8.164
server-id              = 2
log_bin                = /var/log/mysql/mysql-bin.log

Mulai ulang layanan MariaDB:

sudo systemctl restart mariadb

Langkah selanjutnya adalah mengkonfigurasi parameter yang akan digunakan server slave untuk terhubung ke server master. Masuk ke shell MariaDB:

sudo mysql

Mulailah dengan menghentikan utas budak:

STOP SLAVE;

Jalankan kueri berikut untuk mengonfigurasi replikasi Master/Slave:

CHANGE MASTER TOMASTER_HOST='10.10.8.12',MASTER_USER='replica',MASTER_PASSWORD='replica_password',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=328;

Pastikan Anda menggunakan alamat IP, nama pengguna, dan kata sandi yang benar. Nama dan posisi file log harus sama dengan nilai yang Anda peroleh dari server master.

Setelah selesai, mulai utas budak.

START SLAVE;

Uji Konfigurasi #

Pada titik ini, Anda harus memiliki pengaturan replikasi Master/Slave yang berfungsi.

Untuk memverifikasi bahwa semuanya telah diatur dengan benar, buat database baru di server master:

sudo mysql
CREATE DATABASE replicatest;

Masuk ke shell MySQL budak:

sudo mysql

Jalankan perintah berikut untuk membuat daftar semua database:

SHOW DATABASES;

Anda akan melihat bahwa database yang Anda buat di server master direplikasi pada slave:

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| replicatest        |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

Debian
  1. Cara Menginstal MySQL 8.0 / 5.7 di Debian 11 / Debian 10

  2. Cara Menginstal dan Mengkonfigurasi Mariadb 10 di Debian 11

  3. Cara Menginstal Server MySQL di Debian 9

  1. Cara Menginstal Server MySQL di Debian 10 Buster

  2. Cara Menginstal Zabbix Di Debian 9

  3. Cara Mengonfigurasi Firewall dengan CSF di Debian 9

  1. Cara Mengonfigurasi Replikasi Master-Slave MySQL di Ubuntu 18.04

  2. Cara Mengonfigurasi Replikasi Master-Slave MySQL di CentOS 7

  3. Cara Menginstal dan Mengkonfigurasi VNC di Debian 9