Chúng ta có thể chỉ chụp Slave_IO_Rucky trong SHOW SLAVE STATUS trong MySQL không


9

Tôi chỉ muốn nắm bắt trạng thái / kết quả của các giá trị cột Slave_IO_Rucky và Slave_Query_Rucky mà tôi sẽ sử dụng để tích hợp vào ứng dụng của chúng tôi.

Có cách nào để chỉ nhận các giá trị của các trường đó thay vì nhận các giá trị của tất cả các trường của SHOW SLAVE STATUS.

Hệ điều hành của tôi là windows.

Tôi đang sử dụng MySQL 5.0.24


này @Phanindra, bạn có đang chạy phiên bản MySQL hiện đại hơn không? nếu có, câu trả lời của Derek vẫn hoạt động chứ? nó không dành cho tôi trong v.5.7.12
knocte

Câu trả lời:


8

Thi công

mysql> SHOW STATUS LIKE 'Slave_running';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Slave_running | ON    |
+---------------+-------+
1 row in set (0.04 sec)

Từ hướng dẫn :

Đây là BẬT nếu máy chủ này là một nô lệ sao chép được kết nối với một bản sao nhân bản và cả hai luồng I / O và SQL đang chạy; mặt khác, nó là TẮT.

Hãy cẩn thận: Nếu bạn đang chạy MySQL trước phiên bản 5.1.46 hoặc 5.5.4, có thể luồng IO nô lệ không thể chạy và biến trạng thái cho biết nô lệ đang chạy. ( Lỗi MySQL 51089 )


Kể từ MySQL 5.7, giải pháp trên sẽ không hoạt động theo mặc định. Điều này là do nhiều biến trạng thái từ information_schemađang được chuyển vào performance_schema:

Kể từ MySQL 5.7.6, Lược đồ hiệu suất cũng chứa các bảng biến hệ thống và trạng thái (xem Phần 23.9.13, Bảng biến đổi lược đồ hiệu suất của Hệ thống Bảng, và Mục 23.9,14, Bảng biến đổi trạng thái lược đồ hiệu suất của Bảng điều khiển). Các bảng Lược đồ hiệu suất được dự định để thay thế các bảng Information_SCHema, không được chấp nhận kể từ MySQL 5.7.6 và sẽ bị xóa trong bản phát hành MySQL trong tương lai. [src]

Các biến trạng thái Slave_xxx này không khả dụng thông qua SHOW STATUS:

  • Slave_ lovbeat_apse
  • Slave_last_ lovbeat
  • Slave_receured_ lovbeats
  • Slave_retried_transilities
  • Slave_rucky

Các ứng dụng sử dụng các biến trạng thái này phải được sửa đổi để có được thông tin này bằng cách sử dụng các bảng Lược đồ hiệu suất liên quan đến sao chép.

Có hai tùy chọn để có được slave_runningtrạng thái bên ngoàiSHOW SLAVE STATUS

  1. Phương pháp ưa thích, như tài liệu đã đề cập, là cập nhật ứng dụng để lấy từ replication-connection-status.SERVICE_STATEreplication-applier-status.SERVICE_STATEtrong performance_schema:

// đây là trạng thái SLAVE IO THREAD
CHỌN DỊCH VỤ BẮT ĐẦU TỪ Performance_schema.replication_connection_status;

// đây là trạng thái SLAVE SQL THREAD
CHỌN DỊCH VỤ BẮT ĐẦU TỪ Performance_schema.replication_applier_status;

LƯU Ý: Đây là cho sao nhân bản duy nhất. Nhân rộng đa chủ nên ở trongreplication_applier_coordinator.SERVICE_STATE

  1. Tùy chọn thứ hai là bật show_compatibility_56. Đây là một sửa chữa tạm thời để có được bạn bằng cách không sửa đổi ứng dụng, nhưng sẽ biến mất trong một bản phát hành trong tương lai.

0
SELECT t.PROCESSLIST_TIME, t.* 
FROM    performance_schema.threads t
WHERE NAME IN('thread/sql/slave_io', 'thread/sql/slave_sql')

-1

Một lệnh hữu ích để hiển thị kết quả theo cách không phù hợp hơn là

mysql> show slave STATUS\G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 127.0.0.1
                  Master_User: repuser
                  Master_Port: 3305
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000002
          Read_Master_Log_Pos: 426595
               Relay_Log_File: ip-172-31-17-228-relay-bin.000004
                Relay_Log_Pos: 19023
        Relay_Master_Log_File: mysql-bin.000002
             Slave_IO_Running: Yes
            Slave_SQL_Running: No
              Replicate_Do_DB:
          Replicate_Ignore_DB:
           Replicate_Do_Table:
       Replicate_Ignore_Table: (...)
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.