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 -urootSekarang 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.
Apa itu NFS dan bagaimana cara menginstalnya di Linux Cara membuat dan mengkonfigurasi VirtualHost ke server OpenLiteSpeedLinux