mysql的扩展:
1.读写分离
2.复制:每个节点有相同的数据集,向外扩展,基于二进制日志的单向复制
复制的作用:
1.数据分布
2.负载均衡读操作
3.备份
4.高可用和故障切换
5.mysql升级测试
复制的架构:
1.一主一从
2.一主多从
主从复制的过程:
1.主节点数据更新
2.主节点写入binlog
3.主节点dump线程,发送binlog events到从节点
4.从节点 i/o线程,请求并接受主节点发送的binlog events,保存在relay log
5.从节点 sql线程,从relaylog读取日志事件,本地完成重放
复制相关的文件:
master.info 从节点连接至主节点的相关信息,如账号密码、主节点地址等
relay-log.info
mariadb-relay-bin.0000 中继日志,保存从主节点复制来的二进制日志
主从复制的特点
默认情况异步复制,即主节点更新数据完成后,立即返回到客户端,而不等待复制活动是否完成
客户端访问性能良好,但是容易出现主从数据不一致
配置一主一从:
(mysql5.7,主IP172.29.9.5,从ip172.29.9.8)
主节点操作:
1./etc/my.cnf
[mysqld]
server-id=5
log-bin
2.创建复制用户
GRANT REPLICATION SLAVE ON . TO repluser@‘172.29.9.%’ IDENTIFIED BY ‘123’;
3.查看binlog信息
mysql> show master logs;
±-----------------±----------+
| Log_name | File_size |
±-----------------±----------+
| mysql-bin.000001 | 177 |
| mysql-bin.000002 | 776 |
| mysql-bin.000003 | 424
从节点操作:
1./etc/my.cnf
[mysqld]
server-id=8
read_only=on
2.使用复制用户连接主服务器
CHANGE MASTER TO
MASTER_HOST=‘172.29.9.5’,
MASTER_USER=‘repluser’,
MASTER_PASSWORD=‘123’,
MASTER_PORT=3306,
MASTER_LOG_FILE=‘mysql-bin.000003’,
MASTER_LOG_POS=424;
3.启动slave 线程 START SLAVE;
4.查看 SHOW SLAVE STATUS/G
配置主从半同步
主节点:
INSTALL PLUGIN rpl_semi_sync_master SONAME ‘semisync_master.so’;
SHOW PLUGINS;
SET GLOBAL rpl_semi_sync_master_enabled=1;
SET GLOBAL rpl_semi_sync_master_timeout=3000;
SHOW GLOBAL VARIABLES LIKE ‘%SEMI%’;
从节点
INSTALL PLUGIN rpl_semi_sync_slave SONAME ‘semisync_slave.so’;
SET GLOBAL rpl_semi_sync_slave_enable=1;