This is port of Google's patches
There is modified the slave IO thread to maintain a copy of the master's binlog as it writes the relay log. The copy means the file has the same name and same contents. When this is done, slave can transparently failover between master and slaves with mirror the binlog.
When this is first enabled, the slave must download all of the current binlog. This can take some time. New events are not appended to the relay log until this has finished.
- rpl_mirror_binlog_enabled enables this
- required option log-bin-index
- sync-mirror-binlog is equivalent to sync-binlog but for the mirror binlog
These commands allow fast promotion of a slave to a master. It is fast because it can be done without restarting the slave.
- MAKE MASTER REVOKE SESSION
- MAKE MASTER REVOKE SESSION WITH KILL
- MAKE MASTER GRANT SESSION
- MAKE MASTER MASTER_LOG_FILE=<log_file>, MASTER_SERVER_ID=<id> BINLOG
- MAKE MASTER MASTER_LOG_FILE=<log_file>, MASTER_SERVER_ID=<id>, INDEX=<log_file.index> BINLOG
- MAKE MASTER MASTER_LOG_FILE … - This enables the use of the binlog on a slave without restarting mysqld.
- MAKE MASTER REVOKE SESSION - This prevents non-SUPER users from connecting. When the WITH KILL option is used, current non-SUPER connections are killed.
- MAKE MASTER GRANT SESSION - This allows non-SUPER users to connect.