1.并行复制
原理可以参考以下网址并行复制原理
-为了兼容MySQL 5.6基于库的并行复制,5.7引入了新的变量slave-parallel-type,
-其可以配置的值有:
DATABASE:默认值,基于库的并行复制方式
LOGICAL_CLOCK:基于组提交的并行复制方式
- 若将slave_parallel_workers设置为0,则MySQL 5.7退化为原单线程复制,
但将slave_parallel_workers设置为1,则SQL线程功能转化为coordinator线程,
但是只有1个worker线程进行回放,也是单线程复制。然而,这两种性能却又有
一些的区别,因为多了一次coordinator线程的转发,因此
slave_parallel_workers=1的性能反而比0还要差,
1.1 基于组的并行复制(组复制)
2. 组复制之多主模式
单主模式可以下来自己查询进行配置实验!
2.1 初始环境
2.2 多主模式配置
- server1上的所有配置
- [mysqld]
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/data/mysql/mysql.sock
disabled_storage_engines="MyISAM,BLACKHOLE,FEDERATED,ARCHIVE,MEMORY"
server_id=1
gtid_mode=ON
enforce_gtid_consistency=ON
master_info_repository=TABLE
relay_log_info_repository=TABLE
binlog_checksum=NONE
log_slave_updates=ON
log_bin=binlog
binlog_format=ROW
plugin_load_add='group_replication.so'
transaction_write_set_extraction=XXHASH64
group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
group_replication_start_on_boot=off
group_replication_local_address= "server1:33061"
group_replication_group_seeds= "server1:33061,server2:33061,server3:33061"
group_replication_bootstrap_group=off
server1的组复制全部过程!!!
- 直接参照mysql.com做
server2配置,和server1配置大同小异
server3的设置,可以直接复制server2的配置
2.3 验证
server1插入数据
server2插入数据
server3插入数据
3. 慢查询
- 生产环境中一定要打开慢查询,不然有些sql语句会对数据库产生影响!
- set global slow_query_log=ON;
show variables like "long%";
set long_query_time=5;
show status like 'slow%';