mysql relay bin 主库_MySQL主库binlog(master-log)与从库relay-log关系代码详解

主库binlog:

# at 2420

#170809 17:16:20 server id 1882073306 end_log_pos 2451 CRC32 0x58f2db87 Xid = 32880

COMMIT/*!*/;

# at 2451

#170814 11:07:18 server id 1882073306 end_log_pos 2528 CRC32 0x40774a4b Query thread_id=92 exec_time=0 error_code=0

SET TIMESTAMP=1502680038/*!*/;

BEGIN

/*!*/;

# at 2528

# at 2560

#170814 11:07:18 server id 1882073306 end_log_pos 2560 CRC32 0x7bdf274b Intvar

SET INSERT_ID=107/*!*/;

#170814 11:07:18 server id 1882073306 end_log_pos 2669 CRC32 0x68e441c8 Query thread_id=92 exec_time=0 error_code=0

SET TIMESTAMP=1502680038/*!*/;

insert into t2 (name) values ('a100')

/*!*/;

# at 2669

# at 2701

#170814 11:07:27 server id 1882073306 end_log_pos 2701 CRC32 0xcf89b910 Intvar

SET INSERT_ID=108/*!*/;

#170814 11:07:27 server id 1882073306 end_log_pos 2810 CRC32 0x78466d7b Query thread_id=92 exec_time=0 error_code=0

SET TIMESTAMP=1502680047/*!*/;

insert into t2 (name) values ('a200')

/*!*/;

# at 2810

# at 2842

#170814 11:07:30 server id 1882073306 end_log_pos 2842 CRC32 0x1e5a0847 Intvar

SET INSERT_ID=109/*!*/;

#170814 11:07:30 server id 1882073306 end_log_pos 2951 CRC32 0xebeb947c Query thread_id=92 exec_time=0 error_code=0

SET TIMESTAMP=1502680050/*!*/;

insert into t2 (name) values ('a300')

/*!*/;

# at 2951

#170814 11:07:34 server id 1882073306 end_log_pos 2982 CRC32 0x6436ad60 Xid = 32934

COMMIT/*!*/;

从库relay-log:

/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;

/*!40019 SET @@session.max_insert_delayed_threads=0*/;

/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;

DELIMITER /*!*/;

# at 4

#170809 17:17:24 server id 1882083306 end_log_pos 120 CRC32 0x5df4221c Start: binlog v 4, server v 5.6.23-72.1-log created 170809 17:17:24

# at 120

#700101 8:00:00 server id 1882073306 end_log_pos 0 CRC32 0x0b8a412f Rotate to test-mysql-bin.000116 pos: 2451

# at 172

#170809 16:28:12 server id 1882073306 end_log_pos 0 CRC32 0xd0d3bf30 Start: binlog v 4, server v 5.6.23-72.1-log created 170809 16:28:12

# at 288

#170814 11:07:18 server id 1882073306 end_log_pos 2528 CRC32 0x40774a4b Query thread_id=92 exec_time=0 error_code=0

SET TIMESTAMP=1502680038/*!*/;

SET @@session.pseudo_thread_id=92/*!*/;

SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;

SET @@session.sql_mode=1073741824/*!*/;

SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;

/*!C utf8 *//*!*/;

SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=33/*!*/;

SET @@session.lc_time_names=0/*!*/;

SET @@session.collation_database=DEFAULT/*!*/;

BEGIN

/*!*/;

# at 365

# at 397

#170814 11:07:18 server id 1882073306 end_log_pos 2560 CRC32 0x7bdf274b Intvar

SET INSERT_ID=107/*!*/;

#170814 11:07:18 server id 1882073306 end_log_pos 2669 CRC32 0x68e441c8 Query thread_id=92 exec_time=0 error_code=0

use `db1`/*!*/;

SET TIMESTAMP=1502680038/*!*/;

insert into t2 (name) values ('a100')

/*!*/;

# at 506

# at 538

#170814 11:07:27 server id 1882073306 end_log_pos 2701 CRC32 0xcf89b910 Intvar

SET INSERT_ID=108/*!*/;

#170814 11:07:27 server id 1882073306 end_log_pos 2810 CRC32 0x78466d7b Query thread_id=92 exec_time=0 error_code=0

SET TIMESTAMP=1502680047/*!*/;

insert into t2 (name) values ('a200')

/*!*/;

# at 647

# at 679

#170814 11:07:30 server id 1882073306 end_log_pos 2842 CRC32 0x1e5a0847 Intvar

SET INSERT_ID=109/*!*/;

#170814 11:07:30 server id 1882073306 end_log_pos 2951 CRC32 0xebeb947c Query thread_id=92 exec_time=0 error_code=0

SET TIMESTAMP=1502680050/*!*/;

insert into t2 (name) values ('a300')

/*!*/;

# at 788

#170814 11:07:34 server id 1882073306 end_log_pos 2982 CRC32 0x6436ad60 Xid = 32934

COMMIT/*!*/;

注意relay log的这一行:

#700101  8:00:00 server id 1882073306  end_log_pos 0 CRC32 0x0b8a412f  Rotate to test-mysql-bin.000116  pos: 2451

说明此relay log保存的是主库 test-mysql-bin.000116 的信息,从position 2451 开始。

看一个具体的对应关系:

主库的binlog如下:

# at 2560

#170814 11:07:18 server id 1882073306 end_log_pos 2560 CRC32 0x7bdf274b Intvar

SET INSERT_ID=107/*!*/;

#170814 11:07:18 server id 1882073306 end_log_pos 2669 CRC32 0x68e441c8 Query thread_id=92 exec_time=0 error_code=0

SET TIMESTAMP=1502680038/*!*/;

insert into t2 (name) values ('a100')

/*!*/;

# at 2669

对应从库relay-log如下几行:

# at 397

#170814 11:07:18 server id 1882073306 end_log_pos 2560 CRC32 0x7bdf274b Intvar

SET INSERT_ID=107/*!*/;

#170814 11:07:18 server id 1882073306 end_log_pos 2669 CRC32 0x68e441c8 Query thread_id=92 exec_time=0 error_code=0

use `db1`/*!*/;

SET TIMESTAMP=1502680038/*!*/;

insert into t2 (name) values ('a100')

/*!*/;

# at 506

另外注意show slave statusG的以下几行的关系:

Master_Log_File: test-mysql-bin.000117

Read_Master_Log_Pos: 774

上面二行代表IO线程,相对于主库

Relay_Log_File: relay-log.000038

Relay_Log_Pos: 723

上面二行代表了sql线程,相对于从库

Relay_Master_Log_File: test-mysql-bin.000117

Exec_Master_Log_Pos: 555

上面二行代表了sql线程,相对主库

其中Relay_Log_Pos: 723 和 Exec_Master_Log_Pos: 555 对应的sql语句一致。

总结

以上就是本文关于MySQL主库binlog与从库relay-log关系代码详解的全部内容,希望对大家有所帮助。感兴趣的朋友可以参阅:mysql中binlog_format模式与配置详细分析、几个比较重要的MySQL变量、MySQL prepare原理详解等,有什么问题可以随时留言,欢迎大家交流讨论。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值