GNU/Linux >> Belajar Linux >  >> Linux

Replikasi Master-Master dengan MariaDB

Beberapa hari yang lalu saya menulis tutorial tentang cara melakukan replikasi dengan MariaDB (atau MySQL). Ini adalah replikasi satu arah:dari master ke slave; ini berarti bahwa server budak menerima transaksi dari master. Tetapi klien saya membutuhkan replikasi dua arah, karena kami tidak tahu server mana yang akan menerima transaksi dan data yang sama harus ada di keduanya. Di sini saya akan menunjukkan cara mengonfigurasi replikasi master-master dengan MariaDB untuk mencapainya.

Penyiapan Saya

Kalau-kalau Anda melewatkan artikel sebelumnya, itulah fitur mesin virtual tempat saya menjalankan replikasi ini.

  • OS:Debian menguji 'Kutu Buku'
  • Versi MariaDB:10.5.12
  • Master1:192.168.122.13
  • Master2:192.168.122.223

Konfigurasi master

Kedua master mendapatkan konfigurasi yang sama, edit /etc/mysql/mariadb.conf.d/50-server.cnf dan ganti nilai berikut:

bind-address =X .ip.address>server-id =<X>report_host =masterX log_bin =/var/log/mysql/mysql-bin.logrelay_log =/var/lib/mysql/relay-binrelay_log_index =/var/lib/mysql/relay-bin.indexlog-slave-updatesauto_increment_increment=2auto_increment_offset=X 

Dimana X adalah 1 untuk master pertama, dan 2 untuk master kedua.
Nilai peningkatan otomatis berarti bahwa dalam bidang id-kind salah satu master akan selalu mendapatkan angka genap dan yang lainnya akan selalu mendapatkan angka ganjil. Ini untuk mencegah agar nomor id yang sama persis diberikan di kedua master secara bersamaan.

Sekarang restart layanan mariadb dan masuk ke mysql untuk membuat pengguna (esclavo berarti budak dalam bahasa Spanyol) dengan hak replikasi:

BUAT PENGGUNA 'esclavo1'@'ip.mysql.master.2' DIIDENTIFIKASI OLEH 'SlavePass';GRANT REPLICATION SLAVE PADA *.* KE 'esclavo1'@'ip.mysql.master.2';HAK ISTIMEWA FLUSH; 

Ulangi pada kedua master dengan mengubah informasi yang sesuai (yaitu pada master2 buat pengguna [email protected] ). Tapi pertama-tama, dapatkan dump sql dari master pertama Anda dan muat di master kedua:

master1:mysqldump -u root --all-databases -p --master-data> data.sqlmaster2:mysql -uroot  

Sekarang dapatkan beberapa informasi tentang master ini yang kita perlukan untuk mengaktifkan mode budak di host lain.

MariaDB [(none)]> TAMPILKAN STATUS MASTER;+------------------+----------+----- ---------+------------------+| Berkas | Posisi | Binlog_Do_DB | Binlog_Ignore_DB |+------------------+----------+--------------+-- ----------------+| mysql-bin.000003 | 358 | | |+------------------+----------+--------------+--- ---------------+1 baris dalam set (0,000 detik)STOP SLAVE;

Konfigurasi Slave

Sekarang saatnya untuk mengonfigurasi mode budak di kedua host mariadb/mysql:

CHANGE MASTER TO MASTER_HOST='ip.mysql.master.X', MASTER_USER='esclavoX',MASTER_PASSWORD='SlavePass MASTER_LOG_FILE='mysql-bin.000003', MASTER_LOG_POS =358';START SLAVE;

Nilai master_host adalah ip dari master lain, nilai master_user adalah pengguna yang Anda buat di master lain, dan akhirnya Anda mendapatkan nilai master_log_file dan master_log_post dari show master sta perintah tus.

Memeriksa semuanya

Untuk melihat apakah saya dapat mengaktifkan replikasi master-master dengan MariaDB, saya telah menjalankan beberapa pengujian yang sangat sederhana:

Saya telah membuat database pada satu master, lalu tabel sederhana (hanya 1 bidang) dan memasukkan beberapa catatan. Kemudian saya telah memeriksa dengan memilih bahwa data muncul di kedua host. Akhirnya saya telah menambahkan kolom inkremental otomatis id pada satu host dan memasukkan beberapa data lagi untuk melihat tampilannya:

Hanya untuk menambah kebingungan pada tangkapan layar itu:Saya telah menambahkan konfigurasi auto_increment (kenaikan dan offset) ke my.cnf selama pengujian ini dan bukan dari awal, karena saya tidak mengetahuinya sampai saya memulai pengujian.

Bagaimanapun, ini adalah bagaimana saya mengaktifkan replikasi master-master dengan MariaDB, yang juga merupakan replikasi budak-budak. Atau master-slave dan replikasi slave-master, sebut saja.

Saya pikir langkah logis berikutnya adalah meneliti dan menggunakan beberapa Galera Cluster.


Linux
  1. Mereplikasi database master menggunakan MariaDB 10 di Debian 8

  2. Cara Mengatur Replikasi Master-Master MySQL

  3. Bagaimana cara membuka kunci disk SSD dengan hdparm?

  1. Menyiapkan Replikasi Master-Master dengan MySQL di Debian 8 (Jessie)

  2. Bagaimana cara mengganti MySQL dengan MariaDB di CentOS 6

  3. Cara Menginstal WordPress dengan LEMP di Ubuntu 20.04

  1. Cara Mengatur Replikasi Master Slave MySQL

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

  3. Cara Mengatur Replikasi Master Slave MariaDB di Ubuntu 18.04