数据库日志及binlog备份
监控日志内容
error log
slow query log
general log
设置
error log默认产生
slow query和general log可以通过DB参数组设置
生命周期
日志轮转
查看error log
通过rds控制台或者API
5分钟刷新一次并将结果追加到mysql-error-running.log
每小时一个文件,文件名包含文件截取时间,文件保留24小时
查看slow query log和general log
通过设置DB参数组中的参数来决定日志被写到文件还是数据库table
1.file:rotate超过24小时的删掉,如果日志文件总大小超过阈值(DB实例存储空间的2%),
当中最大的日志文件会被删掉直至文件总大小不超过阈值
2.table:每24小时轮询一次,如果表日志超过DB实例存储空间的20%或者日志总大小
超过10GB会被截断,DB存储超过90%会降低日志存储的阈值,
low_free_storage,相关存储过程mysql.rds_rotate_general_log,mysql.rds_rotate_slow_log。
Table logs are rotated during a database version upgrade
相关参数列表
slow_query_log
general_log
long_query_time
log_queries_not_using_indexes:记录所有没有用到索引的查询到slow query log,
即便时间小于long_query_time。
log_output
配置cloudwatch展示
日志文件大小
innodb_log_file_size:大于数据库中带blob字段的最大表的10倍
设置table存储日志会降低db的性能
rds不允许truncate日志表,手动截断日志
PROMPT> CALL mysql.rds_rotate_slow_log;
PROMPT> CALL mysql.rds_rotate_general_log;
mysql binlog
rds支持row和mixed日志format,默认mixed
注意
设置成row的话会产生很大的binlog,这样会增加空间消耗产生大量IO
查看binlog
https://dev.mysql.com/doc/refman/5.6/en/mysqlbinlog-backup.html
设置日志保留时间
CALL mysql.rds_set_configuration('binlog retention hours', 24);
查看日志保留时间
CALL mysql.rds_show_configuration;
一、查看当前日志
show master/binary logs
二、查看具体对应event的位点
SHOW BINLOG EVENTS IN 'mysql-bin.027910' FROM 42863401 LIMIT 200
三、下载binlog
mysqlbinlog --no-defaults --read-from-remote-server --host=xxx.rds.amazonaws.com --port=3306 --user='usrname' --password='usrpwd' --raw --result-file=/tmp/ mysql-bin-changelog.000190
特殊参数
--stop-never
--to-last-log
四、解析binlog
mysqlbinlog --no-defaults --base64-output='decode-rows' -v /tmp/mysql-bin-changelog.000190
文档
mysqlbinlog --no-defaults --read-from-remote-server --host=10.0.0.61 --port=3306 --user='repl' --password='repl' --raw --stop-never --result-file=/sqlback/SQL-03 mysql-bin.008320
阅读(2082) | 评论(0) | 转发(0) |