# 连接
shell# mysql -h$ip -P$port -u$user -p
#查看binlog文件
mysql> show binary logs;
#查看binlog内容
mysql> show binlog events in 'mysql-bin.001294';
#刷新生成新的binlog文件
mysql> flush logs;
#删除binlog
> PURGE MASTER LOGS TO 'MySQL-bin.010'; //清除MySQL-bin.010日志
> PURGE MASTER LOGS BEFORE '2008-06-22 13:00:00'; //清除2008-06-22 13:00:00前binlog日志
> PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 3 DAY); //清除3天前binlog日志BEFORE,变量的date自变量可以为'YYYY-MM-DD hh:mm:ss'格式。
# 查看binglo详细信息(比如binlog为row格式的),position可以通过show binlog events确认.
shell# mysqlbinlog -vv .\data\binlog.000013 --start-position=2738 --stop-position=2973;
#全局锁
mysql> Flush tables with read lock;
mysql> show engine innodb status
mysql> show variables like 'transaction_isolation';
alter table t engine = InnoDB # 重建表
analyze table t 其实不是重建表,只是对表的索引信息做重新统计,没有修改数据,这个过程中加了 MDL 读锁;
optimize table t 等于 recreate+analyze。
#备份
mysqldump -uroot --single-transaction --master-data=2 --routines --striggers --events --set-gtid-purged=OFF --all-databases -p > /tmp/t.sql