MariaDB
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> MariaDB

Cách cài đặt và cấu hình MaxScale cho MariaDB

Có nhiều lý do khác nhau để thêm bộ cân bằng tải giữa ứng dụng và cơ sở dữ liệu của bạn. Nếu bạn có lưu lượng truy cập cao (và bạn muốn cân bằng lưu lượng giữa các nút cơ sở dữ liệu khác nhau) hoặc bạn muốn sử dụng bộ cân bằng tải làm điểm cuối duy nhất (vì vậy trong trường hợp chuyển đổi dự phòng, bộ cân bằng tải này sẽ giải quyết vấn đề này khi gửi lưu lượng đến nút sẵn có / khỏe mạnh.) Cũng có thể là bạn muốn sử dụng các cổng khác nhau để ghi và đọc dữ liệu từ cơ sở dữ liệu của mình.

Trong tất cả những trường hợp này, bộ cân bằng tải sẽ hữu ích cho bạn và nếu bạn có một cụm MariaDB, một tùy chọn cho việc này là sử dụng MaxScale, một proxy cơ sở dữ liệu cho cơ sở dữ liệu MariaDB.

Trong blog này, chúng tôi sẽ hướng dẫn bạn cách cài đặt và cấu hình nó theo cách thủ công, cũng như cách ClusterControl có thể giúp bạn trong công việc này. Đối với ví dụ này, chúng tôi sẽ sử dụng một cụm sao MariaDB với 1 nút chính và 1 nút phụ, và CentOS8 làm hệ điều hành.

Cách cài đặt MaxScale

Chúng tôi sẽ giả định rằng bạn đã thiết lập và chạy cơ sở dữ liệu MariaDB của mình, đồng thời cũng có một máy (ảo hoặc vật lý) để cài đặt MaxScale. Chúng tôi khuyên bạn nên sử dụng một máy chủ khác, vì vậy trong trường hợp lỗi chính, MaxScale có thể chuyển đổi dự phòng sang nút phụ, nếu không, MaxScale không thể thực hiện bất kỳ hành động nào nếu máy chủ nơi nó đang chạy gặp sự cố.

Có nhiều cách khác nhau để cài đặt MaxScale, trong trường hợp này, chúng tôi sẽ sử dụng kho lưu trữ MariaDB. Để thêm nó vào máy chủ MaxScale, bạn phải chạy:

$ 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

Bây giờ, hãy cài đặt gói MaxScale:

$ yum install maxscale

Bây giờ, bạn đã cài đặt nút MaxScale, trước khi bắt đầu, bạn cần định cấu hình nó.

Cách định cấu hình MaxScale

Khi MaxScale thực hiện các tác vụ như xác thực, giám sát, v.v., bạn cần tạo người dùng cơ sở dữ liệu với một số đặc quyền cụ thể:

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'@'%';

Hãy nhớ rằng MariaDB phiên bản 10.2.2 đến 10.2.10 cũng yêu cầu:

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

Bây giờ bạn đã có người dùng cơ sở dữ liệu sẵn sàng, hãy xem các tệp cấu hình. Khi bạn cài đặt MaxScale, tệp maxscale.cnf sẽ được tạo trong / etc /. Có một số biến và các cách khác nhau để định cấu hình nó, vì vậy hãy xem một ví dụ:

$ 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

Trong cấu hình này, chúng ta có 2 nút cơ sở dữ liệu, 192.168.100.126 (Master) và 192.168.100.127 (Slave), như bạn có thể thấy trong phần Định nghĩa máy chủ.

Chúng tôi cũng có 2 dịch vụ khác nhau, một dịch vụ chỉ đọc, nơi có nút phụ và một dịch vụ khác dành cho đọc-ghi khi có nút chính.

Cuối cùng, chúng ta có 2 người nghe, một người cho mỗi dịch vụ. Trình nghe chỉ đọc, nghe ở cổng 4008 và trình nghe đọc-ghi, nghe ở cổng 4006.

Đây là tệp cấu hình cơ bản. Nếu bạn cần một cái gì đó cụ thể hơn, bạn có thể làm theo tài liệu MariaDB chính thức.

Bây giờ bạn đã sẵn sàng để bắt đầu, vì vậy chỉ cần chạy:

$ systemctl start maxscale.service

Và kiểm tra nó:

$ maxctrl list services
ff
$ maxctrl list servers

Bạn có thể tìm thấy danh sách lệnh maxctrl tại đây hoặc thậm chí bạn có thể sử dụng maxadmin để quản lý nó.

Bây giờ chúng ta hãy kiểm tra kết nối. Đối với điều này, bạn có thể cố gắng truy cập cơ sở dữ liệu của mình bằng địa chỉ IP MaxScale và cổng mà bạn muốn kiểm tra. Trong trường hợp của chúng tôi, lưu lượng trên cổng 4006 phải được gửi đến máy chủ1 và lưu lượng trên cổng 4008 đến máy chủ2.

$ 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   |

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

Nó hoạt động!

Cách triển khai MaxScale với ClusterControl

Bây giờ, hãy xem cách bạn có thể sử dụng ClusterControl để đơn giản hóa tác vụ này. Đối với điều này, chúng tôi sẽ giả sử bạn đã thêm cụm MariaDB của mình vào ClusterControl.

Đi tới ClusterControl -> Chọn cụm MariaDB -> Cluster Actions -> Thêm Load Balancer -> MaxScale.

Tại đây, bạn có thể triển khai nút MaxScale mới hoặc bạn cũng có thể nhập một. Nếu bạn đang triển khai nó, bạn cần thêm Địa chỉ IP hoặc Tên máy chủ, thông tin đăng nhập MaxScale của quản trị viên và người dùng, số lượng luồng và cổng (ghi và chỉ đọc). Bạn cũng có thể chỉ định nút cơ sở dữ liệu nào bạn muốn thêm vào cấu hình MaxScale.

Bạn có thể giám sát tác vụ trong phần ClusterControl Activity. Khi quá trình kết thúc, bạn sẽ có một nút MaxScale mới trong cụm MariaDB của mình.

Và chạy các lệnh MaxScale từ Giao diện người dùng ClusterControl mà không cần truy cập máy chủ qua SSH.

Có vẻ dễ dàng hơn so với việc triển khai theo cách thủ công, phải không?

Kết luận

Có Load Balancer là một giải pháp tốt nếu bạn muốn cân bằng hoặc phân chia lưu lượng truy cập của mình, hoặc thậm chí cho các hành động chuyển đổi dự phòng và MaxScale, với tư cách là một sản phẩm MariaDB, là một lựa chọn tốt cho cơ sở dữ liệu MariaDB.

Việc cài đặt rất dễ dàng, nhưng cấu hình và cách sử dụng có thể khó khăn nếu nó là một cái gì đó mới đối với bạn. Trong trường hợp đó, bạn có thể sử dụng ClusterControl để triển khai, định cấu hình và quản lý nó theo cách dễ dàng hơn.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chỉ trả lại giá trị số trong MariaDB

  2. Mã hóa MariaDB đầy đủ lúc nghỉ và đang chuyển để bảo vệ dữ liệu tối đa - Phần thứ hai

  3. ClusterControl:Giới thiệu về Màn hình Truy vấn Mới

  4. Cách TO_DAYS () hoạt động trong MariaDB

  5. ClusterControl - Quản lý sao lưu nâng cao - mariabackup Phần III