一 relay log files
relay log 和 binary log 日志类似, 记录了数据库的变化,由一系列文件组成, relaoy log 记录了主节点发来的数据库变化信息,并且由 I/O thread 写入。之后 SQL thread 在备节点上执行 relay log 文件里的事件。
--查看 relay log
[root@test1 mysql_3306]# ll -h
total 1.7G
drwx------ 2 mysql mysql 4.0K Sep 13 08:50 AAA
-rw-rw---- 1 mysql mysql 56 Sep 7 04:02 auto.cnf
-rw-rw---- 1 mysql mysql 75K Sep 14 02:39 error.log
-rw-rw---- 1 mysql mysql 200M Sep 14 02:33 ibdata1
-rw-rw---- 1 mysql mysql 500M Sep 14 02:33 ib_logfile0
-rw-rw---- 1 mysql mysql 500M Sep 7 04:00 ib_logfile1
-rw-rw---- 1 mysql mysql 500M Sep 7 04:00 ib_logfile2
-rw-rw---- 1 mysql mysql 3.5K Sep 14 02:43 innodb_status.3585
-rw-rw---- 1 mysql mysql 1.1K Sep 13 09:17 mybinlog.000001
-rw-rw---- 1 mysql mysql 191 Sep 14 02:33 mybinlog.000002
-rw-rw---- 1 mysql mysql 36 Sep 14 02:33 mybinlog.index
-rw-r--r-- 1 mysql mysql 2.6K Sep 13 07:58 my.cnf
drwx------ 2 mysql mysql 4.0K Sep 7 04:00 mysql
-rwxr-xr-x 1 root root 1.6K Sep 7 04:01 mysqld
-rw-rw---- 1 mysql mysql 5 Sep 14 02:33 mysql.pid
-rw-rw---- 1 mysql mysql 744 Sep 13 09:02 mysql-relay-bin.000004
-rw-rw---- 1 mysql mysql 714 Sep 13 09:17 mysql-relay-bin.000005
-rw-rw---- 1 mysql mysql 120 Sep 14 02:33 mysql-relay-bin.000006
-rw-rw---- 1 mysql mysql 75 Sep 14 02:33 mysql-relay-bin.index
drwx------ 2 mysql mysql 4.0K Sep 7 04:00 performance_schema
-rw-rw---- 1 mysql mysql 756 Sep 14 02:33 slow.log
备注: mysql-relay-bin 打头的几个文件就是 relay log,其中 mysql-relay-bin.index 为索引文件; 默认在主数据目录下,格式为 host_name-relay-bin。
二 master info logmaster info log 文件记录了备节点的连接信息,例如用户名,密码等。同时包括主节点信息,目前版本这个文件可以写到 MySQL 系统表中,但需要设置以下参数:
--设置备节点 my.cnf
备注:之后重启 mysql 服务master-info-repository=TABLE
--查看 slave_master_info 表
mysql> select * from slave_master_info\G
*************************** 1. row ***************************
Number_of_lines: 23
Master_log_name: mybinlog.000001
Master_log_pos: 944
Host: 192.168.18.50
User_name: copy
User_password: 123456
Port: 3306
Connect_retry: 60
Enabled_ssl: 0
Ssl_ca:
Ssl_capath:
Ssl_cert:
Ssl_cipher:
Ssl_key:
Ssl_verify_server_cert: 0
Heartbeat: 1800
Bind:
Ignored_server_ids: 0
Uuid: c18578f6-9338-11e7-9833-080027eb4c97
Retry_count: 86400
Ssl_crl:
Ssl_crlpath:
Enabled_auto_position: 1
1 row in set (0.00 sec)
备注:这里密码 User_password 显示为明文。
三 relay log info log
relay log info log 文件记录了备节点应用 relay log 文件的进度情况,目前版本这个文件可以写到 MySQL 系统表中,但需要设置以下参数
--设置备节点 my.cnf
备注:之后重启 mysql 服务relay_log_info_repository=TABLE
--查看 slave_relay_log_info 表
mysql> select * from slave_relay_log_info \G;
*************************** 1. row ***************************
Number_of_lines: 7
Relay_log_name: ./mysql-relay-bin.000006
Relay_log_pos: 4
Master_log_name: mybinlog.000001
Master_log_pos: 944
Sql_delay: 0
Number_of_workers: 4
Id: 1
1 row in set (0.00 sec)
注意问题:
1、如果修改删除master.info文件,复制会中断么?
不会,如果stop slave,然后start slave还是能正常启动起来,因为mysql已经记住这里面的信息了,但是当你重启mysql时,在start slave,这时重启失败,会提示你change master to
2、master.info是在什么时候写入的呢?
change master to ..其他时候该文件不会被修改也不会被读取(重启除外).
3、relay-log.info 这个文件只有在重启时会被读取,但是只要这个文件存在存在,有数据写入,他就会变化;如果删除这个文件对复制也没有影响(重启除外),
一般情况主从切换后,需要reset slave,清除relay-log.info。
参考博文:
http://francs3.blog.163.com/blog/static/405767272014111093328416/
http://blog.csdn.net/z1988316/article/details/8179238