Cara Menyiapkan Replikasi MariaDB (Master-Hamba) di Centos/Rhel 7 dan Debian 8/9

Cara Menyiapkan Replikasi MariaDB (Master-Hamba) di Centos/Rhel 7 dan Debian 8/9

Walaupun sesetengah orang itu mendengar frasa "Replikasi pangkalan data", Mereka sering mengaitkannya dengan keperluan mempunyai banyak salinan maklumat yang sama untuk mengelakkan kehilangan data sekiranya berlaku kegagalan perkakasan atau rasuah data. Walaupun itu benar pada tahap tertentu, terdapat lebih banyak lagi replikasi pangkalan data daripada konsep umum untuk menyokong pangkalan data dan ketersediaan data.

Replikasi master MariaDB di Centos/Rhel 7 dan Debian 8/9

Antara manfaat lain dari replikasi pangkalan data dalam persediaan master-hamba yang boleh kita sebutkan:

  1. Sandaran boleh dilakukan pada pelayan hamba tanpa menjejaskan (dan terjejas oleh) operasi menulis di tuan.
  2. Operasi intensif sumber (seperti analisis data) boleh dilakukan pada hamba tanpa mempengaruhi prestasi tuan.

Dalam artikel ini, kita akan menerangkan cara menubuhkan replikasi master-hamba di MariaDB 10.1. Berbanding dengan replikasi klasik, Mariadb memperkenalkan konsep ID Transaksi Global (Gtids) dalam v10.0, yang membolehkan untuk menukar hamba untuk menyambung dan meniru dari tuan yang berbeza dengan mudah. Di samping itu, keadaan hamba dicatatkan dengan cara yang selamat (kemas kini ke negeri dilakukan dalam urus niaga yang sama seperti kemas kini ke data).

Sekiranya anda mencari Mysql replikasi di bawah Centos/RHEL 6, Ikuti Persediaan Panduan Ini MySQL (Master-Slave) Replikasi di CentOS/RHEL 6

Memasang MariaDB 10.1 di Centos/Rhel 7 dan Debian 8/9

Persekitaran ujian kami terdiri daripada mesin berikut (kedua -duanya adalah Centos 7):

Master: 192.168.0.18 Hamba: 192.168.0.19 

Untuk memasang versi terkini MariaDB, kita perlu menambah repositori mereka ke pelayan kami. Sekiranya anda menggunakan versi lama MariaDB katakan 5.5, Pertimbangkan untuk menaik taraf hingga 10 terkini.1 versi menggunakan artikel di bawah.

  1. Upgrde Mariadb 5.5 hingga Mariadb 10.1

Di Centos/RHEL

Buat fail yang dinamakan Mariadb.repo dalam /etc/yum.repos.d dengan kandungan berikut pada kedua -duanya Tuan dan Hamba Sistem:

# MariaDB 10.Senarai Repositori 1 Centos-Dicipta 2016-01-23 14:16 UTC # http: // Mariadb.org/mariadb/repositori/[mariadb] name = Mariadb baseUrl = http: // yum.Mariadb.org/10.1/centos7-amd64 gpgkey = https: // yum.Mariadb.org/rpm-gpg-key-Mariadb gpgcheck = 1 

Simpan fail dan pasang MariaDB pada kedua -dua pelayan menggunakan yum:

# yum kemas kini && yum pasang MariaDB-Server Mariadb-Client 

Di Debian/Ubuntu

Tambahkan kunci untuk mengesahkan pakej dan repositori MariaDB:

# apt-get Install software-properties-common # apt-key adv--recv-keys --keyserver Keyserver.Ubuntu.com 0xcbcb082a1bb943db # add-apapt-repository 'deb [arch = amd64, i386] http: // cermin.EDATEL.jaring.co/mariadb/repo/10.1/Debian Jessie utama ' 

Catatan: Gantikan pengedaran nama dan nama kod di garis yang diserlahkan di atas.

Pasang menggunakan apt-get Perintah:

# apt-get update # apt-get memasang MariaDB-Server 
Semak versi MariaDB di Master Slave-Server

Sebaik sahaja anda memasang MariaDB, jalankan mysql_secure_installation Prosedur pada kedua -dua tuan dan hamba, mari kita sediakan pangkalan data ujian sampel di mesin induk.

Menyediakan Pangkalan Data MySQL Sampel mengenai Master

Kami sekarang akan menubuhkan di pelayan induk Pekerja pangkalan data dari https: // github.com/datacharmer/test_db (yang menyediakan dataset 4 Juta rekod tersebar di enam meja) dalam dua langkah mudah:

Klon repositori dan gunakannya untuk mengimport pangkalan data sampel ke pemasangan MariaDB anda:

# git clone https: // github.com/datacharmer/test_db # cd test_db # mysql < employees.sql 

Mengkonfigurasi Server MySQL di Master

Untuk mengkonfigurasi tuan, ikuti langkah -langkah ini:

LANGKAH 1: Edit /etc/my.cnf fail. Di bawah [mysqld] seksyen, tambahkan empat baris berikut:

Log-Bin Server_ID = 1 Replikasi-Do-Db = Pekerja Bind-Address = 192.168.0.18 

dan mulakan semula MariaDB:

# Systemctl Mulakan semula Mariadb 

Langkah 2: Log masuk ke pelayan MariaDB sebagai root, buat hamba pengguna dan berikan geran yang diperlukan:

Mariadb [(Tiada)]>> Buat pengguna 'hamba'@'localhost' yang dikenal pasti oleh 'hambaPassword'; Mariadb [(Tiada)]>> Geran Hamba Replikasi di *.* Untuk hamba yang dikenal pasti oleh 'hamba -lavePassword' dengan pilihan geran; Mariadb [(Tiada)]>> Keistimewaan siram; Mariadb [(Tiada)]>> Jadual siram dengan kunci baca; Mariadb [(Tiada)]>> Tunjukkan status induk; 

The terakhir perintah (Tunjukkan status induk) Mengembalikan kedudukan semasa dalam log binari (koordinat tepat yang menunjukkan dengan tepat yang mana hamba harus mula mereplikasi dari:

Konfigurasikan Master MySQL untuk replikasi

Langkah 3: Keluar dari prompt MariaDB (dengan keluar;) dan gunakan arahan berikut untuk mengambil gambar pangkalan data pekerja. Semasa anda memukul Masukkan, anda akan diminta untuk menaip kata laluan untuk root yang anda sediakan sebelum ini mysql_secure_installation:

# mysqldump -u root -p pekerja> pekerja -dibuang.SQL 

Selepas pembuangan sampah selesai, sambungkan ke pelayan pangkalan data sekali lagi untuk membuka kunci jadual dan kemudian keluar:

Mariadb [(Tiada)]>> Membuka kunci jadual; Mariadb [(Tiada)]>> keluar; 

Langkah 4: Salin pembuangan sampah ke hamba:

# SCP pekerja-membuang.sql [dilindungi e -mel]:/root/ 

Langkah 5: Jalankan mysql_upgrade prosedur untuk menaik taraf jadual sistem (anda akan diminta untuk memasukkan kata laluan root MariaDB):

# mysql_upgrade -u root -p 

Langkah 6: Benarkan perkhidmatan pangkalan data melalui firewall:

# firewall-cmd --add-service = mysql # firewall-cmd --add-service = mysql --permanent # firewall-cmd--reload 

Sekarang mari kita konfigurasikan hamba.

Mengkonfigurasi Pelayan MySQL di Hamba

Untuk mengkonfigurasi hamba, ikuti langkah -langkah ini:

LANGKAH 1: Buat akaun untuk melaksanakan tugas replikasi. Sambungkan ke pelayan MariaDB tempatan dengan:

# mysql -u root -p 

dan masukkan kata laluan yang anda sediakan lebih awal.

Langkah 2: Setelah disambungkan ke pelayan pangkalan data, buat pengguna dan pangkalan data kosong, dan memberikan kebenaran:

Mariadb [(Tiada)]>> Buat pekerja pangkalan data; Mariadb [(Tiada)]>> Memberi semua keistimewaan kepada pekerja.* Untuk 'hamba'@'localhost' dengan pilihan geran; Mariadb [(Tiada)]>> Keistimewaan siram; 

Langkah 3: Keluar dari Prompt MariaDB dan muatkan pembuangan sampah yang dibuat di pelayan induk:

# mysql -u root -p pekerja < employees-dump.sql 

Langkah 4: Edit /etc/my.cnf fail untuk memberikan pelayan ID kepada hamba di bawah [mysqld] seksyen. Perhatikan bahawa ia perlu menjadi integer yang berbeza daripada 1, seperti yang kita gunakan 1 di Guru:

server_id = 2 replication-do-db = pekerja 

Mulakan semula pelayan pangkalan data:

# Systemctl Mulakan semula Mariadb 

Langkah 5: Jalankan mysql_upgrade prosedur untuk menaik taraf jadual sistem (anda akan diminta untuk memasukkan kata laluan root MariaDB):

# mysql_upgrade -u root -p 

Langkah 6: Sebaik sahaja pembuangan sampah telah diimport kepada hamba, kami hanya beberapa langkah untuk memulakan mereplikasi. Log masuk ke pangkalan data dan jalankan arahan berikut dalam proses MariaDB. Memberi perhatian khusus kepada Master_log_file dan Master_log_pos pembolehubah, yang sepadan dengan nilai yang dikembalikan Tunjukkan status induk Dalam langkah 2 "Mengkonfigurasi Guru" di atas.

Mariadb [(Tiada)]>> Tukar Master ke Master_HOST = "192.168.0.18 ", master_user =" hamba ", master_password =" slavePassword ", master_port = 3306, master_log_file =" master-bin.000001 ", master_log_pos = 314, master_connect_retry = 10, master_use_gtid = current_pos; 

Langkah 7: Mulakan hamba dan periksa statusnya tanpa keluar dari MariaDB Prompt:

Mariadb [(Tiada)]>> Mula hamba; Mariadb [(Tiada)]>> Tunjukkan status hamba \ g; 

Bukannya anda memerlukan ini sekarang, tetapi perhatikan bahawa anda boleh menghentikan hamba dengan:

Mariadb [(Tiada)]>> Hentikan hamba; 

jika Tunjukkan status hamba \ g; Perintah mengembalikan sebarang kesilapan. Gunakan kesilapan tersebut untuk menyelesaikan masalah dan kemudian berlari Mula hamba; untuk menguji lagi.

Ujian Replikasi Pangkalan Data MySQL/MariaDB

Mari tambahkan rekod ke pekerja jadual di pelayan induk:

Mariadb [(Tiada)]>> Masukkan ke dalam pekerja (emp_no, lahir_date, first_name, last_name, jantina, hire_date) nilai (500000, '1983-07-12', 'Dave', 'null', 'M', '2014-12-12'); 

Kemudian sahkan bahawa perubahan ini direplikasi dalam hamba:

Mariadb [(Tiada)]>> Menggunakan pekerja; Mariadb [(Tiada)]>> Pilih * dari pekerja di mana emp_no = 500000; 
Semak Replikasi Pangkalan Data MariaDB Mysql

Seperti yang anda lihat, replikasi berfungsi dengan betul dari tuan ke hamba.

Ringkasan

Dalam artikel ini kami telah menjelaskan cara memasang versi terkini MariaDB di Centos/RHEL 7 dan Debian 8/9, dan membincangkan cara menubuhkan replikasi master-hamba dengan GTIDS. Untuk maklumat lanjut, anda mungkin mahu merujuk kepada Panduan Replikasi MariaDB, dan jangan ragu untuk menghubungi kami menggunakan borang di bawah jika anda mempunyai soalan atau komen.