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

Kiểm tra sức khỏe quan trọng cho máy chủ bản sao nguồn MySQL của bạn

Trong thiết lập tính khả dụng cao của bản sao nguồn (HA) của MySQL, điều quan trọng là phải liên tục theo dõi tình trạng của máy chủ nguồn và bản sao để bạn có thể phát hiện các sự cố tiềm ẩn và thực hiện các hành động khắc phục . Trong bài đăng trên blog này, chúng tôi giải thích một số kiểm tra sức khỏe cơ bản mà bạn có thể thực hiện trên nguồn MySQL và các nút bản sao của mình để đảm bảo thiết lập của bạn hoạt động tốt. Chương trình hoặc tập lệnh giám sát phải cảnh báo khung sẵn sàng cao trong trường hợp bất kỳ kiểm tra sức khỏe nào không thành công, cho phép khung sẵn sàng cao thực hiện các hành động khắc phục để đảm bảo tính khả dụng của dịch vụ.

Kiểm tra tình trạng máy chủ nguồn MySQL

Chúng tôi khuyên bạn nên chạy các tập lệnh hoặc chương trình giám sát nguồn MySQL của bạn thường xuyên. Giả sử rằng tập lệnh giám sát đang chạy trên cùng một máy chủ với máy chủ MySQL của bạn, bạn có thể kiểm tra những điều sau:

  1. Đảm bảo dịch vụ MySQL đang chạy

    Điều này có thể được thực hiện bằng cách sử dụng một lệnh đơn giản như:

    > pgrep mysqld

    HOẶC

    >service mysqld status
  2. Đảm bảo bạn có thể kết nối với MySQL và thực hiện một truy vấn đơn giản

    Chúng tôi khuyên bạn nên có một khoảng thời gian chờ ngắn cho các lệnh này để bạn có thể nhanh chóng phát hiện xem MySQL có phản hồi hay không. Điều này có thể đạt được từ một cuộc gọi như:

    /usr/bin/timeout 5 mysql -u testuser -ptestpswd -e 'select * from mysql.test’

    Đảm bảo kiểm tra giá trị thoát của lệnh trên:

    Giá trị thoát =0 ⇒ Thành công

    Giá trị thoát =1 ⇒ Không đạt

    Exit-value =124 ⇒ Hết giờ

    Nếu lệnh hết thời gian chờ, điều đó có nghĩa là dịch vụ MySQL không đủ phản hồi. Chúng tôi khuyên bạn nên thử lại sau một thời gian để tránh kết quả âm tính giả. Nếu mã thoát chỉ ra lỗi, mã trả về từ MySQL sẽ cho chúng ta biết lý do thất bại. Một ví dụ về sự cố là lỗi "Quá nhiều kết nối" từ MySQL xảy ra nếu số lượng kết nối đến máy chủ vượt quá giá trị cấu hình "max_connections" của bạn.

  3. Đảm bảo nguồn MySQL đang chạy ở chế độ đọc-ghi

    Bạn có thể sử dụng lệnh sau để đảm bảo nguồn MySQL đang chạy ở chế độ đọc-ghi:

    /usr/bin/timeout 5 mysql -u testuser -ptestpswd -e "SELECT @@global.read_only"

    Nguồn dự kiến ​​sẽ luôn chạy ở chế độ đọc-ghi và do đó, giá trị của read_only phải là "OFF".

    Cũng có thể kết hợp bước này với bước 2 và thay vì thực hiện truy vấn kiểm tra 'select * từ mysql.test, chúng ta chỉ có thể thực hiện truy vấn để lấy read_only giá trị.

Kiểm tra sức khỏe quan trọng cho Máy chủ bản sao nguồn MySQL của bạn Bấm để đăng bài

Kiểm tra tình trạng máy chủ bản sao của MySQL

Bạn có thể chạy giám sát các bản sao MySQL của mình với tần suất thấp hơn so với nguồn, vì chúng không xử lý việc ghi dữ liệu. 3 bước đầu tiên để kiểm tra tình trạng bản sao của bạn có thể giống với bước của nguồn, ngoại trừ việc chúng tôi cần đảm bảo bản sao đang chạy ở chế độ chỉ đọc - giá trị của biến read_only phải là 'BẬT' ở bước 3 .

Ngoài ra, chúng tôi có thể thực hiện nhiều kiểm tra hơn đối với bản sao để đảm bảo trạng thái sao chép của nó hoạt động tốt, chẳng hạn như:

  1. Bản sao được định cấu hình để sao chép từ nguồn bên phải.

  2. Kết nối của bản sao với nguồn tốt.

  3. Bản sao có thể áp dụng các sự kiện nguồn mà nó đã nhận được.

Bạn có thể kiểm tra tất cả những điều trên bằng lệnh "hiển thị trạng thái bản sao". Ví dụ:

mysql> show replica status \G;

*************************** 1. row ***************************

Replica_IO_State: Waiting for source to send event

Source_Host: 172.31.17.43

Source_User: repl_user

Source_Port: 3306

Connect_Retry: 10

Source_Log_File: mysql-bin.000001

Read_Source_Log_Pos: 7510

Relay_Log_File: relay-log.000006

Relay_Log_Pos: 414

Relay_Source_Log_File: mysql-bin.000001

Replica_IO_Running: Yes

Replica_SQL_Running: Yes

******************Truncated*********************************
  • Giá trị Source_Host cho biết máy chủ nguồn được định cấu hình để sao chép.

  • Đối với giá trị Replica_IO_Running, “Có” cho biết rằng bản sao đã kết nối với nguồn và đang nhận luồng sao chép.

  • Đối với giá trị Replica_SQL_Running, “Có” cho biết rằng ứng dụng của bản sao đang chạy và có thể áp dụng tất cả các sự kiện nhận được từ nguồn.

Trong bài đăng trên blog này, chúng tôi đã thảo luận về một số kiểm tra đơn giản có thể phát hiện xem có vấn đề cơ bản nào trong nguồn MySQL và máy chủ bản sao của bạn hay không. Nói chung, cơ chế phát hiện lỗi trong thiết lập tính sẵn sàng cao là một chủ đề phức tạp và cần một khuôn khổ tính sẵn sàng cao mạnh mẽ mà qua đó cần thực hiện theo dõi kiểm tra sức khỏe. Bạn có thể tìm hiểu thêm về các chi tiết của khung tính sẵn sàng cao của chúng tôi trong Giải thích về khung tính sẵn sàng cao trong MySQL của chúng tôi - Phần I:Bài đăng trên blog giới thiệu.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. tạo ngày từ phạm vi ngày

  2. Giải pháp DBaaS tốt nhất cho MySQL

  3. MySQL / Lỗi tệp ghi (Mã lỗi 28)

  4. Cách triển khai máy chủ Percona cho MySQL để có tính khả dụng cao

  5. Làm cách nào để sử dụng xóa thác trong mysql?