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

Cara Menginstal dan Mengonfigurasi MaxScale untuk MariaDB

Ada berbagai alasan untuk menambahkan penyeimbang beban antara aplikasi dan database Anda. Jika Anda memiliki lalu lintas tinggi (dan Anda ingin menyeimbangkan lalu lintas antara node basis data yang berbeda) atau Anda ingin menggunakan penyeimbang beban sebagai titik akhir tunggal (jadi jika terjadi kegagalan, penyeimbang beban ini akan mengatasi masalah ini dengan mengirimkan lalu lintas ke tersedia/sehat node.) Bisa juga Anda ingin menggunakan port yang berbeda untuk menulis dan membaca data dari database Anda.

Dalam semua kasus ini, penyeimbang beban akan berguna bagi Anda, dan jika Anda memiliki klaster MariaDB, salah satu opsi untuk ini adalah menggunakan MaxScale yang merupakan proxy database untuk database MariaDB.

Di blog ini, kami akan menunjukkan kepada Anda cara menginstal dan mengkonfigurasinya secara manual, dan bagaimana ClusterControl dapat membantu Anda dalam tugas ini. Untuk contoh ini, kita akan menggunakan cluster replikasi MariaDB dengan 1 master dan 1 node slave, dan CentOS8 sebagai sistem operasinya.

Cara Memasang MaxScale

Kami akan menganggap Anda memiliki dan menjalankan database MariaDB Anda, dan juga mesin (virtual atau fisik) untuk menginstal MaxScale. Kami menyarankan Anda menggunakan host yang berbeda, jadi jika terjadi kegagalan master, MaxScale dapat melakukan failover ke node slave, jika tidak, MaxScale tidak dapat mengambil tindakan apa pun jika server yang menjalankannya mati.

Ada berbagai cara untuk menginstal MaxScale, dalam hal ini, kami akan menggunakan repositori MariaDB. Untuk menambahkannya ke server MaxScale, Anda harus menjalankan:

$ curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash

[info] Repository file successfully written to /etc/yum.repos.d/mariadb.repo

[info] Adding trusted package signing keys...

[info] Successfully added trusted package signing keys

Sekarang, instal paket MaxScale:

$ yum install maxscale

Sekarang Anda telah menginstal node MaxScale Anda, sebelum memulai, Anda perlu mengkonfigurasinya.

Cara Mengonfigurasi MaxScale

Saat MaxScale melakukan tugas seperti autentikasi, pemantauan, dan lainnya, Anda perlu membuat pengguna database dengan beberapa hak istimewa:

MariaDB [(none)]> CREATE USER 'maxscaleuser'@'%' IDENTIFIED BY 'maxscalepassword';

MariaDB [(none)]> GRANT SELECT ON mysql.user TO 'maxscaleuser'@'%';

MariaDB [(none)]> GRANT SELECT ON mysql.db TO 'maxscaleuser'@'%';

MariaDB [(none)]> GRANT SELECT ON mysql.tables_priv TO 'maxscaleuser'@'%';

MariaDB [(none)]> GRANT SELECT ON mysql.roles_mapping TO 'maxscaleuser'@'%';

MariaDB [(none)]> GRANT SHOW DATABASES ON *.* TO 'maxscaleuser'@'%';

MariaDB [(none)]> GRANT REPLICATION CLIENT on *.* to 'maxscaleuser'@'%';

Perlu diingat bahwa MariaDB versi 10.2.2 hingga 10.2.10 juga memerlukan:

MariaDB [(none)]> GRANT SELECT ON mysql.* TO 'maxscaleuser'@'%';

Sekarang pengguna database sudah siap, mari kita lihat file konfigurasinya. Saat Anda menginstal MaxScale, file maxscale.cnf akan dibuat di bawah /etc/. Ada beberapa variabel dan cara berbeda untuk mengonfigurasinya, jadi mari kita lihat contohnya:

$ cat  /etc/maxscale.cnf 

# Global parameters

[maxscale]

threads = auto

log_augmentation = 1

ms_timestamp = 1

syslog = 1



# Server definitions

[server1]

type=server

address=192.168.100.126

port=3306

protocol=MariaDBBackend

[server2]

type=server

address=192.168.100.127

port=3306

protocol=MariaDBBackend



# Monitor for the servers

[MariaDB-Monitor]

type=monitor

module=mariadbmon

servers=server1,server2

user=maxscaleuser

password=maxscalepassword

monitor_interval=2000



# Service definitions

[Read-Only-Service]

type=service

router=readconnroute

servers=server2

user=maxscaleuser

password=maxscalepassword

router_options=slave

[Read-Write-Service]

type=service

router=readwritesplit

servers=server1

user=maxscaleuser

password=maxscalepassword



# Listener definitions for the services

[Read-Only-Listener]

type=listener

service=Read-Only-Service

protocol=MariaDBClient

port=4008

[Read-Write-Listener]

type=listener

service=Read-Write-Service

protocol=MariaDBClient

port=4006

Dalam konfigurasi ini, kami memiliki 2 node database, 192.168.100.126 (Master) dan 192.168.100.127 (Slave), seperti yang Anda lihat di bagian Definisi Server.

Kami juga memiliki 2 layanan yang berbeda, satu untuk read-only, di mana ada node slave, dan satu lagi untuk read-write di mana ada node master.

Akhirnya, kami memiliki 2 pendengar, satu untuk setiap layanan. Listener read-only, mendengarkan di port 4008, dan read-write, mendengarkan di port 4006.

Ini adalah file konfigurasi dasar. Jika Anda memerlukan sesuatu yang lebih spesifik, Anda dapat mengikuti dokumentasi resmi MariaDB.

Sekarang Anda siap untuk memulainya, jadi jalankan saja:

$ systemctl start maxscale.service

Dan periksa:

$ maxctrl list services
ff
$ maxctrl list servers

Anda dapat menemukan daftar perintah maxctrl di sini, atau Anda bahkan dapat menggunakan maxadmin untuk mengelolanya.

Sekarang mari kita uji koneksinya. Untuk ini, Anda dapat mencoba mengakses database Anda menggunakan alamat IP MaxScale dan port yang ingin Anda uji. Dalam kasus kami, lalu lintas pada port 4006 harus dikirim ke server1, dan lalu lintas pada port 4008 ke server2.

$ mysql -h 192.168.100.128 -umaxscaleuser -pmaxscalepassword -P4006 -e 'SELECT @@hostname;'

+------------+

| @@hostname |

+------------+

| server1   |

+------------+

$ mysql -h 192.168.100.128 -umaxscaleuser -pmaxscalepassword -P4008 -e 'SELECT @@hostname;'

+------------+

| @@hostname |

+------------+

| server2   |

+------------+

Berhasil!

Cara Menyebarkan MaxScale dengan ClusterControl

Mari kita lihat sekarang, bagaimana Anda dapat menggunakan ClusterControl untuk menyederhanakan tugas ini. Untuk ini, kami akan menganggap Anda telah menambahkan klaster MariaDB Anda ke ClusterControl.

Buka ClusterControl -> Pilih MariaDB cluster -> Cluster Actions -> Add Load Balancer -> MaxScale.

Di sini Anda dapat menerapkan node MaxScale baru atau Anda juga dapat mengimpor yang sudah ada satu. Jika Anda menerapkannya, Anda perlu menambahkan Alamat IP atau Nama Host, kredensial admin dan pengguna MaxScale, jumlah utas, dan port (tulis dan baca-saja). Anda juga dapat menentukan node database mana yang ingin Anda tambahkan ke konfigurasi MaxScale.

Anda dapat memantau tugas di bagian Aktivitas ClusterControl. Setelah selesai, Anda akan memiliki node MaxScale baru di cluster MariaDB Anda.

Dan menjalankan perintah MaxScale dari UI ClusterControl tanpa perlu mengakses server melalui SSH.

Kelihatannya lebih mudah daripada menerapkannya secara manual, bukan?

Kesimpulan

Memiliki Load Balancer adalah solusi yang baik jika Anda ingin menyeimbangkan atau membagi lalu lintas Anda, atau bahkan untuk tindakan failover, dan MaxScale, sebagai produk MariaDB, adalah pilihan yang baik untuk database MariaDB.

Instalasinya mudah, tetapi konfigurasi dan penggunaannya bisa jadi sulit jika itu sesuatu yang baru untuk Anda. Dalam hal ini, Anda dapat menggunakan ClusterControl untuk menerapkan, mengonfigurasi, dan mengelolanya dengan cara yang lebih mudah.


  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 FORMAT() Bekerja di MariaDB

  2. Menjalankan MariaDB di Hybrid Cloud Setup

  3. 6 Cara Memeriksa Versi MariaDB Anda

  4. Bagaimana IFNULL() Bekerja di MariaDB

  5. MIN() Fungsi di MariaDB