代码改变世界

MySQL Replication的相关文件

2016-07-21 13:31  abce  阅读(650)  评论(0编辑  收藏  举报

1.master.info文件

位于slave端的数据目录下,存储slave连接到master的相关信息,如,master主机地址、连接用户、密码、端口、已经获取的日志信息。

复制过程中修改、删除master.info文件,不会中断复制。如果stop slave,然后start slave,可以正常启动起来,因为mysql已经记住了信息;但是当重启mysql时,在start slave,这时重启失败,会提示你change  master to

2.relay log

mysql-relay-bin.xxxxxn文件用于存放Slave端的I/O线程从Master端所读取到的Binary Log信息,然后由Slave端的SQL线程从该relay log中读取并解析相应的日志信息,转化成Master所执行的SQL语句,然后在Slave 端应用。

3.relay-log.info文件

类似master.info,存放通过slave的i/o线程写入到本地的relay log的相关信息。供slave端的sql线程以及某些管理操作随时能够获取当前复制的相关信息。

一般情况主从切换后,需要reset slave,清除relay-log.info。

4.mysql-bin.index

记录磁盘上二进制日志文件。MySQL依赖这个文件,除非在这个文件里有记录,否则MySQL识别不了二进制日志文件。

5.mysql-relay-bin-index

中继日志的索引文件

 

 

5.6中默认仍然是使用master.info和relay_log.info。同时也引入了新特性:crash-safe slave,可以将复制信息写入到mysql数据库中的表中。

(1)变量master-info-repository 设置为file的时候,还是使用master.info文件;设置为table的时候,就会将master信息写入mysql.slave_master_info表中。

(2)变量relay-log-info-repository 设置为file的时候,还是使用relay-log.info文件;设置为table的时候,就会将信息写入mysql.slave_relay_log_info表中。

这两个表都是myisam引擎表,建议将其修改innodb引擎表:

mysql> stop slave;
mysql> alter table mysql.slave_master_info engine=innodb;
mysql> alter table mysql.slave_relay_log_info engine=innodb;
mysql> start slave;