Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk mencapai replikasi dan penyegerakan data dalam MySQL?

Bagaimana untuk mencapai replikasi dan penyegerakan data dalam MySQL?

WBOY
WBOYasal
2023-07-29 08:24:402589semak imbas

MySQL ialah salah satu sistem pengurusan pangkalan data hubungan yang paling popular pada masa ini. Ia menyokong replikasi dan penyegerakan data untuk mencapai ketersediaan tinggi dan perlindungan data. Artikel ini akan memperkenalkan cara melaksanakan replikasi dan penyegerakan data dalam MySQL dan menyediakan beberapa contoh kod.

1. Prinsip asas replikasi data MySQL
Replikasi data MySQL dicapai dengan menyalin data dari satu pangkalan data ke pangkalan data yang lain. Ia berdasarkan model replikasi induk-hamba, di mana satu pangkalan data bertindak sebagai pelayan induk, bertanggungjawab untuk menerima dan memproses semua operasi tulis manakala pangkalan data lain bertindak sebagai pelayan hamba, bertanggungjawab untuk meminta dan mendapatkan kemas kini data daripada pelayan induk. Replikasi data dicapai dengan memindahkan log binari pada pelayan induk ke pelayan hamba.

  1. Konfigurasikan pelayan induk
    Pertama, kita perlu mendayakan fungsi log binari pada pelayan induk. Tambahkan kandungan berikut pada fail konfigurasi my.cnf:

[mysqld]
server-id=1
log-bin=mysql-bin

di mana server-id ialah pengecam unik pelayan utama, dan log- bin menentukan Nama fail log binari.

Kemudian, mulakan semula perkhidmatan MySQL untuk konfigurasi berkuat kuasa.

  1. Konfigurasikan pelayan hamba
    Seterusnya, kita perlu mengkonfigurasi replikasi pada pelayan hamba. Tambahkan kandungan berikut pada fail konfigurasi my.cnf:

[mysqld]
server-id=2
relay-log=mysql-relay-bin
log-slave-updates=1

dari mana server-id Pengecam unik pelayan, log geganti menentukan nama fail log geganti, dan kemas kini log-hamba menunjukkan sama ada pelayan hamba merekodkan log binari.

Kemudian, mulakan semula perkhidmatan MySQL untuk konfigurasi berkuat kuasa. . replication'@'%';

    Kemudian, dapatkan nama fail log binari dan lokasi pada pelayan induk melalui arahan berikut:

  1. TUNJUKKAN STATUS MASTER;
Lakukan arahan berikut pada pelayan hamba untuk mewujudkan saluran replikasi:


TUKAR MASTER KE MASTER_HOST='IP pelayan utama', MASTER_USER='replikasi', MASTER_PASSWORD='kata laluan', MASTER_LOG_FILE='Nama fail log binari', MASTER_LOG_POS=lokasi;Kemudian, mulakan fungsi pelayan replikasi hamba :

MULAKAN BUDAK ;

2. Cara melaksanakan penyegerakan data MySQL

Penyegerakan data MySQL merujuk kepada memastikan data antara pelbagai pangkalan data konsisten untuk memastikan masa nyata dan konsistensi data. Berikut memperkenalkan beberapa kaedah pelaksanaan penyegerakan data biasa.

Penyegerakan data berdasarkan binlog

Log binari MySQL merekodkan semua operasi tulis dalam pangkalan data Kita boleh menggunakan log binari untuk mencapai penyegerakan data. Langkah-langkah khusus adalah seperti berikut:

(1) Dayakan fungsi log binari pada pelayan induk dan konfigurasikan format binlog ke ROW:

binlog_format=ROW

(2) Konfigurasikan replikasi pada pelayan hamba dan gunakan CHANGE Perintah MASTER untuk mewujudkan saluran replikasi dan mulakan replikasi.
  1. (3) Buat pencetus pada pelayan hamba untuk menyegerakkan data apabila data pada pelayan induk berubah.
  2. DELIMITER $$
BUAT PENCETUS sync_data SELEPAS MASUKKAN PADA nama jadual UNTUK SETIAP BARISAN

MULAKAN

MASUKKAN KE DALAM NILAI nama jadual (NEW.Field 1, NEW.Field 2, ...);

END$$

DELIMITER Apabila data pada pelayan induk berubah, pencetus akan melaksanakan operasi INSERT yang sepadan pada pelayan hamba untuk mencapai penyegerakan data.

Penyegerakan data berdasarkan lajur auto-kenaikan kunci utama

Apabila menyegerakkan data antara berbilang pangkalan data, konflik kunci utama sering dihadapi. Satu penyelesaian ialah menggunakan lajur autokenaikan kunci utama untuk memastikan kunci utama tidak diduplikasi antara pangkalan data yang berbeza.


Langkah khusus adalah seperti berikut:

(1) Apabila mencipta jadual dalam setiap pangkalan data, tetapkan medan kunci utama kepada lajur kenaikan automatik.

(2) Apabila memasukkan data ke dalam setiap pangkalan data, tidak perlu menentukan nilai medan kunci utama, pangkalan data akan menjana nilai kunci primer yang unik untuknya secara automatik.

    (3) Segerakkan data dalam setiap pangkalan data ke pangkalan data lain melalui tugas atau pencetus yang dijadualkan.

  1. Contoh kod:
CIPTA nama jadual JADUAL (

id INT AUTO_INCREMENT PRIMARY KUNCI,

Field 1 VARCHAR(50),

Field 2 VARCHAR(50)

)(MASUKKAN Nama Medan 2, ERT MASUKKAN nama 1) VALUES ('Data 1', 'Data 2');

Penyegerakan data berasaskan alat

Selain kaedah penyegerakan data berdasarkan binlog dan lajur auto-kenaikan kunci utama, terdapat juga beberapa alatan pihak ketiga yang boleh mencapai Penyegerakan data MySQL, seperti Maxwell dan Debezium et al. Alat ini boleh menghuraikan log binari pangkalan data dan menukarnya kepada format yang boleh dibaca untuk mencapai penyegerakan data.


Belum ada contoh kod Sila rujuk dokumentasi rasmi dan contoh penggunaan alat tersebut.

Ringkasan:
Artikel ini memperkenalkan kaedah untuk mencapai replikasi dan penyegerakan data dalam MySQL, serta contoh kod yang berkaitan. Melalui replikasi dan penyegerakan data, kami boleh mencapai ketersediaan tinggi pangkalan data dan perlindungan data, dan meningkatkan kestabilan dan kebolehpercayaan sistem. Pada masa yang sama, memilih kaedah dan alat yang sesuai berdasarkan keperluan sebenar dapat memenuhi keperluan perniagaan dengan lebih baik.

Atas ialah kandungan terperinci Bagaimana untuk mencapai replikasi dan penyegerakan data dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn