Rumah  >  Artikel  >  pangkalan data  >  Mari analisa teknologi seni bina ketersediaan tinggi MySQL bersama-sama

Mari analisa teknologi seni bina ketersediaan tinggi MySQL bersama-sama

WBOY
WBOYke hadapan
2022-02-22 18:12:131972semak imbas

Artikel ini membawakan anda pengetahuan yang berkaitan tentang analisis teknikal mysql seni bina ketersediaan sederhana dan tinggi Ia terutamanya memperkenalkan analisis teknikal MMM, seni bina master-hamba MySQL dan isu berkaitan Kluster membantu Semua orang membantu.

Mari analisa teknologi seni bina ketersediaan tinggi MySQL bersama-sama

Penerangan Latar Belakang

Dengan perkembangan teknologi maklumat, perusahaan semakin bergantung pada pengurusan maklumat, dan maklumat data setiap aplikasi perniagaan disimpan terutamanya dalam In pangkalan data, perusahaan mempunyai keperluan yang semakin tinggi untuk kesinambungan akses kepada data ini Untuk mengelakkan pelbagai kerugian yang disebabkan oleh gangguan data, ketersediaan pangkalan data yang tinggi telah menjadi keutamaan dalam pembinaan maklumat perusahaan. Pada masa yang sama, perniagaan utama dalam industri atau bidang yang berkaitan dengan ekonomi negara dan mata pencarian rakyat, seperti telekomunikasi, kewangan, tenaga, dan industri ketenteraan, memerlukan ketersediaan yang tinggi untuk penyimpanan data utama Sistem data mesti dijamin berfungsi 24/. 7 untuk mengelakkan kehilangan data dan kerosakan data. Klik untuk mendapatkan bahan pembelajaran pengaturcaraan

Pengenalan kepada seni bina ketersediaan tinggi

Seni bina ketersediaan tinggiIa pada asasnya adalah standard untuk perkhidmatan aplikasi dan perkhidmatan pangkalan data untuk menjadi berkualiti tinggi. Untuk sistem, mungkin termasuk banyak modul, seperti aplikasi bahagian hadapan, cache, pangkalan data, carian, baris gilir mesej, dll. Setiap modul perlu tersedia untuk memastikan ketersediaan tinggi keseluruhan sistem . Untuk perkhidmatan pangkalan data, ketersediaan tinggi mungkin lebih kompleks Ketersediaan perkhidmatan kepada pengguna memerlukan bukan sahaja akses, tetapi juga jaminan ketepatan Oleh itu, ketersediaan pangkalan data yang tinggi memerlukan lebih banyak pengesahan.

Klasifikasi Seni Bina Ketersediaan Tinggi MySQL

  • MMM untuk MySQL untuk mencapai ketersediaan tinggi
  • MHA untuk MySQL untuk mencapai ketersediaan tinggi
  • Master untuk MySQL untuk mencapai mod Kluster ketersediaan tinggi untuk mencapai ketersediaan tinggi daripada seni bina
  • MySQL

Analisis teknikal MMM

MMM (Pengurus replikasi Master-Master untuk MySQL) ialah satu set program skrip A yang menyokong failover dwi-master dan pengurusan harian dwi-master.

  • MMM dibangunkan menggunakan bahasa Perl dan digunakan terutamanya untuk memantau dan mengurus replikasi Master-Master (dual-master) MySQL Walaupun ia dipanggil replikasi dwi-induk. hanya satu dibenarkan pada masa yang sama dalam perniagaan Tulis kepada satu tuan, dan sediakan perkhidmatan baca separa pada tuan ganti yang lain untuk mempercepatkan pemanasan tuan ganti pada saat pertukaran tuan-tuan

  • Tamat pemantauan MMM akan Menyediakan berbilang IP maya (VIP), termasuk VIP boleh tulis dan berbilang VIP yang boleh dibaca Melalui pengurusan penyeliaan, IP ini akan terikat kepada mysql yang tersedia. ia akan vip dipindahkan ke mysql lain.

  • Di satu pihak, program skrip MMM melaksanakan fungsi failover Sebaliknya, skrip alat dalaman tambahannya juga boleh mencapai pengimbangan beban baca berbilang hamba.

  • Pakej ini juga boleh membaca baki beban merentas mana-mana bilangan pelayan hamba berdasarkan konfigurasi tuan-hamba standard, jadi anda boleh menggunakannya untuk memulakan kumpulan yang direplikasi pelayan IP Maya, di samping itu, ia juga mempunyai skrip untuk melaksanakan sandaran data dan fungsi penyegerakan semula antara nod.

Analisis komponen asas MMM

    mmm_mond: Proses pemantauan, bertanggungjawab untuk semua kerja pemantauan, memutuskan dan memproses semua aktiviti peranan nod . Oleh itu, skrip perlu dijalankan pada penyelia.
  • mmm_agentd: Proses ejen berjalan pada setiap pelayan msql, menyelesaikan kerja siasatan pemantauan dan melaksanakan tetapan perkhidmatan jauh yang mudah. Skrip ini perlu dijalankan pada mesin yang dipantau.
  • mmm_control: Skrip ringkas yang menyediakan arahan untuk mengurus mmm_mond.

Prinsip pelaksanaan asas MMM

MMM menyediakan cara automatik dan manual untuk mengalih keluar IP maya pelayan dengan kelewatan replikasi yang tinggi dalam sekumpulan pelayan, dan ia juga boleh menyandarkan data dan mencapai penyegerakan data antara dua nod.

MySQL sendiri tidak menyediakan penyelesaian failover replikasi pelayan boleh dicapai melalui penyelesaian MMM, dengan itu mencapai ketersediaan tinggi mysql.

Senario penggunaan MMM

Memandangkan MMM tidak dapat menjamin konsistensi data sepenuhnya, MMM sesuai untuk aplikasi yang memerlukan ketekalan data tidak begitu tinggi, tetapi Senario di mana anda ingin memastikan ketersediaan perniagaan sepenuhnya.

Bagi perniagaan yang mempunyai keperluan tinggi untuk konsistensi data, adalah sangat tidak disyorkan untuk menggunakan seni bina ketersediaan tinggi seperti MMM.

    Projek MMM datang daripada Google: code.google.com/p/mysql-mas…
  • Tapak web rasmi ialah: mysql-mmm.org
Pengenalan kepada MHA

MHA (Master High Availability) pada masa ini merupakan penyelesaian yang agak matang untuk ketersediaan tinggi MySQL Ia dibangunkan oleh Youshimaton dari Syarikat DeNA Jepun (kini bekerja di Facebook) dan merupakan satu set yang sangat baik penyelesaian. Perisian ketersediaan tinggi untuk promosi failover dan master-slave dalam persekitaran ketersediaan tinggi MySQL. Semasa proses failover MySQL, MHA boleh melengkapkan operasi failover pangkalan data secara automatik dalam masa 0 hingga 30 saat, dan semasa proses failover, MHA boleh memastikan konsistensi data pada tahap yang terbaik untuk mencapai ketersediaan Tinggi yang sebenar dalam erti kata.

  • MHA ialah program ketersediaan tinggi MySQL sumber terbuka Apabila MHA memantau kegagalan nod induk, ia akan secara automatik mempromosikan nod hamba dengan data terkini untuk menjadi nod induk baharu.

  • MHA akan mendapatkan maklumat tambahan daripada nod lain untuk mengelakkan masalah konsistensi, iaitu, MHA akan mendapatkan maklumat data daripada nod hamba lain dan menghantar maklumat ke nod induk A nod hamba yang terdekat, supaya apabila nod induk gagal, nod hamba ini akan dinaikkan ke nod induk, dan nod hamba ini akan mempunyai semua maklumat data nod hamba yang lain.

  • MHA juga menyediakan fungsi pensuisan dalam talian bagi nod induk, iaitu menukar nod induk/hamba atas permintaan.

Komponen asas MHA

MHA terdiri daripada dua bahagian: Pengurus MHA (nod pengurusan) dan Nod MHA (nod data).

Pengurus MHA boleh digunakan secara berasingan pada mesin bebas untuk mengurus berbilang kluster induk-hamba, atau ia boleh digunakan pada nod hamba.

Prinsip pelaksanaan MHA

  • MHA Node berjalan pada setiap pelayan MySQL dengan kerap akan mengesan nod induk dalam kelompok Apabila induk gagal, ia boleh secara automatik The slave dengan data terkini dinaikkan pangkat kepada tuan baharu, dan kemudian semua hamba lain dialihkan kepada tuan baharu. Keseluruhan proses failover adalah telus sepenuhnya kepada aplikasi.
  • Semasa proses failover automatik MHA, MHA cuba menyimpan log binari daripada pelayan utama yang diturunkan untuk memastikan data tidak hilang sepenuhnya, tetapi ini tidak selalu dapat dilaksanakan.
  • Sebagai contoh, jika perkakasan pelayan utama gagal atau tidak boleh diakses melalui ssh, MHA tidak boleh menyimpan log binari dan hanya gagal dan kehilangan data terkini. Menggunakan replikasi separa segerak MySQL 5.5, anda boleh mengurangkan risiko kehilangan data.
  • MHA boleh digabungkan dengan replikasi separa segerak Jika hanya satu hamba telah menerima log binari terkini, MHA boleh menggunakan log binari yang terkini kepada semua pelayan hamba yang lain, dengan itu memastikan data semua nod.

Senario Penggunaan MHA

Pada masa ini, MHA terutamanya menyokong seni bina satu tuan, berbilang hamba.

  • Untuk membina MHA, kluster replikasi mesti mempunyai sekurang-kurangnya tiga pelayan pangkalan data, satu tuan dan dua hamba, iaitu, seorang bertindak sebagai tuan, seorang bertindak sebagai tuan sandaran, dan yang lain bertindak sebagai perpustakaan hamba.

  • Oleh kerana sekurang-kurangnya tiga pelayan diperlukan dan disebabkan pertimbangan kos mesin, Taobao juga telah mengubah suainya atas dasar ini, Taobao TMHA menyokong satu tuan dan satu hamba.

  • Dari perspektif kod, MHA ialah satu set skrip Perl Jadi saya percaya bahawa dengan kekuatan teknikal Alibaba, tidak sukar untuk menukar MHA untuk menyokong seorang tuan dan seorang hamba .

Seni bina tuan-hamba MySQL

Seni bina jenis ini biasanya digunakan oleh syarikat pemula, dan ia juga memudahkan pengembangan seterusnya langkah demi langkah

Ciri-ciri seni bina ini

  1. Penggunaan kos rendah, cepat dan mudah
  2. Pengasingan membaca dan menulis
  3. Ia juga boleh mengurangkan tekanan membaca pangkalan data dengan menambah hamba pangkalan data dalam masa
  4. Pangkalan data induk Titik kegagalan tunggal
  5. Masalah ketekalan data (disebabkan oleh kelewatan penyegerakan)

  1. Perisian ketersediaan tinggi boleh menggunakan Heartbeat, yang bertanggungjawab sepenuhnya untuk VIP, Pengurusan data dan perkhidmatan DRBD
  2. Penukaran automatik dan pantas selepas kegagalan induk, dan pangkalan data hamba masih boleh menyegerakkan data dengan pangkalan data induk baharu melalui VIP
  3. Pangkalan data hamba juga menyokong pemisahan baca-tulis dan boleh digunakan Middleware atau pelaksanaan program

Gambaran Keseluruhan Kluster MySQL

Teknologi Kluster MySQL menyediakan ciri redundansi untuk MySQL dalam sistem teragih, meningkatkan Keselamatan boleh meningkatkan kebolehpercayaan sistem dan kesahihan data. Kelompok MySQL memerlukan satu set komputer, setiap komputer boleh difahami sebagai nod, dan fungsi nod ini berbeza. Kluster MySQL boleh dibahagikan kepada tiga jenis nod mengikut fungsinya: nod pengurusan, nod data dan nod SQL. Komputer dalam kluster boleh menjadi nod tertentu, atau koleksi dua atau tiga jenis nod ini digabungkan untuk menyediakan pengurusan data Kluster berprestasi tinggi untuk aplikasi

Pada masa ini, jumlah data perusahaan semakin besar dan lebih besar, jadi keperluan untuk MySQL telah ditingkatkan lagi Kebanyakan penyelesaian ketersediaan tinggi sebelumnya biasanya mempunyai kelemahan tertentu, seperti penyelesaian Replikasi MySQL Ia mengambil masa tertentu untuk mengesan sama ada Master masih hidup jika penukaran tuan-hamba diperlukan, Ia juga mengambil masa tertentu, jadi ketersediaan yang tinggi sangat bergantung pada perisian pemantauan dan alat pengurusan automatik. Dengan pembangunan berterusan MySQL Cluster, ia akhirnya telah bertambah baik dalam prestasi dan ketersediaan tinggi

Konsep asas MySQL Cluster

MySQL Cluster hanyalah teknologi gugusan MySQL , terdiri daripada sebuah kumpulan komputer. Setiap komputer boleh menyimpan satu atau lebih nod, termasuk pelayan MySQL, nod data Kluster DNB, pengurusan nod lain, dan program capaian data khusus ini digabungkan untuk menyediakan Pengurusan data Kluster yang bertambah baik dengan prestasi tinggi, tinggi ketersediaan dan kebolehskalaan

Proses akses Kluster MySQL secara kasarnya seperti ini Aplikasi biasanya menggunakan algoritma pengimbangan beban tertentu untuk mengedarkan akses data kepada nod SQL yang berbeza melakukan akses data kepada nod data dan mengembalikan hasil data daripada nod data. Nod pengurusan Ia hanya mengkonfigurasi dan mengurus nod SQL dan nod data

Fahami nod Kluster MySQL

Kluster MySQL boleh dibahagikan kepada tiga jenis nod mengikut jenis nod, iaitu nod pengurusan, SQL nod, Data nod, semua nod ini membentuk sistem kluster MySQL yang lengkap Malah, data disimpan dalam enjin storan pelayan storan NDB, dan struktur jadual disimpan dalam pelayan MySQL Pelayan MySQL dan pengurusan kluster Pelayan menguruskan pelayan storan NDB melalui alat pengurusan ndb_mgmd

[1. Fail config.ini biasanya dikonfigurasikan untuk mengkonfigurasi bilangan salinan yang perlu dikekalkan dalam kelompok, berapa banyak memori yang perlu diperuntukkan untuk data dan indeks pada setiap nod data, alamat IP dan laluan cakera untuk menyimpan data pada setiap nod data;

Nod pengurusan biasanya mengurus fail konfigurasi Kluster dan log Kluster. Setiap nod dalam kluster mendapatkan maklumat konfigurasi daripada pelayan pengurusan dan meminta cara untuk menentukan di mana pelayan pengurusan berada. Jika peristiwa baharu berlaku dalam nod, nod menghantar maklumat jenis acara ini kepada pelayan pengurusan dan menulis maklumat ini ke log Kluster; Secara amnya, sekurang-kurangnya satu nod pengurusan diperlukan dalam MySQL Sistem kluster , ia juga perlu diperhatikan bahawa kerana nod data dan nod SQL perlu membaca maklumat konfigurasi Kluster sebelum memulakan, nod pengurusan biasanya dimulakan dahulu;

Nod SQL hanyalah pelayan mysqld Aplikasi tidak boleh mengakses nod data secara langsung. Ia hanya boleh mengakses nod data melalui nod SQL untuk mengembalikan data. Mana-mana nod SQL disambungkan kepada semua nod storan, jadi apabila mana-mana nod storan gagal, nod SQL boleh memindahkan permintaan ke nod storan lain untuk dilaksanakan. Secara umumnya, lebih banyak nod SQL, lebih baik Lebih banyak nod SQL, lebih kecil beban yang diberikan kepada setiap nod SQL, dan lebih baik prestasi keseluruhan sistem; >

Nod data digunakan untuk menyimpan data dalam Kluster MySQL mereplikasi data antara nod data Jika mana-mana nod gagal, akan sentiasa ada nod data lain untuk menyimpan data nod logik boleh diedarkan pada komputer yang berbeza Kluster mempunyai sekurang-kurangnya tiga komputer Untuk memastikan perkhidmatan kluster dapat dikekalkan secara normal, nod pengurusan biasanya diletakkan pada hos yang berasingan.

tutorial video mysql

Atas ialah kandungan terperinci Mari analisa teknologi seni bina ketersediaan tinggi MySQL bersama-sama. 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