MySQL 5.7 并行复制参数优化
mysql 并行同步原理圖如上。
Enhanced Multi-Threaded Slave配置
要開啟enhanced multi-threaded slave其實很簡單,只需根據如下設置:
slave
slave-parallel-type=LOGICAL_CLOCK
slave-parallel-workers=16
master_info_repository=TABLE
relay_log_info_repository=TABLE
relay_log_recovery=ON
并行復制監控
在配置完成后,performance_schema mysql 的性能視圖表,增加了以下表,
方便進行主從同步的性能監控。
root@slave: (performance_schema)>show tables like ‘replication%’;
+———————————————+
| Tables_in_performance_schema (replication%) |
+———————————————+
| replication_applier_configuration |
| replication_applier_status |
| replication_applier_status_by_coordinator |
| replication_applier_status_by_worker |
| replication_connection_configuration |
| replication_connection_status |
| replication_group_member_stats |
| replication_group_members |
+———————————————+
8 rows in set (0.01 sec)
參數優化說明:
slave
slave-parallel-type=LOGICAL_CLOCK
slave-parallel-workers=4
master_info_repository=TABLE
relay_log_info_repository=TABLE
relay_log_recovery=ON
slave_parallel_workers
若將slave_parallel_workers設置為0,則MySQL 5.7退化為原單線程復制,
但將slave_parallel_workers設置為1,則SQL線程功能轉化為coordinator線程,
但是只有1個worker線程進行回放,也是單線程復制。然而,這兩種性能卻又有一些的區別,因為多了一次coordinator線程的轉發,
因此slave_parallel_workers=1的性能反而比0還要差,經測試還有20%左右的性能下降,
master_info_repository ,relay_log_info_repository
兩個參數的值有2種設置類型: file,table,
將參數master_info_repostitory設置為TABLE,這樣性能可以有50%~80%的提升。
當設置為table 后,之前的文件:
master.info
relay-log.info 將被刪除消失。
代之的是兩個表,可以在表中進行查詢相關信息。。
mysql.slave_master_info
mysql.slave_relay_log_info
root@slave: (test)>select * from mysql.slave_master_info\G
***************** 1. row *****************
Number_of_lines: 25
Master_log_name: mysql-bin.000022
Master_log_pos: 3901814
Host: 10.20.0.11
User_name: repl
User_password: 123456
Port: 3001
Connect_retry: 60
Enabled_ssl: 0
Ssl_ca:
Ssl_capath:
Ssl_cert:
Ssl_cipher:
Ssl_key:
Ssl_verify_server_cert: 0
Heartbeat: 30
Bind:
Ignored_server_ids: 0
Uuid: 403d88ce-f9d6-11e7-a86f-0050563dd912
Retry_count: 86400
Ssl_crl:
Ssl_crlpath:
Enabled_auto_position: 0
Channel_name:
Tls_version:
1 row in set (0.01 sec)
root@slave: (test)>select * from mysql.slave_relay_log_info\G
***************** 1. row *****************
Number_of_lines: 7
Relay_log_name: /opt/data/mysql/mysql-relay-bin.000002
Relay_log_pos: 3902791
Master_log_name: mysql-bin.000022
Master_log_pos: 3902625
Sql_delay: 0
Number_of_workers: 4
Id: 1
Channel_name:
1 row in set (0.15 sec)
2表字段說明請看URL: https://blog.csdn.net/xxj123go/article/details/72828883
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的MySQL 5.7 并行复制参数优化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于cast类型转换后无法使用索引的优化
- 下一篇: MYSQL从节点延迟问题原因及解决