系统学习MySQL:1mysql系统库之复制信息表

Posted MySQL成长之路

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了系统学习MySQL:1mysql系统库之复制信息表相关的知识,希望对你有一定的参考价值。

  复制信息表在从库复制主库的数据期间,用于保存从主库转发到从库的binlog(二进制日志)事件,记录有关relay log(中继日志)当前状态和位置的信息。
 
master.info文件或者mysql.slave_master_info表:用于保存从库的I/O线程连接主库的连接状态、账号、IP地址、端口、密码,以及I/O线程当前读取主库binlog的文件和位置信息(称为I/O线程信息日志)。在默认情况下,I/O线程的连接信息和状态保存在master.info文件中(默认位置在datadir下,可以使用master_info_file参数指定master.info文件路径。注:在MySQL 5.7.x较新的版本以及8.0.x版本中该参数已经被移除)。如果需要保存在mysql.slave_master_info表中,则需要在服务器启动之前设置 master_info_repository=TABLE
如果需要保存在
mysql.slave_relay_log_info表中,则需要在服务器启动之前设置relay_log_info_repository=TABLE
将relay_log_info_repository和master_info_repository设置为TABLE,可以提高数据库本身或者所在主机意外终止之后崩溃恢复的能力(这两个表是InnoDB表,可以保证崩溃之后表中的位置信息不丢失),且可以保证数据一致性。
 
当从库崩溃时,SQL线程可能还有一部分relay log重放延迟。另外,I/O线程的位置也可能正处于一个事务的中间,并不完整,所以必须在从库上启用参数
relay_log_recovery=ON。当启用该参数之后,从库崩溃恢复时会清理掉SQL线程未重放完成的relay log,并以SQL线程的位置为准重置I/O线程的位置,重新从主库请求
 

以上是关于系统学习MySQL:1mysql系统库之复制信息表的主要内容,如果未能解决你的问题,请参考以下文章

1MySQL 基础

1mysql数据库语法

mysql系统数据库

1MySQL数据库基本介绍

业务零影响!如何在Online环境中巧用MySQL传统复制技术

1MySql学习