- MySQL高可用實踐
- 王雪迎
- 336字
- 2021-03-26 23:06:32
2.6 測 試
2.6.1 正常提交事務

MySQL 8默認是每條語句自動提交。主庫等待3個事務的確認,分別對應create database、create table、insert語句,平均每個事務等待確認的時長為758微秒。從庫正常確認了3個事務。
2.6.2 回滾事務


從上面的測試可以得出以下結論:
- set session autocommit=0語句不被復制。
- DDL語句會觸發一個commit,自動提交DDL語句本身及其之前所有未提交的事務。
- 非事務表不能回滾。
- Rpl_semi_sync_master_tx_waits和Rpl_semi_sync_master_yes_tx都增加了3,分別對應的3個事務為:insert into t1 values(2)、create table t2 (a int) engine=myisam、insert into t2 values(3)。
2.6.3 rpl_semi_sync_master_wait_no_slave與從庫數量
(1)rpl_semi_sync_master_wait_no_slave為ON時從庫數小于rpl_semi_sync_master_wait_for_slave_count

可以看到,主庫提交后等待了10秒(rpl_semi_sync_master_timeout的默認值)才完成,而且此時主庫已經降級為異步復制。

當Rpl_semi_sync_master_clients大于等于rpl_semi_sync_master_wait_for_slave_count時,主庫立即恢復為半同步復制,并發送那些未被復制的binlog。
(2)rpl_semi_sync_master_wait_no_slave為OFF時,從庫數小于rpl_semi_sync_master_wait_for_slave_count。

可以看到,當rpl_semi_sync_master_wait_no_slave設置為OFF時,一旦Rpl_semi_sync_master_clients小于rpl_semi_sync_master_wait_for_slave_count,Rpl_semi_sync_master_status立即變為OFF,即立即降為異步復制。
推薦閱讀
- C語言程序設計(第3版)
- Designing Hyper-V Solutions
- The DevOps 2.5 Toolkit
- Visual C#通用范例開發金典
- Spring核心技術和案例實戰
- LabVIEW虛擬儀器程序設計從入門到精通(第二版)
- Frank Kane's Taming Big Data with Apache Spark and Python
- Scratch3.0趣味編程動手玩:比賽訓練營
- Learning AWS
- Oracle 12c從入門到精通(視頻教學超值版)
- Monitoring Docker
- Visual FoxPro程序設計習題及實驗指導
- Web開發新體驗
- Kohana 3.0 Beginner's Guide
- Zend Framework 2 Cookbook