MySQL主从复制
主从复制是指将主数据库的DDL和DML操作通过二进制传到从库服务器当中,让后从库对这些日志进行执行,从而使得从库和主库数据保持同步。
MySQL复制的有点主要包含以下三个方面:
-
主库出现问题,可以快速切换到从库提供服务。
-
实现读写分离,降低主库的访问压力。
-
可以在从库中执行备份,以避免备份期间影响主库服务。
原理:
从上图来看,复制分成三步: 1.Master 主库在事务提交时,会把数据变更记录在二进制日志文件 Binlog 中。
2.从库读取主库的二进制日志文件 Binlog ,写入到从库的中继日志 Relay Log 。
3.slave重做中继日志中的事件,改变反映它自己的数据。
二进制日志:记录了所有的DDL(数据定义语言)DML(数据操纵语言),但不包括(select,show)
作用:
-
灾难时的数据恢复。
-
MySQL的主从复制。
show varisbles like '%log_bin%' 用来查看bin log日志的相关参数配置。
二进制日志的具体格式及特点:
-
statement:用来记录sql语句对于数据进行修改的sql都会记录在日志当中。
-
row:基于行的日志记录,记录每一行的变更,同时也是默认格式。
-
mixed:混合·了statement和row两种格式,默认采用statement,在某些情况下会自动切换为row进行记录。
show varisbles like '%binlog_format%' 用来查看相关参数。 二进制文件的查看: mysqlbinlog [参数] logfilename