nihaogirl 发表于 2018-10-7 07:15:24

Mysql Replication配置项简述(二)

1、log_bin:指定binlog文件的名称,同时也表示开启binlog功能,在replication模式下,master上必须开启log_bin,如果slave不需要failover,可以不开启。文件将会放置在“datadir”目录下。  2、binlog_checksum:是否开启binlog校验功能,在5.6.6+之后此值默认为“CRC32”,此前版本默认为“NONE”表示不开启校验和算法;用于控制master将每个变更操作写入binlog时是否携带checksum值,使用checksum可以在replication时,slave用于校验变更操作在网络传输时是否被破坏。
  3、binlog_format:可选值“MIXED”、“ROW”、“STATEMENT”,在5.6版本之前默认为“STATEMENT”,5.6之后默认为“MIXED”;因为“STATEMENT”方式在处理一些“不确定”性的方法时会造成数据不一致问题,我们建议使用“MIXED”或者“ROW”。
  4、sync_binlog:binlog文件刷新磁盘的时机,默认为“0”,表示binlog刷新磁盘的时机有操作系统决定,“1”表示每个变更操作写入binlog后立即刷新磁盘,这是最安全的方式,在crash时最多丢失一个“group”,当然也是磁盘效率最低的一种;其他任何大于0的数字,表示“多少次”变更操作写入binlog文件后执行flush。此值越大,对磁盘IO消耗越小,当回额外消耗内存,效率越高。
  5、binlog_row_image:可选值“full”、“minimal”、“noblob”,默认值为“full”,对“STATEMENT”复制模式无效;每个变更操作发生时,都有2个“image”,“before”表示变更前此行所有列的值,“after”表示变更后此行所有列的值;“full”表示在binlog中将会记录before和after的全部信息,易于排错,但是会导致日志量很大,对磁盘空间和网络传输都有一定的影响;“minimal”只记录before中能够唯一标记此行的列值,比如主键或者唯一索引键,在after中只记录那些有值变更的列;“noblob”类似于full,但是不记录那些没有变更的blob或者text类型的列。
  默认值为“full”,因为before和after均写入了binlog,所以通常不会带来问题;如果使用minimal或noblob,我们需要首先确保所有的表都有“主键”或者“唯一索引键”,且slave和master上的表结构完全一致,这样binlog只需要在before中记录能够唯一确定此行的的列即可,否则可能会引入数据不一致的问题。
  6、log_slave_updates:默认值为“FALSE”,slave在读取relay log后执行变更操作时,是否也将变更操作再次保存在本地的binlog中,就像变更操作在本地发生一样,开启此特性时也需要同时开启binlog。如果你的slave后端仍有其他slave跟进,需要开启此特性;比如A
页: [1]
查看完整版本: Mysql Replication配置项简述(二)