主从复制

主从复制可以有一个主数据源与多个从数据源构成,这样构建应用有以下有点
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

posted @ 2021-02-28 22:59  犬犬呀  阅读(21)  评论(0)    收藏  举报