MariaDB
 sql >> Teknologi Basis Data >  >> RDS >> MariaDB

Cara Menyebarkan MariaDB Cluster 10.5 untuk Ketersediaan Tinggi

Penerapan MariaDB Cluster 10.5 telah didukung di ClusterControl sejak versi 1.8.1.

MariaDB 10.5 dilengkapi dengan:

  • Hak Istimewa Lebih Detail

  • Peningkatan Kinerja InnoDB

  • Dukungan Penuh GTID untuk Galera Cluster

  • Metadata Lainnya untuk Replikasi dan Log Biner

  • Pernyataan sintaksis SQL lainnya (pernyataan MENGEMBALIKAN ke INSERT, EXCEPT ALL dan INTERSECT ALL, …)

  • Pembaruan Skema Kinerja agar Sesuai dengan MySQL 5.7

  • Mesin Penyimpanan S3

Anda dapat memeriksa lebih lanjut di blog kami sebelumnya 

Untuk detail selengkapnya tentang rilis versi khusus ini, lihat apa yang baru di MariaDB 10.5? Beberapa perubahan paling signifikan dari versi 10.4 ke 10.5 meliputi:

  • Konsistensi GTID 

  • Inkonsistensi cluster/pemungutan suara kesalahan 

  • operasi DDL yang tidak memblokir (hanya tersedia pada versi perusahaan)

  • Kotak hitam (hanya tersedia pada versi perusahaan) 

  • Memperbarui Perpustakaan wsrep Galera-nya, dengan versi terbaru 26.4.6

Awalnya, Dukungan Transaksi XA diharapkan untuk rilis ini (jangan bingung karena Transaksi XA didukung oleh Server MariaDB tetapi tidak di Galera Cluster). Namun, karena beberapa implikasi kinerja, MariaDB Galera Cluster tidak mendukung transaksi XA.

Dalam blog ini, kita akan membahas cara menerapkan MariaDB Cluster 10.5 untuk ketersediaan tinggi.

Cluster MariaDB Untuk Ketersediaan Tinggi

Cluster MariaDB pada dasarnya adalah Cluster Galera yang menggunakan implementasi MariaDB sebagai lapisan database untuk berinteraksi dengan mesin InnoDB atau XtraDB. MariaDB Galera Cluster adalah cluster multi-master yang hampir sinkron untuk MariaDB. Ini hanya tersedia di Linux dan mendukung mesin penyimpanan XtraDB/InnoDB (walaupun ada dukungan eksperimental untuk MyISAM — lihat variabel sistem wsrep_replicate_myisam). Saat Galera Cluster digunakan, pembacaan dan penulisan basis data dapat diarahkan ke node mana pun. Setiap node dapat hilang tanpa gangguan dalam operasi dan tanpa menggunakan prosedur failover yang rumit.

Dengan sifat Galera yang diadaptasi dalam MariaDB Cluster, ini adalah solusi ketersediaan tinggi dengan replikasi sinkron, failover, dan sinkronisasi ulang. Ini memberikan manfaat tanpa kehilangan data, tidak ada jeda budak, skalabilitas baca dan tulis, dan ketersediaan tinggi di pusat data yang berbeda.

Men-deploy MariaDB Cluster 10.5

MariaDB menyediakan pengaturan yang mudah dan sederhana untuk menginstal MariaDB Cluster 10.5 Anda. Proses manual bisa jadi membosankan, tetapi dengan skrip otomatis yang disediakan oleh MariaDB, repositori dapat diatur sesuai dengan versi database target Anda, jenis OS, dan versi OS.

Untuk latihan ini, saya memiliki pengaturan Galera Cluster 3-simpul berikut dengan alamat IP berikut:192.168.40.210, 192.168.40.220, 192.168.40.230.

Siapkan Repositori Anda

Seperti yang disebutkan sebelumnya, MariaDB memiliki skrip bernama mariadb_repo_setup, dan mudah digunakan. Anda dapat menentukan versi target database Anda, jenis OS, dan versi OS Anda.

Misalnya, saya menginstal menggunakan EL 8:

curl -LsS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup |  sudo bash -s -- --mariadb-server-version="mariadb-10.5" --os-type=rhel --os-version=8

atau menginstalnya di Ubuntu Focal Fossa,

curl -LsS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup |  sudo bash -s -- --mariadb-server-version="mariadb-10.5" --os-type=ubuntu --os-version=focal

Perhatikan bahwa saat menggunakan skrip mariadb_repo_setup, ini memerlukan paket apt-transport-https sebagai dependensi. Jadi instal paket ini terlebih dahulu sebelum Anda dapat memanfaatkan skrip mariadb_repo_setup.

apt update

apt install apt-transport-https

Sekarang, jalankan perintah ke tiga node Anda sesuai dengan OS mereka. Tentu saja, versi MariaDB harus 10.5.

Mengatur Konfigurasi MySQL

File konfigurasi bergantung pada sumber daya server Anda, jenis lingkungan server, dan alamat IP yang ditetapkan. Untuk blog ini, Anda dapat menggunakan konfigurasi konfigurasi MariaDB Cluster/PXC siap produksi yang kami gunakan untuk menerapkan di database Percona XtraDB Cluster/MariaDB Cluster menggunakan ClusterControl. Variabel penting yang Anda butuhkan atau dapat berubah adalah sebagai berikut:

  • innodb_buffer_pool_size — Setel kumpulan buffer dari 70% - 80% RAM yang tersedia di server Anda

  • wsrep_provider — Jalur pustaka yang dikompilasi Galera. Untuk Enterprise Linux, jalurnya adalah  /usr/lib64/galera-4/libgalera_smm.so. Sedangkan Debian/Ubuntu ada di /usr/lib/galera/libgalera_smm.so.

  • wsrep_node_address — Ini adalah alamat IP node

  • wsrep_sst_method — Anda dapat mengubahnya, tetapi sebaiknya gunakan mariabackup. Kemungkinan nilai yang dapat Anda pilih adalah rsync, mysqldump, xtrabackup, xtrabackup-v2, mariabackup.

  • wsrep_cluster_name — Nama Cluster MariaDB Anda. Itu harus identik dengan semua node Anda dalam satu Cluster MariaDB.

  • wsrep_cluster_address — Ini berisi alamat node Anda dalam cluster. Itu harus berupa IP, nama host, atau FQDN yang valid.

  • wsrep_node_name — Nama node Anda. Nama dapat digunakan di wsrep_sst_donor sebagai donor pilihan. Perhatikan bahwa beberapa node dalam sebuah cluster dapat memiliki nama yang sama.

Untuk menjalankan SST, pengguna dan sandi untuk bagian berikut [mysqldump], [xtrabackup], dan [mysqld] dapat diubah jika Anda mau. Untuk latihan ini, mari kita tetap sederhana, dan Anda bisa membiarkan nilainya apa adanya.

Sekarang, salin file konfigurasi dan letakkan di /etc/my.cnf. Lakukan ini pada ketiga node Galera Anda.

Menginstal Paket yang Diperlukan

Instal paket untuk ketiga node Galera. Ikuti perintah di bawah ini berdasarkan lingkungan OS target Anda.

Untuk RHEL/Rocky/AlmaLinux:

sudo yum install MariaDB-server MariaDB-client galera-4 MariaDB-backup

Untuk Debian/Ubuntu:

sudo apt update

sudo apt-get install mariadb-server galera-4 mariadb-client libmariadb3 mariadb-backup mariadb-common

Setelah penginstalan selesai, hentikan proses MariaDB dan inisialisasi cluster sebagai node tunggal. Ini akan mem-bootstrap Cluster Galera Anda. Pada tahap ini, saya menjalankannya di node 192.168.40.210.

$ /usr/bin/galera_new_cluster

Buat Pengguna SST/IST

Buat pengguna cadangan, yang akan digunakan untuk SST atau IST. Jalankan hanya pernyataan SQL berikut di bawah ini pada node pertama yang telah Anda mulai cluster. Pada tahap ini, saya telah mengeksekusinya di node 192.168.40.210.

CREATE USER [email protected] IDENTIFIED BY 'backuppassword';

GRANT PROCESS, RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'backupuser'@'localhost';

Pada titik ini, kita sudah menyiapkan dan siap untuk menghubungkan node yang tersisa.

Mulai Server MariaDB

Sekarang kita telah menyiapkan node pertama. Kami siap untuk menghubungkan node yang tersisa. Cukup, mulai saja layanan MariaDB. Jalankan saja perintah di bawah ini:

systemctl start mariadb

Jalankan perintah untuk node yang tersisa satu per satu. Pada titik ini, semua node sinkron.

Menambahkan Steroid Untuk MariaDB Cluster 10.5 Anda untuk Ketersediaan Tinggi

Kemungkinan, menerapkan MariaDB Cluster 10.5 untuk ketersediaan tinggi mungkin tidak mencukupi kebutuhan Anda dalam penyiapan produksi. Menambahkan lebih banyak steroid, seperti menginstal HAProxy bersama dengan Keepalive untuk redundansi Anda, akan memberikan ketersediaan yang lebih tinggi untuk lingkungan database Anda.

Mengatur HAProxy dan Keepalive untuk mendapatkan topologi dan lingkungan yang diinginkan dapat menambah kerumitan. Namun, Anda dapat mengotomatiskan ini dengan ClusterControl. Dengan menggunakan ClusterControl, Anda dapat menerapkan MariaDB Cluster 10.5 dan menambahkan lebih banyak solusi untuk load balancing, seperti ProxySQL, MaxScale, atau garbd. Anda dapat menambahkan Keepalive ke cluster Anda untuk menambahkan solusi redundansi dan auto-failover jika terjadi bencana.

Anda dapat mengunduh uji coba gratis ClusterControl yang memungkinkan Anda menerapkan solusi HA ini dan mengelola seluruh operasi basis data Anda dari satu panel kaca. Kami akan menjelaskan cara men-deploy Cluster MariaDB 10.5 Anda dengan ClusterControl.

Men-deploy Cluster MariaDB 10.5 dengan ClusterControl

Setelah Anda menginstal ClusterControl, klik ikon di sudut kanan atas, dan Anda akan melihat Wisaya penerapan seperti di bawah ini.

Anda dapat mengaturnya dengan mudah. Cukup ikuti serangkaian langkah berdasarkan alur UI.

Terapkan HAProxy Untuk Manajemen Penyeimbangan Beban

Pada titik ini, saya akan menganggap Anda telah menyiapkan MariaDB Cluster 10.5 Anda. Sekarang, mari kita terapkan HAProxy:

Atau, Anda dapat membuka Kelola → Penyeimbang Beban → HAProxy.

Kemudian pilih atau ketikkan alamat tempat HAProxy akan diinstal dan pilih node Galera Anda yang akan dipantau oleh HAProxy. Lihat contoh di bawah ini:

Tambahkan setidaknya dua penerapan HAProxy untuk menambah ketersediaan lainnya. Setiap kali salah satu HAProxy Anda down, aplikasi Anda akan dialihkan ke node lain yang masih tersedia atau online. Ini sangat penting, terutama saat menangani peningkatan basis data atau sistem, selain dari peristiwa bencana atau bencana.

Terapkan Keepalive

Anda akan menggunakan proses yang sama di atas untuk menerapkan Keepalive, seperti yang ditunjukkan di bawah ini:

Jika Anda perhatikan, saya memiliki dua instance HAProxy yang akan saya instal Keepalive , yang akan ada di setiap node tempat HAProxy dijalankan.

Menyelesaikan MariaDB Cluster 10.5 Anda Dengan Ketersediaan Tinggi

Sekarang setelah kami menyiapkan semuanya, Anda akan memiliki lingkungan yang terlihat seperti ini:

Menutup

Pengaturan untuk MariaDB 10.5 Cluster ini memberi Anda manfaat untuk mencapai ketersediaan tinggi dengan beberapa sembilan. HAProxy memberi Anda lebih banyak kemampuan penyeimbangan beban dengan pemisahan baca dan tulisnya, dan Keepalive memastikan bahwa jika salah satu HAProxy Anda mati, itu akan dialihkan ke node berikutnya yang tersedia. Aplikasi Anda hanya akan terhubung ke alamat IP virtual (yang mengikuti VRRP) dan tidak memerlukan konfigurasi atau penyiapan tambahan.

Untuk menambahkan lebih banyak fleksibilitas dan pemisahan baca/tulis dengan hanya memutar hanya di satu port, Anda dapat mengganti HAProxy dengan ProxySQL. Mencapai pengaturan yang sempurna untuk ketersediaan tinggi bisa jadi sulit, dan masing-masing dilengkapi dengan kekurangannya. Namun, yang terpenting adalah tercapainya waktu henti yang rendah atau tidak ada sama sekali.

Untuk kiat lebih lanjut tentang membuat penyiapan MariaDB yang sangat tersedia, lihat bagian ini tentang menerapkan replikasi MariaDB.

Jika Anda ingin tetap mengikuti tren basis data dan praktik terbaik, berlangganan buletin kami dan ikuti kami di Twitter dan LinkedIn.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tanggal &Waktu Lokal Tersedia di MariaDB

  2. Otomatisasi Pemeriksaan Objek Skema Basis Data

  3. Cara Memasang, Mengamankan, dan Menyetel Kinerja Server Database MariaDB

  4. Kisah Transformasional di MariaDB OpenWorks Conference

  5. Bagaimana UUID() Bekerja di MariaDB