Rumah  >  Artikel  >  Tutorial sistem  >  Analisis ringkas seni bina MySQL

Analisis ringkas seni bina MySQL

WBOY
WBOYke hadapan
2024-01-14 14:03:14819semak imbas
Pengenalan Pangkalan data adalah teras kepada semua sistem aplikasi, jadi memastikan operasi pangkalan data yang stabil, cekap dan selamat adalah keutamaan utama semua kerja harian perusahaan. Sebaik sahaja masalah berlaku dalam sistem pangkalan data dan ia tidak dapat menyediakan perkhidmatan, ia mungkin menyebabkan keseluruhan sistem tidak dapat terus berfungsi. Oleh itu, seni bina pangkalan data yang berjaya juga perlu mempertimbangkan sepenuhnya reka bentuk ketersediaan tinggi. Di bawah ini saya akan memperkenalkan kepada anda bagaimana untuk membina sistem pangkalan data MySQL yang sangat tersedia.

Pangkalan data adalah teras kepada semua sistem aplikasi, jadi memastikan operasi pangkalan data yang stabil, cekap dan selamat adalah keutamaan bagi semua perusahaan dalam kerja harian mereka. Sebaik sahaja masalah berlaku dalam sistem pangkalan data dan ia tidak dapat menyediakan perkhidmatan, ia mungkin menyebabkan keseluruhan sistem tidak dapat terus berfungsi. Oleh itu, seni bina pangkalan data yang berjaya juga perlu mempertimbangkan sepenuhnya reka bentuk ketersediaan tinggi. Di bawah ini saya akan memperkenalkan kepada anda cara membina sistem pangkalan data MySQL yang sangat tersedia.

Pelajar yang telah melakukan DBA atau operasi dan penyelenggaraan harus tahu bahawa kewujudan satu titik untuk mana-mana peralatan atau perkhidmatan akan membawa risiko yang besar, kerana apabila mesin fizikal rosak atau modul servis ranap, pengganti tidak dapat ditemui dalam masa yang singkat. tempoh masa peralatan pasti akan menjejaskan keseluruhan sistem aplikasi. Oleh itu, bagaimana untuk memastikan bahawa tiada satu pun tugas penting kami Menggunakan penyelesaian ketersediaan tinggi MySQL boleh menyelesaikan masalah ini dengan baik, terdapat jenis berikut:

1 Gunakan Replikasi MySQL sendiri untuk mencapai ketersediaan tinggi

Replikasi yang disertakan bersama MySQL adalah yang sering kita panggil master-slave replication (AB replication Dengan membuat mesin slave untuk master server, apabila master server down, perniagaan boleh ditukar dengan cepat ke slave machine). penggunaan biasa aplikasi. Penyelesaian ketersediaan tinggi menggunakan replikasi AB juga dibahagikan kepada beberapa seni bina yang berbeza:

1. MASTER konvensional---penyelesaian HAMBA

Ordinary MASTER---SLAVE kini merupakan penyelesaian seni bina yang paling biasa digunakan oleh kebanyakan syarikat kecil dan sederhana di dalam dan luar negara Kelebihan utamanya ialah kesederhanaan, peralatan yang kurang (kos yang lebih rendah), dan penyelenggaraan yang mudah. Seni bina ini boleh menyelesaikan masalah satu titik dan menyelesaikan masalah prestasi sistem pada tahap yang besar. MASTER boleh diikuti oleh satu atau lebih SLAVE (replikasi lata master-hamba Walau bagaimanapun, seni bina ini memerlukan MASTER mesti dapat memenuhi semua permintaan tulis sistem Jika tidak, pemisahan mendatar diperlukan untuk berkongsi tekanan bacaan).

Analisis ringkas seni bina MySQL
Gambar 1

Analisis ringkas seni bina MySQL
Gambar 2
Rajah 1 hingga 2 menunjukkan proses menyelesaikan masalah titik tunggal dan menggunakan pengasingan baca dan tulis untuk meningkatkan prestasi.

2. Gabungan DUAL MASTER dan replikasi lata
Dual master dan multiple slave adalah penyelesaian yang lebih munasabah yang diperoleh daripada penyelesaian di atas. Kelebihan penyelesaian ini ialah apabila salah satu daripada dua pelayan utama gagal, keseluruhan seni bina tidak memerlukan pelarasan besar.

Analisis ringkas seni bina MySQL
Gambar 3

Analisis ringkas seni bina MySQL
Gambar 4

Analisis ringkas seni bina MySQL
Gambar 5

Proses ini ditunjukkan dalam gambar di atas. Tetapi keadaan dalam Rajah 5 agak istimewa, iaitu, apakah yang perlu kita lakukan jika MASTER-B turun? Perkara pertama yang boleh ditentukan ialah semua permintaan Tulis kami tidak akan terjejas dalam apa jua cara, dan semua permintaan Baca boleh diakses secara normal tetapi semua replikasi Hamba akan terganggu, dan data pada Hamba akan mula ketinggalan. Apa yang perlu kita lakukan pada masa ini ialah melakukan operasi CHANGE MASTER TO pada semua Slaves dan menyalinnya daripada Master A sebaliknya. Memandangkan semua replikasi Slave tidak boleh mendahului sumber data asal, titik permulaan replikasi yang tepat boleh didapati dengan membandingkan maklumat cap waktu dalam Relay Log pada Slave dengan maklumat cap masa dalam Master A untuk mengelakkan kerosakan data.

2 Gunakan MYSQL CLUSTER untuk mencapai ketersediaan tinggi secara keseluruhan

Buat masa ini, penyelesaian menggunakan MYSQL CLUSTER untuk mencapai ketersediaan tinggi secara keseluruhan (iaitu NDB CLUSTER) tidak begitu popular di kalangan syarikat domestik. Nod KLUSTER NDB sebenarnya adalah pelayan MySQL berbilang nod, tetapi ia tidak mengandungi data, jadi ia boleh digunakan pada mana-mana mesin selagi ia dipasang. Apabila nod SQL dalam kluster ranap, data tidak akan hilang kerana nod tidak menyimpan data tertentu. Seperti yang ditunjukkan dalam Rajah 6:
Analisis ringkas seni bina MySQL
Gambar 6

3 Mencapai ketersediaan tinggi melalui derivatif MySQL

Antara derivatif MySQL semasa yang mencapai ketersediaan tinggi, yang paling terkenal dan popular ialah GALERA CLUSTER dan PERCONA XTRDB CLUSTER (PXC). Kandungan yang berkaitan tidak akan dibincangkan dalam artikel ini buat masa ini. Pelajar yang berminat boleh menyemak maklumat yang berkaitan untuk mengetahui lebih lanjut. Kaedah pelaksanaan kedua-dua kluster ini adalah serupa, seperti yang ditunjukkan dalam Rajah 7 dan Rajah 8:
Analisis ringkas seni bina MySQL
Gambar 7

Analisis ringkas seni bina MySQL
Gambar 8

4. Perbandingan kebaikan dan keburukan pelbagai penyelesaian ketersediaan tinggi

Dalam pengenalan sebelum ini kepada pelbagai penyelesaian reka bentuk ketersediaan tinggi, pembaca mungkin telah mendapati bahawa tidak kira penyelesaian yang digunakan, ia mempunyai kelebihan tersendiri, tetapi terdapat juga batasan yang lebih kurang. Bahagian ini akan menjalankan analisis kebaikan dan keburukan pilihan utama di atas untuk rujukan anda dalam proses pemilihan.

1. Replikasi MySQL

Kelebihan: Penggunaan yang mudah, pelaksanaan yang mudah dan penyelenggaraan yang tidak rumit Ini adalah fungsi yang sememangnya disokong oleh MySQL. Dan adalah mudah untuk bertukar antara mesin aktif dan siap sedia. Pensuisan aktif dan siap sedia boleh dilengkapkan secara automatik melalui perisian pihak ketiga atau skrip tulisan sendiri.

Kelemahan: Jika perkakasan hos Master gagal dan tidak dapat dipulihkan, beberapa data yang belum dihantar kepada Hamba mungkin hilang.

2. Kluster MySQL (NDB)

Kelebihan: Ketersediaan yang sangat tinggi dan prestasi yang sangat baik. Setiap sekeping data mempunyai sekurang-kurangnya satu salinan pada hos yang berbeza, dan salinan data berlebihan disegerakkan dalam masa nyata.

Kelemahan: Penyelenggaraan lebih rumit, produk lebih baharu, terdapat beberapa pepijat, dan ia mungkin tidak sesuai untuk sistem dalam talian teras pada masa ini.

3 KLUSTER GALERA dan KLUSTER PERCONA XTRDB (PXC)

Kelebihan: Kebolehpercayaan adalah sangat tinggi Semua nod boleh membaca dan menulis setiap bahagian data pada masa yang sama Terdapat sekurang-kurangnya satu salinan pada hos yang berbeza, dan salinan data yang berlebihan disegerakkan dalam masa nyata.

Kelemahan: Apabila saiz kluster bertambah, prestasi akan menjadi lebih teruk dan lebih teruk.

4 Penyelesaian pencerminan rangkaian cakera DRBD yang mesti disebutkan

Secara seni bina, ia agak serupa dengan Replikasi, kecuali ia melaksanakan proses penyegerakan data melalui perisian pihak ketiga Kebolehpercayaan lebih tinggi daripada Replikasi, tetapi ia juga mengorbankan prestasi.
Kelebihan: Perisian ini berkuasa, data dicerminkan merentas hos fizikal pada tahap peranti blok asas, dan tahap penyegerakan yang berbeza boleh dikonfigurasikan berdasarkan keperluan prestasi dan kebolehpercayaan. Operasi IO mengekalkan ketertiban, yang boleh memenuhi keperluan ketat pangkalan data untuk ketekalan data.

Kelemahan: Persekitaran sistem fail tidak teragih tidak boleh menyokong data cermin kelihatan pada masa yang sama, iaitu prestasi dan kebolehpercayaan adalah bercanggah dan tidak boleh digunakan pada persekitaran yang mempunyai keperluan ketat untuk kedua-duanya. Kos penyelenggaraan lebih tinggi daripada Replikasi MySQL.

Selepas bercakap tentang kelebihan dan kekurangan pelbagai seni bina yang biasa digunakan, persoalan yang tinggal ialah bagaimana untuk memilih seni bina yang sesuai untuk digunakan dalam persekitaran pengeluaran sebenar. Setiap orang mempunyai idea dan pengalaman mereka sendiri dalam hal ini, dan penyelesaian mana yang terbaik adalah soal pendapat. Dalam kerja harian, peningkatan seni bina tidak dicapai dalam sekelip mata, tetapi proses evolusi berterusan, pengoptimuman dan penambahbaikan.

Gitui juga telah mengalami proses dari satu titik kepada tuan-hamba kepada tuan-hamba + ketersediaan tinggi dari segi pangkalan data Ia juga mengalami dari satu MySQL+redis kepada MySQL+redis+es, dan akhirnya kepada MySQL+ semasa redis+es +Evolusi codis dan sebagainya. Setiap evolusi adalah untuk menyelesaikan masalah praktikal dan titik kesakitan dalam persekitaran pengeluaran. Dari perspektif MySQL sahaja, tiada seni bina dapat menyelesaikan semua masalah (titik sakit), dan seni bina yang sesuai perlu dipilih berdasarkan situasi sebenar. Penyelesaian yang dilaksanakan oleh kluster MySQL adalah sangat fleksibel dan boleh diubah Ia juga merupakan satu cabaran kepada pekerja MySQL untuk memilih seni bina yang sesuai Ia juga menjadi motivasi untuk kami terus belajar dan mempelajari MySQL.

Atas ialah kandungan terperinci Analisis ringkas seni bina MySQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:linuxprobe.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam