mysql 8.0複製改進
一簡介: 基於GTID下的並行複製,本文不考慮MGR架構
二 主要特性
1 基於writeset的下的改進型並行複製
我在以前的一篇文章關於並行複製中詳細的介紹了關於各個版本的並行複製改進,這裏只着重再指出8.0的新特性
配置參數
slave-parallel-type=LOGICAL_CLOCK //複製方式
binlog_transaction_dependency_tracking = WRITESET(寫複製) (須要在主庫設置而且主庫開始在二進制日誌中存儲寫入writeset信息)
commit_order(默認,5.7並行複製)
WRITESET_SESSION(在寫複製基礎上增長session約束)
slave_parallel_workers=8 //複製線程
slave-preserve-commit-order=on //按照順序提交,5.7原生機制的並行複製順序同一時間內的順序混亂,必須添加此參數進行順序控制
1 過程 WRITESET 根據事務更新的每一行,計算一行hash,而後造成write_set集合.若是沒有操做相同的行,hash值是不同的,能夠併發執行=>(惟一性索引名+庫名+表名+值)
2 暫時不清楚採用writeset是否會丟失事務,可是理論上寫集合的複製是效率最高的mysql
2 複製參數特性
1 master_info_repository 和 relay_log_info_repository 默認設置爲 TABLE,能夠沒必要在配置文件中再進行標註
2 expire_log_days 的默認值也變成了 30
3 binlog_expire_log_seconds 默認(2592000,30天)更加細化的刪除策略
4 slave_rows_search_algorithms 當表中不存在主鍵或主鍵等效(非空惟一二級索引)時,可使用哈希表來避免重複的表掃描,防止出現以前的由於沒有主鍵致使的主從延遲問題
5 gtid_executed已不用再搭建從庫時執行清空,直接執行SET GTID_PURGED ="+gtid_set"便可
搭建從庫方案
1 mysqldump --single-transaction=1 -A --master-data=2 > a.sql
2 mysql < a.sql && change master to && start slave
簡化了流程sql