Rumah  >  Artikel  >  pangkalan data  >  Susun dan ringkaskan lima penyelesaian ketersediaan tinggi MySQL biasa

Susun dan ringkaskan lima penyelesaian ketersediaan tinggi MySQL biasa

WBOY
WBOYke hadapan
2022-05-31 11:56:182873semak imbas

Artikel ini membawakan anda pengetahuan yang berkaitan tentang mysql, yang terutamanya memperkenalkan isu yang berkaitan dengan penyelesaian ketersediaan tinggi biasa Di sini kita hanya membincangkan kelebihan dan kekurangan penyelesaian ketersediaan tinggi biasa dan ketersediaan tinggi melihat pilihan penyelesaian saya harap ia akan membantu semua orang.

Susun dan ringkaskan lima penyelesaian ketersediaan tinggi MySQL biasa

Pembelajaran yang disyorkan: tutorial video mysql

1. Gambaran Keseluruhan

Kami sedang mempertimbangkan ketersediaan MySQL yang tinggi pangkalan data Semasa mereka bentuk seni bina, kita harus mempertimbangkan aspek berikut:

  • Jika masa henti pangkalan data atau gangguan yang tidak dijangka berlaku, ketersediaan pangkalan data boleh dipulihkan secepat mungkin, dan masa henti boleh dihentikan. dikurangkan sebanyak mungkin untuk memastikan perniagaan tidak akan Terganggu kerana kegagalan pangkalan data.
  • Data nod bukan utama yang digunakan untuk fungsi seperti sandaran dan replika baca sahaja hendaklah konsisten dengan data nod utama dalam masa nyata atau akhirnya.
  • Apabila pertukaran pangkalan data perniagaan berlaku, kandungan pangkalan data sebelum dan selepas suis harus konsisten dan perniagaan tidak akan terjejas kerana data tiada atau data tidak konsisten.

Kami tidak akan membincangkan klasifikasi ketersediaan tinggi secara terperinci di sini Kami hanya akan membincangkan kebaikan dan keburukan penyelesaian ketersediaan tinggi yang biasa digunakan dan pemilihan penyelesaian ketersediaan tinggi.

2. Penyelesaian ketersediaan tinggi

2.1. Master-hamba atau master-master replikasi separa segerak

Gunakan pangkalan data dua nod untuk membina sehala atau dua- cara replikasi separa segerak. Dalam versi selepas 5.7, pengenalan siri ciri baharu seperti replikasi tanpa kehilangan dan replikasi berbilang benang logik menjadikan replikasi separa segerak asli MySQL lebih dipercayai.

Seni bina biasa adalah seperti berikut:
Susun dan ringkaskan lima penyelesaian ketersediaan tinggi MySQL biasa
Ia biasanya digunakan bersama dengan perisian pihak ketiga seperti proksi dan keepalived, yang boleh digunakan untuk memantau kesihatan pangkalan data dan melaksanakan satu siri arahan pengurusan. Jika pangkalan data utama gagal, pangkalan data masih boleh digunakan selepas bertukar kepada pangkalan data siap sedia.

Kelebihan:

  • Seni bina adalah agak mudah, menggunakan replikasi separa segerak asli sebagai asas untuk penyegerakan data
  • Dwi nod, tiada pilihan utama masalah selepas hos dimatikan , anda boleh menukar terus; Bergantung sepenuhnya pada replikasi separa segerak, jika replikasi Separuh segerak merosot kepada replikasi tak segerak, dan ketekalan data tidak dapat dijamin;
  • Pertimbangan tambahan perlu diberikan kepada mekanisme ketersediaan tinggi haproxy dan keepalived.

2.2. Pengoptimuman replikasi separa segerak

    Mekanisme replikasi separa segerak boleh dipercayai. Jika replikasi separa segerak sentiasa berkuat kuasa, data boleh dianggap konsisten. Walau bagaimanapun, disebabkan oleh beberapa sebab objektif seperti turun naik rangkaian, masa replikasi separa segerak dan beralih kepada replikasi tak segerak Dalam kes ini, ketekalan data tidak boleh dijamin. Oleh itu, memastikan replikasi separa segerak sebanyak mungkin boleh meningkatkan ketekalan data.
  • Penyelesaian ini juga menggunakan seni bina dwi-nod, tetapi mempunyai pengoptimuman berfungsi berdasarkan replikasi separa segerak asal, menjadikan mekanisme replikasi separa segerak lebih dipercayai.
  • Penyelesaian pengoptimuman yang boleh anda rujuk adalah seperti berikut:

2.2.1 replikasi dwi saluran

Semi. -masa replikasi segerak kerana Selepas itu, replikasi terputus apabila replikasi ditubuhkan semula, dua saluran ditubuhkan pada masa yang sama Salah satu saluran replikasi separa segerak mula mereplikasi dari kedudukan semasa untuk memastikan hamba mengetahui. kemajuan pelaksanaan hos semasa. Satu lagi saluran replikasi tak segerak mula mengejar data hamba yang ketinggalan. Apabila saluran replikasi tak segerak mengejar kedudukan permulaan replikasi separa segerak, replikasi separa segerak disambung semula.

2.2.2. pelayan fail binlog

Susun dan ringkaskan lima penyelesaian ketersediaan tinggi MySQL biasa

Bina dua saluran replikasi separa segerak, termasuk saluran separa segerak yang disambungkan ke pelayan fail Ia tidak didayakan dalam keadaan biasa Apabila masalah rangkaian merosot dalam replikasi separa segerak induk-hamba, saluran replikasi separa segerak dengan pelayan fail dimulakan. Selepas replikasi separa segerak tuan-hamba disambung semula, tutup saluran replikasi separa segerak dengan pelayan fail.

Kelebihan:

Nod dwi memerlukan sumber yang lebih sedikit dan mudah digunakan

Seni binanya mudah, tiada masalah untuk memilih induk, hanya beralih terus 2.2.2. binlog文件服务器 Berbanding dengan replikasi asli, Replikasi separa segerak yang dioptimumkan boleh memastikan ketekalan data dengan lebih baik.

Kelemahan:

Perlu mengubah suai kod sumber kernel atau menggunakan protokol komunikasi mysql. Anda perlu mempunyai pemahaman tertentu tentang kod sumber dan dapat melakukan tahap pembangunan sekunder tertentu.

Masih bergantung pada replikasi separa segerak, yang secara asasnya tidak menyelesaikan masalah ketekalan data.


2.3. Pengoptimuman seni bina ketersediaan tinggi

Kembangkan pangkalan data dwi-nod kepada pangkalan data berbilang nod atau kluster pangkalan data berbilang nod. Anda boleh memilih kluster dengan satu tuan dan dua hamba, satu tuan dan berbilang hamba, atau berbilang tuan dan berbilang hamba mengikut keperluan anda.

Disebabkan replikasi separa segerak, terdapat ciri bahawa replikasi separa segerak dianggap berjaya apabila respons yang berjaya daripada hamba diterima Oleh itu, kebolehpercayaan replikasi separa segerak berbilang hamba adalah lebih baik daripada kebolehpercayaan replikasi separa segerak hamba tunggal. Selain itu, kebarangkalian berbilang nod turun pada masa yang sama adalah kurang daripada kebarangkalian satu nod turun Oleh itu, pada tahap tertentu, seni bina berbilang nod boleh dianggap mempunyai ketersediaan tinggi yang lebih baik daripada dwi-nod seni bina.

Namun, disebabkan bilangan pangkalan data yang banyak, perisian pengurusan pangkalan data diperlukan untuk memastikan kebolehselenggaraan pangkalan data. Anda boleh memilih MMM, MHA atau pelbagai versi proksi, dsb. Penyelesaian biasa adalah seperti berikut:

2.3.1 Kluster berbilang nod MHA

Susun dan ringkaskan lima penyelesaian ketersediaan tinggi MySQL biasa
Pengurus MHA akan mengesan nod induk dalam gugusan secara berkala . Apabila tuan muncul Sekiranya berlaku kegagalan, ia secara automatik boleh mempromosikan hamba dengan data terkini kepada tuan baharu, dan kemudian mengalihkan semua hamba lain kepada tuan baharu Keseluruhan proses failover adalah telus sepenuhnya kepada aplikasi.

MHA Node berjalan pada setiap pelayan MySQL Fungsi utamanya adalah untuk memproses log binari semasa pertukaran untuk memastikan penukaran meminimumkan kehilangan data.

MHA juga boleh dilanjutkan kepada kluster berbilang nod berikut:
Susun dan ringkaskan lima penyelesaian ketersediaan tinggi MySQL biasa
Kelebihan:

boleh mengesan dan memindahkan kerosakan secara automatik;
lebih berskala Baik , bilangan dan struktur nod MySQL boleh dikembangkan mengikut keperluan
Berbanding dengan replikasi MySQL dua nod, MySQL tiga nod/multi-nod mempunyai kebarangkalian yang lebih rendah untuk tidak tersedia

Kelemahan:

Sekurang-kurangnya tiga nod diperlukan, yang memerlukan lebih banyak sumber daripada dua nod;
Logiknya lebih kompleks, dan lebih sukar untuk menyelesaikan masalah dan mengesan masalah selepas kegagalan berlaku;
Konsistensi data masih dijamin oleh replikasi separa segerak asli masih terdapat risiko ketidakkonsistenan data; >
Zookeeper menggunakan algoritma yang diedarkan untuk memastikan pengelompokan Untuk ketekalan data, menggunakan zookeeper secara berkesan boleh memastikan ketersediaan tinggi proksi dan mengelakkan partition rangkaian dengan lebih baik.

Kelebihan:

lebih menjamin ketersediaan tinggi keseluruhan sistem, termasuk proksi, MySQL

mempunyai skalabiliti yang baik dan boleh dikembangkan kepada Besar kelompok skala;Susun dan ringkaskan lima penyelesaian ketersediaan tinggi MySQL biasa

Kelemahan:

Ketekalan data masih bergantung pada replikasi separa segerak mysql asli;

Dengan pengenalan zk, logik keseluruhan sistem menjadi lebih kompleks;

2.4 ketekalan data.

2.4.1 storan kongsi SAN

Konsep SAN ialah membenarkan rangkaian berkelajuan tinggi terus antara peranti storan dan pemproses (pelayan) (berbanding dengan LAN ) sambungan, melalui mana penyimpanan data terpusat dicapai. Seni bina yang biasa digunakan adalah seperti berikut:

Apabila menggunakan storan kongsi, pelayan MySQL boleh memasang sistem fail secara normal dan mengendalikannya Jika pangkalan data utama rosak, pangkalan data siap sedia boleh memasang sistem fail yang sama, memastikan pangkalan data utama dan pangkalan data siap sedia menggunakan data yang sama. Kelebihan:

Dua nod sudah mencukupi, penggunaan mudah, logik pensuisan yang mudah;

Kelemahan: Susun dan ringkaskan lima penyelesaian ketersediaan tinggi MySQL biasa
Perlu mempertimbangkan ketersediaan storan kongsi yang tinggi;

Mahal;

2.4.2 replikasi cakera DRBD

DRBD ialah penyelesaian storan replikasi blok berasaskan perisian berasaskan rangkaian Ia digunakan terutamanya untuk pencerminan data cakera, sekatan, volum logik, dsb. Apabila pengguna menulis data secara setempat Apabila cakera disambungkan. data juga akan dihantar ke cakera hos lain dalam rangkaian, supaya data hos tempatan (nod utama) dan hos jauh (nod siap sedia) boleh disegerakkan dalam masa nyata. Seni bina yang biasa digunakan adalah seperti berikut:


Apabila terdapat masalah dengan hos tempatan, salinan data yang sama masih disimpan pada hos jauh dan boleh terus digunakan, memastikan keselamatan data.

DRBD ialah teknologi replikasi segerak peringkat pantas yang dilaksanakan oleh modul kernel Linux, yang boleh mencapai kesan storan kongsi yang sama seperti SAN. Kelebihan:

Hanya dua nod diperlukan, penggunaan mudah dan logik pensuisan yang mudah;
Susun dan ringkaskan lima penyelesaian ketersediaan tinggi MySQL biasaKelemahan:

Mempunyai kesan yang lebih besar pada prestasi io;

Pustaka hamba tidak menyediakan operasi baca; Protokol teragih Ia boleh menyelesaikan masalah ketekalan data dengan baik. Penyelesaian yang lebih biasa adalah seperti berikut:

2.5.1. Kelompok MySQL

Kluster MySQL ialah penyelesaian penggunaan kluster rasmi Ia menggunakan enjin storan NDB untuk menyandarkan data berlebihan dalam masa nyata untuk mencapai ketersediaan dan data yang tinggi ketekalan pangkalan data.
Susun dan ringkaskan lima penyelesaian ketersediaan tinggi MySQL biasa

Kelebihan:

Semua menggunakan komponen rasmi dan tidak bergantung pada perisian pihak ketiga
Boleh mencapai konsistensi data yang kukuh; Kelemahan :

Ia jarang digunakan di China

Konfigurasinya lebih kompleks dan memerlukan penggunaan enjin storan NDB, yang agak berbeza daripada enjin MySQL biasa

Sekurang-kurangnya tiga nod;

2.5.2. Galera

Kluster ketersediaan tinggi MySQL berdasarkan Galera ialah penyelesaian kluster MySQL untuk penyegerakan data berbilang induk tiada titik kegagalan tunggal, dan mempunyai ketersediaan yang tinggi. Seni bina biasa adalah seperti berikut:

Susun dan ringkaskan lima penyelesaian ketersediaan tinggi MySQL biasaKelebihan:

Penulisan berbilang induk, replikasi tanpa lengah, memastikan ketekalan data yang kukuh

Terdapat a komuniti matang , digunakan oleh syarikat Internet secara besar-besaran;

Failover automatik, penambahan automatik dan penyingkiran nod

Kelemahan:

Memerlukan tampalan wsrep untuk nod MySQL asli

Sahaja enjin storan innodb yang disokong

Sekurang-kurangnya tiga nod; . Algoritma ini dianggap paling cekap seumpamanya. Gabungan Paxos dan MySQL boleh mencapai konsistensi yang kukuh dalam data MySQL yang diedarkan. Seni bina biasa adalah seperti berikut:

Kelebihan:

Penulisan berbilang induk, replikasi tanpa kelewatan, memastikan ketekalan data yang kukuh

Mempunyai asas teori yang matang;

Failover automatik, penambahan automatik dan penyingkiran nod; Susun dan ringkaskan lima penyelesaian ketersediaan tinggi MySQL biasa
Kelemahan:

Hanya menyokong enjin storan innodb
Sekurang-kurangnya tiga nod; 🎜>
Memandangkan keperluan orang ramai untuk konsistensi data terus meningkat, semakin banyak kaedah sedang dicuba untuk menyelesaikan masalah ketekalan data teragih, seperti pengoptimuman MySQL itu sendiri, pengoptimuman seni bina kluster MySQL, Paxos, Raft, Pengenalan algoritma 2PC dan sebagainya.

Kaedah menggunakan algoritma teragih untuk menyelesaikan masalah ketekalan data pangkalan data MySQL semakin diterima oleh orang ramai Satu siri produk matang seperti PhxSQL, MariaDB Galera Cluster, Percona XtraDB Cluster, dll. menjadi semakin popular semakin digunakan secara besar-besaran.

Dengan GA rasmi MySQL Group Replication, menggunakan protokol yang diedarkan untuk menyelesaikan masalah konsistensi data telah menjadi hala tuju arus perdana. Dijangkakan bahawa lebih banyak penyelesaian cemerlang akan dicadangkan, dan masalah ketersediaan tinggi MySQL dapat diselesaikan dengan lebih baik.

Pembelajaran yang disyorkan:

tutorial video mysql

Atas ialah kandungan terperinci Susun dan ringkaskan lima penyelesaian ketersediaan tinggi MySQL biasa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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