主从复制
主从复制可以有一个主数据源与多个从数据源构成,这样构建应用有以下有点
1、数据备份
2、读写分离提高服务响应
3、
实现方式:
binlog
1、有从节点决定复制那些表而不是由主节点控制
2、每个从节点都有一个唯一的serverId,并且需要配置主节点的host、logFileName以及日志游标位置
配置主节点
开启binlong与server-id
log-bin=mysql-bin
server-id=1
创建账户
mysql> CREATE USER 'repl'@'%.example.com' IDENTIFIED BY 'password';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%.example.com';# 给与从从节点权限
获取日志信息
mysql> FLUSH TABLES WITH READ LOCK;#将数据刷完并阻塞写入
SHOW MASTER STATUS;
配置从节点
开启binlong与server-id
log-bin=mysql-bin #从节点可以不配binlog,具体需要根据需求订(比如是否需要从从节点恢复数据,是否从节点会作为其他集群的主节点等)
server-id=1
配置主节点相关信息
CHANGE MASTER TO MASTER_HOST='source_host_name', MASTER_USER='replication_user_name', MASTER_PASSWORD='replication_password', MASTER_LOG_FILE='recorded_log_file_name', MASTER_LOG_POS=recorded_log_position;
gtids
日志格式
statement-based
优点
1、运用时间长(久经考验)
2、消耗空间少,恢复快
缺点
1、使用函数时无法获取到正确的值
2、某些操作会在数据上加更多的锁
row-based
优点
1、会更少的使用锁,并发度高
2、更新修改具体
缺点
1、存放日志消耗空间大
2、无法得知原始操作,只能知道数据修改
3、不支持myisam并发插入
相关配置
完整配置见 https://dev.mysql.com/doc/refman/5.7/en/replication-options.html
主要配置
| expire_logs_days: | binlog过期清除时间 | |
| ---- | ---- | ---- |
| ---- | ---- | ---- |
根据同步方式分为:
1、异步
2、半同步
至少一个从节点收到binlog日志并返回
3、全同步
4、延迟同步
同步格式:
1、statement
2、row
3、mixed

浙公网安备 33010602011771号