MySQL 9.0 發行注意事項
系統變數 replica_transaction_retries
的全域值設定單執行緒或多執行緒副本上應用程式執行緒在停止之前自動重試失敗交易的最大次數。當 SQL 執行緒由於 InnoDB
死鎖而無法執行交易時,或當交易的執行時間超過 InnoDB
innodb_lock_wait_timeout
值時,會自動重試交易。如果交易發生非暫時性錯誤而使其無法成功,則不會重試。
replica_transaction_retries
的預設設定為 10,表示具有明顯暫時性錯誤的失敗交易會在應用程式執行緒停止之前重試 10 次。將變數設定為 0 會停用交易的自動重試。在多執行緒副本上,指定的交易重試次數可以在所有通道的所有應用程式執行緒上進行。效能結構描述表格 replication_applier_status
的 COUNT_TRANSACTIONS_RETRIES
欄中顯示每個複製通道上發生的交易重試總次數。
重試交易的過程可能會導致副本或群組複製群組成員(可以設定為單執行緒或多執行緒副本)發生延遲。效能結構描述表格 replication_applier_status_by_worker
顯示單執行緒或多執行緒副本上的應用程式執行緒交易重試的詳細資訊。此資料包括時間戳記,顯示應用程式執行緒從開始到結束套用上次交易所花費的時間(以及目前正在進行中的交易開始的時間),以及這段時間距離原始來源和直接來源的認可時間有多久。此資料還顯示上次交易和目前正在進行中的交易的重試次數,並讓您能夠識別導致交易重試的暫時性錯誤。您可以使用此資訊來查看交易重試是否為複製延遲的原因,並調查導致重試的失敗根本原因。