mysql binlog日志的操作
根据时间导出mysql错误日志
sed -n '/^2021-09-10T00:/,/^2021-09-10T09:30/p' error.log > aaa.txt
把两个时间段内的日志导出为aaa.txt
导出mysql当天的日志
语句:cat error.log | grep -A 100 2021-09-10T
grep -A 100 2021-09-10T # 筛选某个日期开始,向下多显示100条内容
grep -B 100 2021-09-10T # 筛选某个日期开始,向上多显示100条内容
grep -C 100 2021-09-10T # 筛选某个日期开始,向上和向下都多显示100条内容
格式:grep -A/B/C 条数 关键字
mysql binlog日志查看及解码
需要添加参数(--base64-output=decode-rows -v -v)对输出结果解码才能显示原始语句
mysqlbinlog --base64-output=decode-rows -v -v mysql-bin.000664 > /root/binlog.sql
bin-log按时间导出
mysqlbinlog --no-defaults --base64-output=decode-rows -v -v --start-datetime="2021-09-10 00:00:00" --stop-datetime="2021-09-10 00:43:00" mysql-bin.000664 >/root/0910binlog.sql
导出两个时间段内的binlog
通过binlog恢复数据
必须使用原始的binlog格式内容
mysqlbinlog --no-defaults --start-datetime="2021-09-10 00:00:00" --stop-datetime="2021-09-10 00:43:00" mysql-bin.000664 >/root/0910binlog.sql
然后通过
source /root/0910binlog.sql
来进行恢复
或者用这种方法恢复(没有测试)
mysqlbinlog --no-defaults --start-position=268 --stop-position=695 /usr/local/mysql/data/mysql-bin.000014 | mysql -u root -p
查数据库中表的大小M
SELECT TABLE_NAME,DATA_LENGTH,INDEX_LENGTH,(DATA_LENGTH+INDEX_LENGTH) as length,TABLE_ROWS,concat(round((DATA_LENGTH+INDEX_LENGTH)/1024/1024,3), 'MB') as total_size FROM information_schema.TABLES WHERE TABLE_SCHEMA='eqics-saas' order by length desc
清空表空间
OPTIMIZE TABLE 表名
---------是故无冥冥之志者----------
---------无昭昭之明----------
---------无惛惛之事者----------
---------无赫赫之功----------
本文来自博客园,作者:|是吴啊|,转载请注明原文链接:https://www.cnblogs.com/wuguofeng/p/15250739.html