Update MySQL_复制.md
This commit is contained in:
parent
7aaf9d1e85
commit
406660f682
@ -25,10 +25,10 @@
|
||||
MySQL 二进制日志是进行主从复制的基础,它记录了所有对 MySQL 数据库的修改事件,包括增删改查和表结构修改。当前 MySQL 一共支持三种二进制日志格式,可以通过 binlog-format 参数来进行控制,其可选值如下:
|
||||
|
||||
+ **STATEMENT**:段格式。是 MySQL 最早支持的二进制日志格式。其记录的是实际执行修改的 SQL 语句,因此在进行批量修改时其所需要记录的数据量比较小,但对于 UUID() 或者其他依赖上下文的执行语句,可能会在主备上产生不一样的结果。
|
||||
+ **ROW**:行格式,是 MySQL 5.7 版本之后默认的二进制日志格式。其记录的是修改前后的数据。因此在批量修改时其需要记录的数据量比较大,因为需要记录每一行语句修改后的结果。但其安全性比较高,不会导致主备出现不一致的情况。同时因为 ROW 格式是在从库上直接应用更改后的数据,其还能减少锁的使用。
|
||||
+ **ROW**:行格式,是 MySQL 5.7 版本之后默认的二进制日志格式。其记录的是修改前后的数据,因此在批量修改时其需要记录的数据量比较大,但其安全性比较高,不会导致主备出现不一致的情况。同时因为 ROW 格式是在从库上直接应用更改后的数据,其还能减少锁的使用。
|
||||
+ **MIXED**:是以上两种日志的混合方式,默认采用段格式进行记录,当段格式不适用时 (如 UUID() ),则默认采用 ROW 格式。
|
||||
|
||||
通常在主备之间网络情况良好的时,可以优先考虑使用 ROW 格式,此时数据一致性最高,其次是 MIXED 格式。在设置 ROW 格式时,还有一个非常重要的参数 binlog_row_image 。
|
||||
通常在主备之间网络情况良好的时,可以优先考虑使用 ROW 格式,此时数据一致性最高,其次是 MIXED 格式。在设置 ROW 格式时,还有一个非常重要的参数 binlog_row_image :
|
||||
|
||||
### 1.2 binlog_row_image
|
||||
|
||||
@ -216,7 +216,7 @@ enforce-gtid-consistency = ON
|
||||
STOP SLAVE IO_THREAD FOR CHANNEL '';
|
||||
```
|
||||
|
||||
建立新的基于 GTID 复制链路,指定 MASTER_AUTO_POSITION = 1 表示由程序来自动确认开始同步的 GTID 的位置:
|
||||
建立新的基于 GTID 复制链路,指定 `MASTER_AUTO_POSITION = 1` 表示由程序来自动确认开始同步的 GTID 的位置:
|
||||
|
||||
```shell
|
||||
CHANGE MASTER TO MASTER_HOST='192.168.0.226',\
|
||||
@ -367,7 +367,7 @@ MHA (Master High Availability) 是由 Perl 实现的一款高可用程序,相
|
||||
|
||||
1. 尝试从宕机 Master 中保存二进制日志;
|
||||
2. 找到含有最新中继日志的 Slave;
|
||||
3. 把最新中继日志应用到其他实例,实现各实例数据一致;
|
||||
3. 把最新中继日志应用到其他实例,保证各实例数据一致;
|
||||
4. 应用从 Master 保存的二进制日志事件;
|
||||
5. 提升一个 Slave 为 Master ;
|
||||
6. 其他 Slave 向该新 Master 同步。
|
||||
|
Loading…
x
Reference in New Issue
Block a user