不积跬步,无以至千里;不积小流,无以成江海。

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 表名	
posted @ 2021-09-10 11:45  |是吴啊|  阅读(183)  评论(0编辑  收藏  举报