mysql主从备份底层知识

来源:互联网 发布:先入为主知乎 编辑:程序博客网 时间:2024/04/30 02:29
1、binlog
1、binlog
mysql的binlog记录了数据库的所有操作,比如我新建一个数据库test,建立数据库时也开启了binlog,那么mysql会在var目录生成类似mysql-bin.000001文件,这个文件记录了对数据库test的所有操作sql命令,每个binlog文件默认大小为1G,超过了会自动换到mysql-bin.000002.mysql-bin.index记录了所有mysql-bin的名字。
mysql-bin.index示例:
./mysql-bin.000001
./mysql-bin.000002
./mysql-bin.000003数据主从备份其实就是master把binlog发给slave,然后slave在本地执行这些SQL语句

2、master.info
master.info文件存在于slave的var目录,记录了master的信息。
master.info示例:
 15
mysql-bin.000003       //master的binlog文件
1176                  //偏移值
rep1                  //master主机名、也可以是IP
rep                   //用户名
rep                   //密码
3306                  //端口
60
0





0
3、relay-log.info
relay-log.info文件存在于slave的var目录,记录了slave执行binlog文件情况的信息。
relay-log.info示例:
 ./Ping-relay-bin.000010        //slave存放master的binlog的文件
251                             //slave偏移值
mysql-bin.000003               //master的binlog文件
1176                            //master的偏移值
 从mater的mysql-bin.000003发送信息写到Ping-relay-bin.000010文件里,slave再从Ping-relay-bin.000010取SQL语句执行。

4、Ping-relay-bin.index
Ping-relay-bin.index文件位于slave的var目录,记录了Slave将master所有已经转换为relay-bin,并在执行的信息。
Ping-relay-bin.index示例:
 ./Ping-relay-bin.000009
./Ping-relay-bin.000010从master传送过来的binlog首先在slave端转换为类似Ping-relay-bin.000009的文件(文件里面其实存储就是SQL语句),然后再在本地执行这个SQL语句。