龙空技术网

mysql日志及分类

程序员的交流电 73

前言:

眼前朋友们对“mysql日志恢复”大致比较重视,各位老铁们都想要学习一些“mysql日志恢复”的相关知识。那么小编也在网络上搜集了一些有关“mysql日志恢复””的相关文章,希望朋友们能喜欢,兄弟们一起来了解一下吧!

#暑期创作大赛#

在日常mysql的运行中,会产生各种各样的日志,日志的主要可以分为二进制binlog日志,错误日志,通用查询日志和慢查询日志。对于我们日常监控和排查问题,管理mysql是重要的。通过分析这些日志,我们可以了解mysql数据库的运行情况,日常操作和错误情况,进行mysql的服务和相关业务逻辑的优化。

主要有四种日志:

二进制日志:该日志会以二进制的形式记录数据库的各种操作者,但是不会记录查询。错误日志:该日志会记录mysql服务的启动,关闭和错误信息,是我们排查mysql服务异常的重要依据。通用查询日志:该日志是记录mysql启动和关闭信息,客户端连接信息,更新和查询数据记录的sql语句。慢查询日志:记录执行超过指定时间的sql操作,通过工具分析慢查询日志可以定位mysql的服务的性能瓶颈。

以上几种日志,除了二进制日志外,其他的日志都是文本文件。默认情况下,mysql只会启动错误日志,其他的日志需要手动启动。

使用日志也是有缺点的,启动日志之后,虽然可以对mysql服务进行维护,但是会降低mysql的执行速度。例如一个查询操作比较频繁的mysql中,会一直记录执行的查询sql,记录通用查询日志和慢查询日志是花时间的;还有二进制日志的记录一般会影响mysql的1%的执行性能。所以在对mysql服务性能要求比较高的情况;还有日志文件还会占用大量的磁盘空间。对于用户量非常大,操作非常频繁的数据库,日志文件需要的存储空间甚至比数据库文件都还大。因此是否启动日志,需要启动哪些日志,开启哪些日志需要权衡一下。

1.错误日志

配置错误日志

log-error=dir/{filename}

这里的dir是错误日志的存储的路径,filename是错误日志的文件名称,配置之后自动开启错误日志,默认错误日志是开启的。

查看错误日志

mysql> SHOW VARIABLES LIKE 'log_error';+---------------+---------------------+| Variable_name | Value |+---------------+---------------------+| log_error | /var/log/mysqld.log |+---------------+---------------------+1 row in set (0.00 sec)

错误日志是文本文件,可以直接打开查看,里面不仅记录mysql服务的错误想,还记录mysql启动和关闭等正常信息。

删除错误日志

mysqladmin -uroot -p flush-logs

执行之后,会生产一个新的错误日志,之前的日志会重命名加上old后缀,这个文件可以直接删掉。

2.二进制日志

二进制日志也叫变更日志,是mysql的重要日志,主要记录用户对mysql的DDL和DML操作,但是不包含查询操作。如果mysql数据库意外数据丢失,可以根据binlog日志进行数据恢复

配置二进制日志

log-bin=dir/[filename]binlog_format=row

查看二进制日志

SHOW VARIABLES LIKE 'log_bin';+---------------+-------+| Variable_name | Value |+---------------+-------+| log_bin | ON |+---------------+-------+# 查看有哪些binlog文件SHOW binary logs;# 查看binlog日志文件的内容mysqlbinlog filename.number

使用二进制文件还原数据库

mysqlbinlog filename.number | mysql -u root -p

以上的命令可以理解成,先使用mysqlbinlog命令来读取内容,然后再使用mysql的命令将内容还原到数据库中。需要注意的是,二进制文件占用空间非常大,所以,在我们完成mysql的数据库的备份之后,建议删除备份之前的二进制文件。

删除二进制日志

# 删除所有的二进制日志RESET MASTER;# 删除指定二进制文件PURGE MASTER LOGS TO '指定文件';#根据创建时间删除PURGE MASTER LOGS TO 'yyyy-mm-dd hh:MM:ss';

3.通用查询日志

通用查询日志记录了mysql服务的启动关闭,连接信息和sql等操作。默认是关闭的。

开启通用查询日志

SHOW VARIABLES LIKE 'general_log';+------------------+----------------------------------------------------------------+| Variable_name | Value |+------------------+----------------------------------------------------------------+| general_log | on |+------------------+----------------------------------------------------------------+

设置通用查询日志

log=dir/filename

删除通用查询日志

mysqladmin -uroot -p flush-logs

4.慢查询日志

开启慢查询日志

log-slow-queries=dir\filenamelong_query_time=n这里的long_query_time是设置sql执行多久是慢查询。

删除慢查询日志

mysqladmin -uroot -p flush-logs

这里会直接覆盖就得日志文件,不需要手动删除。

标签: #mysql日志恢复 #mysql启动和关闭 #mysql日志配置 #mysql查看日志文件路径