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

Cara Mengelola MariaDB 10.3 dengan ClusterControl

MariaDB Server bukan lagi tiruan langsung dari MySQL. Itu tumbuh menjadi garpu matang, yang mengimplementasikan fungsionalitas baru yang mirip dengan apa yang ditawarkan sistem basis data berpemilik di hulu. MariaDB 10.3 sangat memperluas daftar fitur perusahaan, dan dengan SQL_MODE=Oracle baru menjadi pilihan menarik bagi perusahaan yang ingin memigrasi database Oracle mereka ke database open source. Namun, manajemen operasional adalah area di mana masih ada beberapa hal yang harus dilakukan, dan MariaDB mengharuskan Anda membuat skrip sendiri.

Mungkin kesempatan yang baik untuk melihat ke dalam sistem otomasi?

Prosedur otomatis akurat dan konsisten. Mereka dapat memberi Anda pengulangan yang sangat dibutuhkan sehingga Anda dapat meminimalkan risiko perubahan dalam sistem produksi. Namun, karena database open source modern berkembang begitu cepat, menjaga sistem manajemen Anda tetap setara dengan semua fitur baru menjadi lebih menantang.

Langkah alami berikutnya adalah mencari platform otomatisasi. Ada banyak platform yang dapat Anda gunakan untuk menerapkan sistem. Wayang, Koki, dan Ansible mungkin adalah contoh terbaik dari tren baru itu. Platform ini cocok untuk penyebaran cepat berbagai layanan perangkat lunak. Mereka sempurna untuk penerapan, tetapi tetap mengharuskan Anda untuk mempertahankan kode, mencakup perubahan fitur, dan biasanya, hanya mencakup satu aspek pekerjaan Anda. Hal-hal seperti pencadangan, kinerja, dan pemeliharaan masih memerlukan alat atau skrip eksternal.

Di sisi lain, kami memiliki platform cloud, dengan antarmuka yang dipoles dan berbagai layanan tambahan untuk pengalaman yang terkelola sepenuhnya. Namun, itu mungkin tidak layak; misalnya, lingkungan hibrid tempat Anda mungkin menggunakan cloud, tetapi dengan jejak lokal yang signifikan.

Jadi, bagaimana dengan lapisan manajemen khusus untuk database MariaDB Anda?

ClusterControl dirancang untuk mengotomatiskan penerapan dan pengelolaan MariaDB serta database sumber terbuka lainnya. Inti dari ClusterControl adalah fungsionalitas yang memungkinkan Anda mengotomatiskan tugas database yang harus Anda lakukan secara teratur, seperti menerapkan instance dan cluster database baru, mengelola cadangan, ketersediaan tinggi dan failover, perubahan topologi, peningkatan, penskalaan node baru, dan banyak lagi.

Instalasi ClusterControl

Untuk memulai dengan ClusterControl, Anda memerlukan mesin virtual atau host khusus. VM dan persyaratan sistem yang didukung dijelaskan di sini. Minimal Anda dapat memulai dari VM 2 GB RAM kecil, 2 inti CPU, dan ruang penyimpanan 20 GB, baik lokal maupun di cloud.

Metode penginstalan utama adalah mengunduh wizard penginstalan yang memandu Anda melalui semua langkah (konfigurasi OS, pengunduhan dan penginstalan paket, pembuatan metadata, dan lainnya).

Untuk lingkungan tanpa akses internet, Anda dapat menggunakan proses instalasi offline.

ClusterControl tidak memiliki agen sehingga Anda tidak perlu menginstal perangkat lunak tambahan. Ini hanya membutuhkan akses SSH ke host database. Ini juga mendukung pemantauan berbasis agen untuk data pemantauan resolusi lebih tinggi.

Untuk menyiapkan SSH tanpa kata sandi ke semua node target (ClusterControl dan semua host database), jalankan perintah berikut di server ClusterControl:

$ ssh-keygen -t rsa # press enter on all prompts
$ ssh-copy-id -i ~/.ssh/id_rsa [ClusterControl IP address]
$ ssh-copy-id -i ~/.ssh/id_rsa [Database nodes IP address] # repeat this to all target database nodes

Salah satu cara paling nyaman untuk mencoba kontrol klaster mungkin opsi untuk menjalankannya di wadah buruh pelabuhan.

docker run -d --name clustercontrol \
--network db-cluster \
--ip 192.168.10.10 \
-h clustercontrol \
-p 5000:80 \
-p 5001:443 \
-v /storage/clustercontrol/cmon.d:/etc/cmon.d \
-v /storage/clustercontrol/datadir:/var/lib/mysql \
-v /storage/clustercontrol/sshkey:/root/.ssh \
-v /storage/clustercontrol/cmonlib:/var/lib/cmon \
-v /storage/clustercontrol/backups:/root/backups \
severalnines/clustercontrol

Setelah penerapan berhasil, Anda seharusnya dapat mengakses UI Web ClusterControl di {host's IP address}:{host's port}, misalnya:

HTTP: http://192.168.10.100:5000/clustercontrol
HTTPS: https://192.168.10.100:5001/clustercontrol

Pemasangan Cluster MariaDB

Setelah kita memasuki antarmuka ClusterControl, hal pertama yang harus dilakukan adalah menyebarkan database baru atau mengimpor yang sudah ada. Versi 1.7.2 memperkenalkan dukungan untuk versi 10.3 (bersama dengan 10.0,10.1,10.2). Pada 1.7.3 yang dirilis minggu ini, kita dapat melihat peningkatan penerapan penginstalan di cloud.

Kontrol Cluster:Terapkan/Impor

Pada saat penulisan blog ini, versi saat ini adalah 10.3.16. Paket terbaru diambil secara default. Pilih opsi "Deploy Database Cluster" dan ikuti petunjuk yang muncul.

Sekarang saatnya menyediakan data yang dibutuhkan untuk koneksi antara ClusterControl dan node DB. Pada langkah ini, Anda akan membersihkan VM atau gambar OS yang Anda gunakan di dalam organisasi Anda. Saat memilih MariaDB, kami harus menentukan Pengguna, Kunci atau Kata Sandi dan port untuk terhubung dengan SSH ke server kami.

Kontrol Cluster:Menyebarkan Kluster Basis Data

Setelah mengatur informasi akses SSH, kita harus memasukkan data untuk mengakses database kita, untuk MariaDB yang akan menjadi root superuser. Kami juga dapat menentukan repositori mana yang akan digunakan. Anda dapat memiliki tiga jenis repositori saat menerapkan server/cluster database menggunakan ClusterControl:

  • Gunakan Repositori Vendor. Penyediaan perangkat lunak dengan menyiapkan dan menggunakan repositori perangkat lunak pilihan vendor database. ClusterControl akan menginstal versi terbaru dari apa yang disediakan oleh repositori vendor database.
  • Jangan Siapkan Repositori Vendor. Tidak ada repositori yang akan diatur oleh ClusterControl. ClusterControl akan bergantung pada konfigurasi sistem (file repositori default Anda).
  • Buat dan mirror repositori vendor database saat ini, lalu terapkan menggunakan repositori mirrored lokal. Ini memungkinkan Anda untuk "membekukan" versi paket perangkat lunak saat ini.

Ketika semua sudah diatur, tekan tombol deploy. Proses penerapan juga akan menangani pemasangan alat tambahan yang disediakan oleh MariaDB seperti mariabackup dan alat dari vendor eksternal, yang populer di administrasi database.

Impor Cluster Baru

Kami juga memiliki opsi untuk mengelola pengaturan yang ada dengan mengimpornya ke ClusterControl. Lingkungan seperti itu dapat dibuat dengan ClusterControl atau metode lain (boneka, chef, ansible, docker ...). Prosesnya sederhana dan tidak memerlukan pengetahuan khusus.

Pertama, kita harus memasukkan kredensial akses SSH ke server database yang ada. Kemudian kami memasukkan kredensial akses ke database kami, direktori data server, dan versinya. Kami menambahkan node dengan IP atau nama host, dengan cara yang sama seperti saat kami menerapkan, dan tekan Impor. Setelah tugas selesai, kami siap untuk mengelola cluster kami dari ClusterControl. Pada titik ini, kita juga dapat menentukan opsi untuk pemulihan otomatis node atau cluster.

ClusterControl:Impor cluster database 10.3 yang ada

Menskalakan MariaDB, Menambahkan Lebih Banyak Node ke Cluster DB

Dengan ClusterControl, menambahkan lebih banyak server ke server adalah langkah yang mudah. Anda dapat melakukannya dari GUI atau CLI. Untuk pengguna yang lebih mahir, Anda dapat menggunakan ClusterControl Developer Studio dan menulis kondisi basis sumber daya untuk memperluas cluster Anda secara otomatis.

ClusterControl:Menambahkan Node MariaDB

ClusterControl mendukung opsi untuk menggunakan cadangan yang ada, sehingga tidak perlu membebani node master produksi dengan pekerjaan tambahan.

Mengamankan MariaDB

Instalasi MariaDB default hadir dengan keamanan yang santai. Ini telah ditingkatkan dengan versi terbaru namun sistem tingkat produksi masih memerlukan penyesuaian dalam konfigurasi default my.cnf. Penerapan ClusterControl hadir dengan pengaturan my.cnf non-default (berbeda untuk tipe cluster yang berbeda).

ClusterControl menghapus kesalahan manusia dan menyediakan akses ke serangkaian fitur keamanan, untuk secara otomatis melindungi database Anda dari peretasan dan ancaman lainnya.

Kontrol Cluster:Panel Keamanan

ClusterControl mengaktifkan dukungan SSL untuk koneksi MariaDB. Mengaktifkan SSL menambahkan tingkat keamanan lain untuk komunikasi antara aplikasi (termasuk ClusterControl) dan database. Klien MariaDB membuka koneksi terenkripsi ke server database dan memverifikasi identitas server tersebut sebelum mentransfer informasi sensitif apa pun.

ClusterControl akan menjalankan semua langkah yang diperlukan, termasuk membuat sertifikat di semua node database. Sertifikat tersebut dapat dipertahankan nanti di tab Manajemen Kunci.

Dengan ClusterControl Anda juga dapat mengaktifkan audit. Ini menggunakan plugin audit yang disediakan oleh MariaDB. Audit berkelanjutan adalah tugas penting untuk memantau lingkungan database Anda. Dengan mengaudit database Anda, Anda dapat mencapai akuntabilitas atas tindakan yang diambil atau konten yang diakses. Selain itu, audit dapat mencakup beberapa komponen sistem penting, seperti yang terkait dengan data keuangan untuk mendukung serangkaian peraturan yang tepat seperti SOX, atau peraturan GDPR UE. Proses terpandu memungkinkan Anda memilih apa yang harus diaudit dan bagaimana memelihara file log audit.

Pemantauan dan Peringatan

Saat bekerja dengan sistem basis data, Anda harus dapat memantaunya. Itu akan memungkinkan Anda untuk mengidentifikasi tren, merencanakan peningkatan atau peningkatan, atau bereaksi secara efektif terhadap masalah atau kesalahan yang mungkin muncul.

Kontrol Cluster:Ikhtisar

ClusterControl baru menggunakan Prometheus sebagai penyimpanan data dengan bahasa kueri PromQL. Daftar dasbor termasuk Server General, Server Cache, InnoDB Metrics, Replication Master, Replication Slave, System Overview, dan Cluster Overview Dashboards.

Kontrol Cluster:DashBoard

ClusterControl menginstal agen Prometheus, mengonfigurasi metrik, dan memelihara akses ke konfigurasi eksportir Prometheus melalui GUI-nya, sehingga Anda dapat mengelola konfigurasi parameter dengan lebih baik seperti flag kolektor untuk eksportir (Prometheus).

Sebagai operator database, kita perlu diberitahu setiap kali sesuatu yang kritis terjadi di database kita. Tiga metode utama di ClusterControl untuk mendapatkan peringatan meliputi:

  • pemberitahuan email
  • integrasi
  • penasihat
Kontrol Cluster:Layanan Integrasi

Anda dapat mengatur pemberitahuan email pada tingkat pengguna. Buka Pengaturan> Pemberitahuan Email. Di mana Anda dapat memilih antara kekritisan dan jenis peringatan yang akan dikirim.

Metode selanjutnya adalah dengan menggunakan layanan Integrasi. Ini untuk meneruskan kategori acara tertentu ke layanan lain seperti tiket ServiceNow, Slack, PagerDuty, dll. sehingga Anda dapat membuat metode dan integrasi pemberitahuan lanjutan dalam organisasi Anda.

Yang terakhir adalah melibatkan analisis metrik yang canggih di bagian Penasihat, tempat Anda dapat membuat pemeriksaan dan pemicu cerdas.

Kontrol Cluster:Penasihat

Pemantauan SQL

Pemantauan SQL dibagi menjadi tiga bagian.

  • Kueri Teratas - menyajikan informasi tentang kueri yang membutuhkan banyak sumber daya. Pemantau Kueri:Kueri teratas
  • Menjalankan Kueri - ini adalah daftar proses informasi yang digabungkan dari semua node cluster database menjadi satu tampilan. Anda dapat menggunakannya untuk mematikan kueri yang memengaruhi operasi database Anda. Pemantau Kueri:Menjalankan Kueri
  • Pencilan Kueri - menyajikan daftar kueri dengan waktu eksekusi lebih lama dari rata-rata. Pemantau Kueri:Pencilan Kueri

Pencadangan dan Pemulihan

Sekarang setelah MariaDB Anda aktif dan berjalan, dan memiliki pemantauan, sekarang saatnya untuk langkah berikutnya:pastikan Anda memiliki cadangan data Anda.

ClusterControl:Cadangan repositori

ClusterControl menyediakan antarmuka untuk manajemen pencadangan MariaDB dengan dukungan untuk penjadwalan dan laporan materi iklan. Ini memberi Anda dua opsi untuk metode pencadangan.

  • Cadangan logis (teks):mysqldump
  • Cadangan biner:xtrabackup (versi lebih rendah), mariabackup

Strategi pencadangan yang baik adalah bagian penting dari sistem manajemen basis data apa pun. ClusterControl menawarkan banyak opsi untuk pencadangan dan pemulihan/pemulihan.

Retensi cadangan ClusterControl dapat dikonfigurasi; Anda dapat memilih untuk menyimpan cadangan Anda untuk jangka waktu tertentu atau tidak pernah menghapus cadangan. Enkripsi AES256 digunakan untuk mengamankan cadangan Anda dari elemen jahat. Untuk pemulihan cepat, cadangan dapat dipulihkan langsung ke cluster baru - ClusterControl menangani proses pemulihan penuh mulai dari peluncuran penyiapan database baru hingga pemulihan data, menghapus langkah-langkah manual yang rawan kesalahan dari proses.

Cadangan dapat diverifikasi secara otomatis setelah selesai, dan kemudian diunggah ke layanan penyimpanan cloud (AWS, Azure, dan Google). Kebijakan penyimpanan yang berbeda dapat ditentukan untuk cadangan lokal di pusat data serta cadangan yang diunggah di awan.

Pemulihan otomatis node dan cluster

ClusterControl menyediakan dukungan lanjutan untuk deteksi dan penanganan kegagalan. Ini juga memungkinkan Anda untuk menyebarkan proxy yang berbeda untuk mengintegrasikannya dengan tumpukan HA Anda, sehingga tidak perlu menyesuaikan string koneksi aplikasi atau entri DNS untuk mengarahkan ulang aplikasi ke node master baru.

Ketika server master sedang down, ClusterControl akan membuat pekerjaan untuk melakukan failover otomatis. ClusterControl melakukan semua pekerjaan latar belakang untuk memilih master baru, menerapkan server slave failover, dan mengonfigurasi penyeimbang beban.

Kegagalan otomatis ClusterControl dirancang dengan prinsip-prinsip berikut:

  • Pastikan master benar-benar mati sebelum Anda melakukan failover
  • Kegagalan hanya sekali
  • Jangan melakukan failover ke budak yang tidak konsisten
  • Hanya menulis ke master
  • Jangan memulihkan master yang gagal secara otomatis

Dengan algoritme bawaan, failover sering kali dapat dilakukan dengan cukup cepat sehingga Anda dapat memastikan SLA tertinggi untuk lingkungan database Anda.

Kontrol Cluster:Pemulihan Otomatis

Prosesnya sangat dapat dikonfigurasi. Muncul dengan beberapa parameter yang dapat Anda gunakan untuk mengadopsi pemulihan ke spesifik lingkungan Anda. Di antara opsi yang berbeda, Anda dapat menemukan Replication_stop_on_error, Replication_auto_rebuild_slave, Replication_failover_blacklist, Replication_failover_whitelist, Replication_skip_apply_missing_txs, Replication_onfail_failover_script dan banyak lainnya.

Failover adalah proses perpindahan ke komponen standby yang sehat, selama peristiwa kegagalan atau pemeliharaan, untuk mempertahankan waktu kerja. Semakin cepat dapat dilakukan, semakin cepat Anda dapat kembali online. Jika Anda ingin meminimalkan waktu henti dan memenuhi SLA Anda melalui pendekatan otomatis untuk TimescaleDB, maka blog ini cocok untuk Anda.

Penyeimbang Beban MaxScale

Selain MariaDB 10.3, ClusterControl menambahkan opsi penyeimbang beban MaxScale 2.3. MaxScale adalah proxy SQL-aware yang dapat digunakan untuk membangun lingkungan yang sangat tersedia. Muncul dengan banyak fitur, namun, tujuan utamanya adalah untuk mengaktifkan penyeimbangan beban dan ketersediaan tinggi.

Kontrol Cluster:MaxScale

MaxScale dapat digunakan untuk melacak kesehatan node master MariaDB dan, jika gagal, melakukan failover otomatis yang cepat. Failover otomatis sangat penting dalam membangun solusi yang sangat tersedia yang dapat segera pulih dari kegagalan.

Muat Sesi Basis Data Saldo

Pemisahan baca-tulis adalah fitur penting untuk memungkinkan penskalaan baca. Cukup untuk aplikasi terhubung ke MaxScale, dan mendeteksi topologi, menentukan MariaDB yang bertindak sebagai master dan yang bertindak sebagai budak. Ini mengarahkan lalu lintas sesuai dengan ini.

Ringkasan

Kami berharap blog ini membantu Anda mengenal modul administrasi ClusterControl dan MariaDB 10.3. Opsi terbaik adalah mengunduh ClusterControl dan mengujinya masing-masing.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana SECOND() Bekerja di MariaDB

  2. Perbaiki "ERROR 1054 (42S22):Kolom tidak dikenal '...' di 'pada klausa" di MariaDB

  3. MariaDB JSON_KEYS() Dijelaskan

  4. Bagaimana ROUND() Bekerja di MariaDB

  5. Cara Memecahkan Masalah Basis Data MySQL