mysql复制一条record_MySQL复制的管理和维护

本文介绍了如何查看MySQL主库的二进制日志状态以及复制库的延迟情况,强调了`Seconds_Behind_Master`字段的局限性。同时,提出了使用 heartbeat record 和 Percona 的 pt-table-checksum 工具来更准确地检测主备数据一致性。
摘要由CSDN通过智能技术生成

1.查看主库

mysql> show master status;

mysql> show master status;

+------------------+-----------+--------------+------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+-----------+--------------+------------------+

| mysql-bin.000013 | 971159980 | | |

+------------------+-----------+--------------+------------------+

1 row in set (0.00 sec)

mysql> show master logs;

mysql> show master logs;

+------------------+------------+

| Log_name | File_size |

+------------------+------------+

| mysql-bin.000011 | 1073949250 |

| mysql-bin.000012 | 1073751139 |

| mysql-bin.000013 | 971159980 |

+------------------+------------+

3 rows in set (0.00 sec)

mysql> show binlog events in 'mysql-bin.000013' from 971245404;

mysql> show binlog events in 'mysql-bin.000013' from 971245404;

+------------------+-----------+-------------+-----------+-------------+-----------------------------------------+

| Log_name | Pos | Event_type | Server_id | End_log_pos | Info |

+------------------+-----------+-------------+-----------+-------------+-----------------------------------------+

| mysql-bin.000013 | 971245404 | Query | 1 | 971245474 | BEGIN |

| mysql-bin.000013 | 971245474 | Table_map | 1 | 971245651 | table_id: 175 (attend.sys_user) |

| mysql-bin.000013 | 971245651 | Update_rows | 1 | 971246116 | table_id: 175 flags: STMT_END_F |

| mysql-bin.000013 | 971246116 | Table_map | 1 | 971246185 | table_id: 176 (attend.sys_user_branch) |

| mysql-bin.000013 | 971246185 | Write_rows | 1 | 971246266 | table_id: 176 flags: STMT_END_F |

| mysql-bin.000013 | 971246266 | Table_map | 1 | 971246335 | table_id: 176 (attend.sys_user_branch) |

| mysql-bin.000013 | 971246335 | Delete_rows | 1 | 971246416 | table_id: 176 flags: STMT_END_F |

| mysql-bin.000013 | 971246416 | Xid | 1 | 971246443 | COMMIT /* xid=3065249192 */ | |

+------------------+-----------+-------------+-----------+-------------+-----------------------------------------+

8 rows in set (0.00 sec)

2.查看复制库延迟

mysql> show slave status\G

mysql> show slave status\G

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 192.168.10.106

Master_User: repl

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin.000013

Read_Master_Log_Pos: 971434196

Relay_Log_File: mysql-relay-bin.000002

Relay_Log_Pos: 126333146

Relay_Master_Log_File: mysql-bin.000013

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

Replicate_Do_DB:

Replicate_Ignore_DB:

Replicate_Do_Table:

Replicate_Ignore_Table:

Replicate_Wild_Do_Table:

Replicate_Wild_Ignore_Table:

Last_Errno: 0

Last_Error:

Skip_Counter: 0

Exec_Master_Log_Pos: 971434196

Relay_Log_Space: 126333302

Until_Condition: None

Until_Log_File:

Until_Log_Pos: 0

Master_SSL_Allowed: No

Master_SSL_CA_File:

Master_SSL_CA_Path:

Master_SSL_Cert:

Master_SSL_Cipher:

Master_SSL_Key:

Seconds_Behind_Master: 0

Master_SSL_Verify_Server_Cert: No

Last_IO_Errno: 0

Last_IO_Error:

Last_SQL_Errno: 0

Last_SQL_Error:

Replicate_Ignore_Server_Ids:

Master_Server_Id: 1

1 row in set (0.00 sec)

Seconds_Behind_Master:

·显示备库延迟,但不准确

·将服务器当前的时间戳与二进制日志中的事件时间戳相对比,所以只有在执行复制事件时才能报告延迟

·如果复制线程没有运行,延迟报告为null

·有时复制发生错误时,该参数为显示为0,而不是显示错误

·有时,即使复制线程正常运行,也不能估算延迟,而是显示0或null

·大事务会导致延迟波动

检测延迟比较好的方法是:使用heartbeat record。

3. 确认主备是否一致

mysql没有内建方法来确认主备是否一致。checksum table可以校验数据,但是复制正在进行时,这种方法不可行。

可以使用percona提供的pt-table-checksum来校验主备数据是否一致。(结合pt-table-sync使用,重新同步数据)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值