sync_binlog”:这个参数是对于MySQL系统来说是至关重要的,他不仅影响到Binlog对MySQL所带来的性能损耗,而且还影响到MySQL中数据的完整性。对于“sync_binlog”参数的各种设置的说明如下:

sync_binlog=0,当事务提交之后,MySQL不做fsync之类的磁盘同步指令刷新binlog_cache中的信息到磁盘,而让Filesystem自行决定什么时候来做同步,或者cache满了之后才同步到磁盘。

sync_binlog=n,当每进行n次事务提交之后,MySQL将进行一次fsync之类的磁盘同步指令来将binlog_cache中的数据强制写入磁盘。

在MySQL中系统默认的设置是sync_binlog=0,也就是不做任何强制性的磁盘刷新指令,这时候的性能是最好的,但是风险也是最大的。因为一旦系统Crash,在binlog_cache中的所有binlog信息都会被丢失。而当设置为“1”的时候,是最安全但是性能损耗最大的设置。因为当设置为1的时候,即使系统Crash,也最多丢失binlog_cache中未完成的一个事务,对实际数据没有任何实质性影响。

从以往经验和相关测试来看,对于高并发事务的系统来说,“sync_binlog”设置为0和设置为1的系统写入性能差距可能高达5倍甚至更多。


 



mysql binlog 一般只在 主上面 进行配置,但是如果有时进行数据恢复的时候需要用到从上面的 binlog,最好主从都配置
 
 
 
    # 每个 mysql 都有属于自己的不同的 server_id
 
 
    # 定义 mysql 的 bin_log 位置跟 名字
 
 
     
     # binlog 模式
 
 
    # binlog 文件的最大值
 
 
    # binlog 缓存的值,就是 每个事务的执行大小,不够的话,会临时创建/tmp下的临时文件
 
 
 
  
 
 
sync_binlog=2 
       
      # 进行两次 事务 处理之后进行 缓存数据 写入磁盘操作 
  
 
 

 
 

 
 
主从对于 mysql 数据库的备份库的选择:
 
 
主:
 
 
binlog-do-db=db1,db2 
  
 
 
binlog-ignore-db =  
  mysql, 
  information_schema
 
 
从:
 
  
replicate-do-db =db1,db2
 
  
replicate-ignore-db =  
   mysql, 
   information_schema
 
 

 
 
跟主从相关的配置参数
 
 
 
  
    # 不让从开机启动,需要手动去开启 从服务 start slave;
 
   
  
    # 让从只读