zoukankan      html  css  js  c++  java
  • mysql 从的一些参数设置

    <pre name="code" class="sql">sync_master_info = 1 sync_relay_log_info = 1 relay_log_info_repository = FILE
    参数意思是:sql线程每次执行完了一个事务,就会记录在master.info和relay.info文件里。即:
    
    START TRANSACTION; -- Statement 1 -- ... -- Statement N COMMIT; -- Update replication info files
    由于在记录relay.info的时候宕机,relay.info未更新,机器重启恢复后会从之前的POS点再次执行,这样就执行了两条同样的SQL,就会报1032和1062错误,同步就挂了。
    
    
    
    于是我建议他们设置:
    
    relay_log_info_repository = TABLE relay_log_recovery =  1 
    alter table mysql.slave_relay_log_info engine=innodb;
    参数意思是:把relay.info改成记录在slave_relay_log_info表里,并改成innodb引擎,并开启relay_log_recovery中继日志自我修复功能。即:
    
    START TRANSACTION; -- Statement 1 -- ... -- Statement N -- Update replication info COMMIT;
    这样sql线程执行完事务后,立即会更新slave_relay_log_info表,如果在更新过程中宕机,事务会回滚,slave_relay_log_info表并不会记录同步的点,下次重新同步复制时,从之前的POS点再次执行。
    


    
                                        
    
  • 相关阅读:
    BZOJ 2002 [Hnoi2010]Bounce 弹飞绵羊 ——Link-Cut Tree
    BZOJ 2049 [Sdoi2008]Cave 洞穴勘测 ——Link-Cut Tree
    hdu
    hdu
    hdu
    hdu
    hdu
    hdu
    hdu
    hdu
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13351560.html
Copyright © 2011-2022 走看看