MySQL的复制技术
传统的主从复制:slave用master的二进制日志来同步数据
基本原理流程,3 个线程以及之间的关联;
主:binlog转储线程——记录下所有改变了数据库数据的语句,放进 master 上的 binlog 中。
从:io 线程——在使用 start slave 之后,负责从 master 上拉取 binlog 内容,放进自己的 relay log 中。
从:sql 执行线程——执行 relay log 中的语句。
半同步复制最大的特点就是改进了传统的主从复制潜在的主从不一致的问题,半同步复制要求master提交事务之后,等到至少一台slave接收到binlog并且成功写入到中继日志中才算返回给客户端成功提交的消息。这样就确保了master上所有的事物,都可以传递至至少一个slave,master宕机的情况下并不会丢失事物
MySQL中重要的五种日志文件,分别是:
二进制日志(binlog):记录对数据库执行更改的所有操作。
错误日志(errorlog):记录出错信息,也记录一些警告信息或者正确的信息。
慢查询日志(slow query log):设置一个阈值,将运行时间超过该值的所有 SQL 语句都记录到慢查询的日志文件中。
常规日志/一般查询日志(general log):记录所有对数据库请求的信息,不论这些请求是否得到了正确的执行
审计日志