Berbagi teknologi

Replikasi MySQL-master-slave dan pemisahan baca-tulis

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Replikasi master-slave MySQL dan pemisahan baca-tulis merupakan sarana teknis yang penting untuk meningkatkan kinerja dan ketersediaan database.

 

Replikasi master-slave:

 

Tujuan utama replikasi master-slave adalah untuk mencapai cadangan data yang berlebihan, meningkatkan ketersediaan data, dan mewujudkan pemisahan baca-tulis database untuk meningkatkan kinerja.

 

Konfigurasi server utama:

 

1. Aktifkan log biner (Binary Log): mencatat semua operasi modifikasi ke database.

2. Konfigurasikan ID server unik: digunakan untuk mengidentifikasi server master dan slave.

 

Konfigurasi budak:

 

1. Konfigurasikan juga ID server unik, yang tidak boleh sama dengan server utama.

2. Tentukan informasi koneksi server utama, termasuk nama host, port, nama pengguna dan kata sandi.

 

Proses spesifik replikasi master-slave:

 

1. Thread I/O dari server budak terhubung ke server master dan meminta server master untuk mulai mengirimkan log biner dari posisi yang ditentukan.

2. Setelah menerima permintaan, server master memulai thread untuk mengirim konten log biner ke server budak.

3. Menerima data log biner dari thread I/O server dan menuliskannya ke log relai lokal (Log Relai).

4. Baca isi log relai dari thread SQL server, dan putar ulang operasi di log di database lokal untuk mencapai sinkronisasi data.

 

Modus salin:

 

1. Replikasi berbasis pernyataan: Server master mencatat pernyataan SQL yang dieksekusi dalam log biner, dan server budak memutar ulang pernyataan ini. Metode ini sederhana, namun dapat menyebabkan inkonsistensi untuk beberapa pernyataan non-deterministik.

2. Replikasi berbasis baris: mencatat perubahan dalam baris data, yang lebih akurat namun menghasilkan jumlah log yang lebih besar.

3. Replikasi hibrid: Secara otomatis memilih replikasi berbasis pernyataan atau berbasis baris sesuai dengan situasi.

 

Penundaan replikasi master-slave:

Karena penundaan jaringan, kinerja server budak, dan faktor lainnya, mungkin ada penundaan tertentu antara data server budak dan server master.

 

Baca dan tulis pemisahan:

 

Pemisahan baca-tulis diimplementasikan berdasarkan replikasi master-slave. Operasi baca database ditugaskan ke server budak, dan operasi tulis ditugaskan ke server master.

 

Cara untuk mencapai pemisahan membaca dan menulis:

 

1. Konfigurasi manual dalam aplikasi: Kirim permintaan ke server yang berbeda tergantung pada jenis operasi (baca atau tulis).

2. Gunakan middleware: seperti MyCat, ProxySQL, dll., yang secara otomatis dapat merutekan lalu lintas ke server master atau server budak berdasarkan jenis permintaan.

 

Keuntungan pemisahan membaca dan menulis:

 

1. Meningkatkan kinerja: operasi tulis dikonsentrasikan pada server master, dan operasi baca tersebar ke beberapa server budak, sehingga meningkatkan kemampuan pemrosesan bersamaan sistem.

2. Penyeimbangan beban: Distribusikan operasi baca secara wajar ke server budak yang berbeda untuk menghindari beban berlebihan pada satu server.

 

Tantangan pemisahan membaca dan menulis:

 

1. Konsistensi data: Karena penundaan pada server budak, data yang bukan terbaru mungkin terbaca.

2. Failover: Ketika server master gagal, operasi penulisan perlu dialihkan ke server master baru tepat waktu, dan server budak harus disinkronkan dengan server master baru.

 

Singkatnya, replikasi master-slave dan pemisahan baca-tulis MySQL adalah solusi optimalisasi basis data yang kompleks namun efektif yang perlu dirancang dan dikonfigurasi dengan hati-hati sesuai dengan kebutuhan bisnis aktual dan arsitektur sistem untuk memaksimalkan keunggulannya dan mengatasi kemungkinan masalah. .