• unknown's avatar
    Robustness feature. · 9a6e7a83
    unknown authored
    Won't be pushed as is - separate email sent for internal review.
    WL#1717 "binlog-innodb consistency".
    Now when mysqld starts, if InnoDB does a crash recovery, we use the binlog name
    and position retrieved from InnoDB (corresponding to the last transaction
    successfully committed by InnoDB) to cut any rolled back transaction from
    the binary log. This is triggered by the --innodb-safe-binlog option.
    Provided you configure mysqld to fsync() InnoDB at every commit (using
    flush_log_at_trx_commit) and to fsync() the binlog at every write
    (using --sync-binlog=1), this behaviour guarantees that a master always has
    consistency between binlog and InnoDB, whenever the crash happens.
    6 tests to verify that it works.
    
    
    client/mysqltest.c:
      New command require_os (only "unix" accepted for now).
    innobase/include/trx0sys.h:
      when InnoDB does crash recovery, we now save the binlog coords it prints, into variables for later use.
    innobase/trx/trx0sys.c:
      when InnoDB does crash recovery, we now save the ...
    9a6e7a83
rpl_crash_binlog_ib_3a.test 1.16 KB