Hướng dẫn what causes mysql replication lag? - những gì gây ra độ trễ sao chép mysql?
Thiết lập cụm sao chép chính/nô lệ là một trường hợp sử dụng phổ biến trong hầu hết các tổ chức. Sử dụng sao chép MySQL cho phép dữ liệu của bạn được sao chép trên các môi trường khác nhau và đảm bảo rằng thông tin được sao chép. Nó không đồng bộ và một luồng đơn (theo mặc định), nhưng sao chép cũng cho phép bạn định cấu hình nó là đồng bộ (hoặc thực sự là bán đồng bộ hóa) và có thể chạy chủ đề nô lệ thành nhiều luồng hoặc tương đương với nhau.replication cluster setup is a common use case in most organizations. Using MySQL Replication enables your data to be replicated across different environments and guarantees that the information gets copied. It is asynchronous and single-threaded (by default), but replication also allows you to configure it to be synchronous (or actually “semi-synchronous”) and can run slave thread to multiple threads or in parallels. Show
Ý tưởng này rất phổ biến và thường đến với một thiết lập đơn giản, làm cho nô lệ của nó đóng vai trò là sự phục hồi hoặc cho các giải pháp sao lưu. Tuy nhiên, điều này luôn luôn có giá đặc biệt là khi các truy vấn xấu (như thiếu các khóa chính hoặc duy nhất) được sao chép hoặc một số rắc rối với phần cứng (như các vấn đề về Mạng hoặc đĩa IO). Khi những vấn đề này xảy ra, vấn đề phổ biến nhất đối mặt là độ trễ sao chép. & NBSP; Độ trễ sao chép là chi phí của độ trễ cho (các) giao dịch hoặc (các) hoạt động được tính toán bởi chênh lệch thời gian thực thi giữa chính/chính so với nút chờ/nô lệ. Một số trường hợp nhất định trong MySQL phụ thuộc vào các truy vấn xấu được sao chép như thiếu các khóa chính hoặc chỉ số xấu, phần cứng mạng kém hoặc thẻ mạng bị trục trặc, một vị trí xa giữa các vùng hoặc vùng khác nhau hoặc một số quy trình như chạy lại vật lý có thể gây ra Cơ sở dữ liệu MySQL của bạn để trì hoãn áp dụng giao dịch được sao chép hiện tại. Đây là một trường hợp rất phổ biến khi chẩn đoán các vấn đề này. Trong blog này, chúng tôi sẽ kiểm tra cách đối phó với những trường hợp này và những gì cần xem nếu bạn đang trải qua độ trễ sao chép MySQL.replication lag is the cost of delay for transaction(s) or operation(s) calculated by its time difference of execution between the primary/master against the standby/slave node. The most certain cases in MySQL relies on bad queries being replicated such as lack of primary keys or bad indexes, a poor network hardware or malfunctioning network card, a distant location between different regions or zones, or some processes such as physical backups running can cause your MySQL database to delay applying the current replicated transaction. This is a very common case when diagnosing these issues. In this blog, we’ll check how to deal with these cases and what to look if you are experiencing MySQL replication lag. Trạng thái trình diễn của Slave SlaveTrong một số trường hợp, đây là viên đạn bạc khi xử lý độ trễ sao chép và nó cho thấy hầu hết mọi thứ là nguyên nhân của một vấn đề trong cơ sở dữ liệu MySQL của bạn. Chỉ cần chạy câu lệnh SQL này trong nút nô lệ của bạn bị nghi ngờ trải qua độ trễ sao chép. & NBSP;MySQL database. Simply run this SQL statement in your slave node that is suspected experiencing a replication lag. Các trường ban đầu phổ biến để theo dõi các vấn đề là,
Ví dụ, hãy để Lừa lấy ví dụ dưới đây sử dụng bản sao GTID và đang trải qua độ trễ sao chép:
Chẩn đoán các vấn đề như thế này, mysqlbinlog cũng có thể là công cụ của bạn để xác định truy vấn nào đã chạy trên một vị trí Binlog X & Y cụ thể. Để xác định điều này, hãy để Lừa lấy RETREVED_GTID_SET, relay_log_pos và relay_log_file. Xem lệnh bên dưới:Retrieved_Gtid_Set, Relay_Log_Pos, and the Relay_Log_File. See the command below:
Nó cho chúng ta biết rằng nó đang cố gắng sao chép và thực hiện một câu lệnh DML cố gắng là nguồn gốc của độ trễ. Bảng này là một bảng khổng lồ chứa 13m hàng. & NBSP; Kiểm tra danh sách quy trình hiển thị, hiển thị trạng thái innodb động cơ, với kết hợp lệnh ps, top, iostatps, top, iostat command combinationTrong một số trường hợp, hiển thị trạng thái nô lệ là không đủ để cho chúng ta biết thủ phạm. Có thể các câu lệnh được sao chép bị ảnh hưởng bởi các quy trình nội bộ chạy trong nô lệ cơ sở dữ liệu MySQL. Chạy các câu lệnh hiển thị danh sách xử lý [Full] và hiển thị trạng thái InnoDB động cơ cũng cung cấp dữ liệu thông tin cung cấp cho bạn những hiểu biết về nguồn gốc của vấn đề. & NBSP;SHOW [FULL] PROCESSLIST and SHOW ENGINE INNODB STATUS also provides informative data that gives you insights about the source of the problem. Ví dụ, hãy để nói rằng một công cụ điểm chuẩn đang chạy gây ra bão hòa IO và CPU đĩa. Bạn có thể kiểm tra bằng cách chạy cả hai câu lệnh SQL. Kết hợp nó với PS và các lệnh TOP. & NBSP;ps and top commands. Bạn cũng có thể xác định tắc nghẽn với bộ nhớ đĩa của mình bằng cách chạy IOSTAT cung cấp số liệu thống kê về khối lượng hiện tại mà bạn đang cố gắng chẩn đoán. Chạy Iostat có thể cho thấy máy chủ của bạn bận rộn hoặc tải như thế nào. Ví dụ, được thực hiện bởi một nô lệ bị tụt lại nhưng cũng trải qua việc sử dụng IO cao cùng một lúc, & nbsp;iostat which provides statistics of the current volume you are trying to diagnose. Running iostat can show how busy or loaded your server is. For example, taken by a slave which is lagging but also experiencing high IO utilization at the same time,
Kết quả ở trên hiển thị việc sử dụng IO cao và ghi cao. Nó cũng tiết lộ rằng kích thước hàng đợi trung bình và kích thước yêu cầu trung bình đang di chuyển, điều đó có nghĩa là nó là một dấu hiệu của khối lượng công việc cao. Trong những trường hợp này, bạn cần xác định xem có các quy trình bên ngoài khiến MySQL làm nghẹt các luồng sao chép hay không.MySQL to choke the replication threads. Làm thế nào ClusterControl có thể giúp đỡ?Với ClusterControl, việc xử lý độ trễ nô lệ và xác định thủ phạm là rất dễ dàng và hiệu quả. Nó trực tiếp cho bạn biết trong UI Web, xem bên dưới:ClusterControl, dealing with slave lag and determining the culprit is very easy and efficient. It directly tells you in the web UI, see below: Nó tiết lộ cho bạn các nút nô lệ hiện tại mà các nút nô lệ của bạn đang trải qua. Không chỉ vậy, với bảng điều khiển Scumm, nếu được kích hoạt, cung cấp cho bạn nhiều hiểu biết hơn về những gì mà Node Node của bạn hoặc thậm chí toàn bộ cụm đang làm:SCUMM dashboards, if enabled, provides you more insights of what your slave node’s health or even the whole cluster is doing: Không chỉ những điều này có sẵn trong ClusterControl, nó còn cung cấp cho bạn khả năng tránh các truy vấn xấu xảy ra với các tính năng này như được thấy dưới đây,ClusterControl, it does provide you also the capability to avoid bad queries from occurring with these features as seen below, Các chỉ mục dự phòng cho phép bạn xác định rằng các chỉ mục này có thể gây ra các vấn đề về hiệu suất cho các truy vấn đến tham chiếu các chỉ mục trùng lặp. Nó cũng cho bạn biết các bảng không có khóa chính thường là vấn đề phổ biến về độ trễ nô lệ khi một truy vấn hoặc giao dịch SQL nhất định tham chiếu các bảng lớn không có khóa chính hoặc duy nhất khi nó được sao chép vào nô lệ. Sự kết luậnXử lý độ trễ sao chép MySQL là một vấn đề thường xuyên trong thiết lập sao chép nô lệ chính. Nó có thể dễ dàng chẩn đoán, nhưng khó giải quyết. Đảm bảo bạn có các bảng của mình với khóa chính hoặc khóa duy nhất hiện có và xác định các bước và công cụ về cách khắc phục sự cố và chẩn đoán nguyên nhân của độ trễ nô lệ. Hiệu quả luôn là chìa khóa khi giải quyết vấn đề mặc dù.MySQL Replication lag is a frequent problem in a master-slave replication setup. It can be easy to diagnose, but difficult to solve. Make sure you have your tables with primary key or unique key existing, and determine the steps and tools on how to troubleshoot and diagnose the cause of slave lag. Efficiency is always the key when solving problems though. Đăng ký để có được nội dung tốt nhất và mới nhất của chúng tôiCác nguyên nhân phổ biến của độ trễ sao chép là gì?Độ trễ sao chép có thể xảy ra trong một vài kịch bản, chẳng hạn như: Trường hợp chính không thể gửi các thay đổi đủ nhanh đến bản sao. Bản sao không thể nhận được các thay đổi đủ nhanh. Bản sao không thể áp dụng các thay đổi đủ nhanh.The primary instance can't send the changes fast enough to the replica. The replica can't receive the changes quickly enough. The replica can't apply the changes quickly enough.
Làm thế nào để mysql xử lý độ trễ sao chép?Trạng thái nô lệ của chương trình trên mạng: Câu thần chú của MySQL DBA Trong một số trường hợp, đây là viên đạn bạc khi xử lý độ trễ sao chép và nó cho thấy hầu hết mọi thứ là nguyên nhân của một vấn đề trong cơ sở dữ liệu MySQL của bạn. Chỉ cần chạy câu lệnh SQL này trong nút nô lệ của bạn bị nghi ngờ trải qua độ trễ sao chép.
Làm thế nào tôi có thể làm cho bản sao của tôi nhanh hơn?Máy chủ và mạng.. Đặt lượng bộ nhớ tối thiểu và tối đa được phân bổ cho công cụ cơ sở dữ liệu Microsoft SQL Server..... Đảm bảo phân bổ đúng các tệp dữ liệu cơ sở dữ liệu và tệp nhật ký..... Cân nhắc thêm bộ nhớ vào máy chủ được sử dụng trong sao chép, đặc biệt là nhà phân phối .. Sử dụng máy tính đa bộ xử lý..... Sử dụng một mạng nhanh .. Làm cách nào để khắc phục sự cố sao chép MySQL của MySQL?Xác minh rằng nguồn có ghi nhật ký nhị phân được bật bằng cách phát hành câu lệnh trạng thái chính hiển thị..... Xác minh rằng biến hệ thống server_id đã được đặt khi khởi động trên cả nguồn và bản sao và giá trị ID là duy nhất trên mỗi máy chủ .. Xác minh rằng bản sao đang chạy .. |