一、什么是Binlog?
Mysql的二进制日志可以是Mysql最重要的日志, 记录了所有的DDL和DML语句(除了数据查询语句之外的语句)语句,以事件形式记录,还包含语句所执行的消耗时间,Mysql的二进制日志是事务安全型的。
二进制日志包含两类文件:
1、二进制日志索引文件(文件后缀为".index")用于记录有所的二进制文件;
2、二进制日志文件(文件后缀为“.00000*”)记录了数据库所有的DDL和DML(除了数据查询语句之外的语句)
二、Binlog类型
Mysql Binlog种类有三种:Statement、Mixed、Row。
1、Statement:语句级,binlog会记录每次执行写操作的语句。
优点:节省空间。
缺点:有可能造成数据不一致。
2、row:行级,binlog会记录每次操作后每行记录的结果。
优点:保持数据的绝对一致性。
缺点:占用较大空间。
3、mixed:statement的升级版本,一定程度上解决了因为一些情况而造成的statement模式不一致问题,默认还是statement,在某些情况下,譬如:当函数中包含UUID()时,包含AUTO_INCREMENT字段的表被更新时;执行INSERT DELAYED语句时;用UDF时;会按照ROW的方式进行处理
优点:节省空间,同时兼顾了一定的一致性。
缺点:还有些极个别情况依旧会造成不一致,另外statement和mixed对于需要对binlog的监控的情况都不方便。
三、主从同步机制
1、从数据库执行start slave,开启主从复制开关,slave服务器的IO线程请求从master服务器读取binlog(如果该线程追赶上了主库,会自动进入休眠状态)。
2、主数据库的更新SQL(update、insert、delete)被写到binlog,主库的binlog dump thread会把binlog的内容发送到从库。
3、从库启动之后,创建一个I/O线程,读取主库传过来的binlog内容并写到relaylog(会记录位置信息,一遍下次继续读取)。
4、从服务器的sql线程会实时检测relaylog中新增的日志内容,把relaylog解析成sql语句并执行。
四、主从同步配置
1、主数据库
1)登入MySQL,创建用于同步的账号(主数据库上创建)
[root@centos7-192.168.1.40 opt]# grant replication slave on *.* to replication@'从库IP地址/IP地址段' identified by '123456';
2)查看master状态,并记录File:xxx、Position:yyy
[root@centos7-192.168.1.40 opt]# show master status \G;
从数据库
1)登入MySQL,指定主数据库服务器信息
mysql>change master to master_host='192.168.1.40', #主数据库IP地址master_user='replication', #主数据库上的同步账户账号master_password='starcor', #同步账号密码master_log_file='mysql-bin.000007', #日志文件(主库:show master status)master_log_pos=341; #偏移位置(主/从库位置偏移了多少)
2)修改auto.cnf配置文件的server-uuid配置
mysql>show variables like 'datadir'; #查看auto.cnf存放路径+---------------+-------------------+| Variable_name | Value |+---------------+-------------------+| datadir | /data/mysql/data/ |+---------------+-------------------+1 row in set (0.01 sec)主从之间的server-uuid配置不能一致。
3)修改my.cnf配置文件的server-id配置
主从之间的server-id配置不能一致。
4)启动slave程序g
mysql>start slave;
5)检查同步状态
mysql>show slave status \G;# 检查项Slave_IO_Running: Yes #用于主从同步的线程IO线程是否在跑(Last_IO_Error:记录IO报错信息)Slave_SQL_Running: Yes #从数据库的SQL执行线程是否在跑(Last_SQL_Error:记录SQL报错信息)
来源地址:https://blog.csdn.net/BiQing11/article/details/131352436