5.6 版本新加的特性,5.7中做了加强
    5.6 中不开启,没有这个功能.
    5.7+ 中的GTID,即使不开也会有自动生成
    SET @@SESSION.GTID_NEXT= ‘ANONYMOUS’
    是对于一个已提交事务的编号,并且是一个全局唯一的编号。
    它的官方定义如下:
    GTID = server_uuid :transaction_id
    7E11FA47-31CA-19E1-9E56-C43AA21293967:1-1000
    重要参数介绍:
    vim /etc/my.cnf
    gtid-mode=on ##开关
    enforce-gtid-consistency=true ##强制一致性
    log-slave-updates=1 ##从库强制写入GTID信息
    systemctl restart mysqld ##重启生效
    GTID应用:
    具备GTID后,截取查看某些事务日志:
    —include-gtids
    —exclude-gtids
    —skip-gtids
    案例截取binlog4当中1-6GTID,跳过第4个:
    mysqlbinlog —include-gtids=’dff98809-55c3-11e9-a58b-000c2928f5dd:1-6’ —
    exclude-gtids=’dff98809-55c3-11e9-a58b-000c2928f5dd:4’ /data/binlog/mysql-
    bin.000004 > /tmp/db.sql

    开启GTID后,MySQL恢复Binlog时,重复GTID的事务不会再执行了
    就想恢复?怎么办?
    —skip-gtids
    mysqlbinlog —include-gtids=’3ca79ab5-3e4d-11e9-a709-000c293b577e:4’
    /data/binlog/mysql-bin.000004 /data/binlog/mysql-bin.000004
    set sql_log_bin=0;
    source /tmp/binlog.sql
    set sql_log_bin=1;
    binlog日志自动清理时间保留多少天
    show variables like ‘%expire%’; ##默认三十天 至少保留一次完整的全备数据
    expire_logs_days 0
    自动清理时间,是要按照全备周期+1
    set global expire_logs_days=8;
    永久生效:
    my.cnf
    expire_logs_days=15;
    企业建议,至少保留两个全备周期+1的binlog
    8.0 变化默认使用:
    binlog_expire_logs_seconds=2592000
    手工清理:
    PURGE BINARY LOGS BEFORE now() - INTERVAL 3 day;
    PURGE BINARY LOGS TO ‘mysql-bin.000010’; 删除10号之前的所有
    resert master ##清空所有binlog日志,主从会崩特别危险。
    日志滚动:
    flush logs; ##手动刷新一个binlog日志
    重启mysql也会自动滚动一个新的
    show variables like ‘%max_binlog_size%’; ##默认1GB大小,生产中建议设置256M一个切换出多个日志文件,保留少量的数据,方便分析日志,达到日志的大小会滚动一个新的理论上。
    日志文件达到1G大小(max_binlog_size)
    | max_binlog_size | 1073741824
    备份时,加入参数也可以自动滚动