Mysql主备复制原理探究

工作原理

  1. master执行过得sql语句记录到二进制日志(binlog)文件中,(这些记录叫做二进制日志事件,binary log events,可以通过show binlog events进行查看);
  2. binlog传到slave,当中使用IO Thread,且binlog文件的保存时间可以在my.cnf进行配置。expire_logs_days=7,将binlog保存为7天。也存在binlog占用磁盘空间过大的问题,对此有了binlog有三种格式:StatementRow以及Mixed

    Statement:每一条会修改数据的sql都会记录在binlog中。

    Row:不记录sql语句,而是记录具体哪条数据做了修改。

    Mixed:以上两种模式的混合使用,具体不太懂……

  有个重建IO Thread的方式,是

  stop slave;

  reset slave;

  change master to

  master_host = '<MasterDBIP>',

  master_post = '<dbPort>',

  master_auto_position = 1;

 

  start slave USER = ’Repl_slave_priv权限’;

  Password = ‘.....’

 

  Set global read_only = true;

 

  3.SQL Thread binlog文件转化为relaylog,在备实例中,同步数据。

 

posted @ 2018-04-24 23:41  卮酒安足辞  阅读(57)  评论(0)    收藏  举报