bật nhật ký truy vấn cho cơ sở dữ liệu


8

Tôi đang có nhiều lược đồ cơ sở dữ liệu trong máy chủ mysql 5.6, bây giờ vấn đề ở đây là tôi muốn chỉ bắt các truy vấn cho một lược đồ.

Tôi không thể kích hoạt nhật ký truy vấn cho toàn bộ máy chủ vì một trong các lược đồ của tôi được tải rất cao và nó sẽ ảnh hưởng đến máy chủ.

Là bất kỳ cách nào của họ, bất kỳ công cụ nào thông qua đó tôi chỉ có thể ghi lại các truy vấn bằng lược đồ duy nhất.

Tôi đã tìm thấy biểu đồ điểm chuẩn cho thấy tác động đối với các giao dịch / giây khi nhật ký truy vấn được bật.

nhập mô tả hình ảnh ở đây nhập mô tả hình ảnh ở đây


Bạn có thể sử dụng nhật ký truy vấn chậm thay thế? Và sau đó phân tích cú pháp đó với pt-query-digest? Nếu không, bạn có thể thử đầu ra tcpdump được phân tích cú pháp bởi pt-query-digest
jerichorivera

Câu trả lời:


1

Câu hỏi thú vị và +1. Tôi đã quan tâm bởi điều này bởi vì tôi có thể thấy một số trường hợp sử dụng cho tính hư cấu này.

Thật không may, đối với trường hợp của bạn khi bạn không thể bật ghi nhật ký chung, chỉ có một cách giải quyết duy nhất là không đầy đủ.

Đó là sử dụng biến SQL_LOG_OFF để vô hiệu hóa ghi nhật ký cho một kết nối nhất định. Một giải pháp lý tưởng sẽ là có một biến "SQL_LOG_ON" như người ta có thể làm trong Oracle (tương đương) - có lẽ bạn có thể thử và tắt đăng nhập cho tất cả trừ (các) kết nối quan tâm?

Hơn nữa, và đáng tiếc, điều này đòi hỏi SUPERđặc quyền. Một lần nữa, điều này có thể không (thậm chí có thể không) có thể xảy ra trong trường hợp của bạn.

Tùy thuộc vào mức độ nghiêm trọng của sự cố, giờ làm việc và tải máy chủ tại các thời điểm nhất định, bạn có thể tìm thấy cách sử dụng tiêu hóa pt-truy vấn của Percona có thể giúp phân tích nhật ký. Thoải mái nhỏ, nhưng như thường lệ, PostgreSQL đang đi trước MySQL ( 1 , 2 ).

Nếu bạn muốn gửi yêu cầu tính năng, tôi rất vui lòng theo dõi "tôi cũng vậy" nếu bạn đăng liên kết trở lại đây.


1

Nếu bạn quá gần với việc bạn không thể bật Nhật ký chung thành TẬP TIN, bạn sẽ gặp vấn đề tồi tệ hơn; họ cần sửa chữa.

Tôi nghi ngờ, nếu không có bất kỳ kiến ​​thức thực tế nào, rằng Slowlog sẽ có tác động tương tự, đặc biệt là với long_query_time = 0.

5.7 có tính năng "viết lại truy vấn". Một số mẹo có thể được sử dụng ở đó. (Nhưng, một lần nữa, có một số chi phí, cần được điểm chuẩn.)

Bao lâu để bạn muốn bắt các truy vấn? Bạn chỉ đang tìm kiếm nguồn gốc của một hành động nghịch ngợm? Hay bạn đang cố gắng thu thập các truy vấn để xây dựng một điểm chuẩn thực tế cho bảng đó? Hay cái gì khác?

Bạn đã bật nhân rộng? Bạn có thích đọc không? Hay viết? Hoặc cả hai?

Có bao nhiêu chủ đề đang hoạt động đồng thời? Điểm chuẩn bạn đã chỉ ra rằng đối với 1, nhật ký có chi phí thấp. Chính khóa bảng trên MyISAM hoặc CSV đang giết chết quá trình xử lý để có tính đồng thời cao.

Biểu đồ thứ hai của bạn chỉ ra rằng các máy khách thực sự nên được giới hạn trong khoảng 5-8 kết nối đồng thời - thông lượng khác thực sự giảm! Điều gì đã max_connectionsMax_used_connectionscho biểu đồ đó?


Xin chào, tôi muốn nắm bắt các truy vấn trong khoảng 2 ngày và các biểu đồ này không liên quan đến điểm chuẩn của tôi ... Tôi đã dán chúng chỉ vì kiến ​​thức. Ứng dụng mà tôi muốn các truy vấn là người tiêu dùng tài nguyên thấp. Tcpdump sẽ không cung cấp số liệu thống kê thời gian.
Suyash Jain
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.