MySQL version:8.0.18-commercial MySQL Enterprise Server - Commercial
HA: MGR
問題:
導入sql文件,大小371MB
導入數據過程中
[Err] 3100 - Error on observer while running replication hook 'before_commit'.
報錯日志:
2020-06-27T10:24:29.094866+08:00 79 [ERROR] [MY-011608] [Repl] Plugin group_replication reported: 'Error on session 79.
Transaction of size 1060900441 exceeds specified limit 150000000. To increase the limit please adjust group_replication_transaction_size_limit option.'
2020-06-27T10:24:29.373716+08:00 79 [ERROR] [MY-010207] [Repl] Run function 'before_commit' in plugin 'group_replication' failed
官方解釋:
Use the system variable group_replication_transaction_size_limit to specify a maximum transaction size that the group will accept.
In MySQL 5.7, this system variable defaults to zero, but in MySQL 8.0, it defaults to a maximum transaction size of 150000000 bytes (approximately 143 MB).
Transactions above this limit are rolled back and are not sent to Group Replication's Group Communication System (GCS) for distribution to the group.
Adjust the value of this variable depending on the maximum message size that you need the group to tolerate, bearing in mind that the time taken
to process a transaction is proportional to its size.
解決
僅調整導入所在MySQL 的參數
mysql> show global variables like '%group_replication_transaction_size_limit%';
+------------------------------------------+-----------+
| Variable_name | Value |
+------------------------------------------+-----------+
| group_replication_transaction_size_limit | 150000000 |
+------------------------------------------+-----------+
1 row in set (0.01 sec)
mysql> set global group_replication_transaction_size_limit=1500000000;
Query OK, 0 rows affected (0.00 sec)
使用navicat 導入
[Msg] Finished - 3104720 queries executed successfully
導入成功后,將該節點的group_replication_transaction_size_limit 修改回去