mysql日志文件

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:
                                         mysql日志文件
日志类型
1、错误日志
2、二进制日志
3、查询日志
4、慢查询日志
如果启动相关的日志,需要到/etc/my.cnf文件添加
log-error=/mysql/myerr.log   记录数据库启动关闭信息,以及运行过程中产生的错误信息
 
log-bin=/mysql/bin   记录除select语句之外的所有sql语句到日志中,可以用来恢复数据文件
 
log=/mysql.log  记录所有sql语句
 
log-slow-queries=/mysql/slow.log  记录查询慢的sql语句
lang_query_time=3  记录查询操作3秒的sql语句
[mysqld]
log=/mysql/mysql.log
log-error=/mysql/myerr.log
log-bin=/mysql/bin
max_binlog_size=3M
log-slow-queries=/mysql/slow.log 
lang_query_time=3  #有的服务器输入起动不了
重新启动服务后,查看日志。
[root@zhaoyun mysql]# service mysqld restart
停止 MySQL: [确定]
启动 MySQL: [确定]
[root@zhaoyun mysql]# ls
bin.000001  bin.index  myerr.log  mysql.log  slow.log
bin.000001是binlog 记录除select外的所有sql语句
bin.index 是记录生成的binlog文件
myerr.log记录的是错误日志
slow.log记录查询慢的日志
mysql.log记录所有sql执行的日志。
 
二、刷新log-bin日志,没刷新一次将生成一个新的日志
1、重新启动服务生成
2、使用mysql  -e "flush logs"
3、使用mysqladmin flosh-logs
三、查看binlog
使用mysqlbinlog命令查看binlog
[root@zhaoyun mysql]# mysqlbinlog bin.000001 
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#111202  7:12:16 server id 1  end_log_pos 98    Start: binlog v 4, server v 5.0.77-log created 111202  7:12:16 at startup
# Warning: this binlog was not closed properly. Most probably mysqld crashed writing it.
ROLLBACK/*!*/;
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET  COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;这是一个没有执行过sql语句的binlog
执行一个删除语句,再看下这个文件的变化
[root@zhaoyun mysql]# mysql -uroot -p123456
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.0.77-log Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> use ar
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> delete from http;
Query OK, 0 rows affected (0.01 sec)
mysql> quit
Bye
[root@zhaoyun mysql]# mysqlbinlog bin.000001 
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#111202  7:12:16 server id 1  end_log_pos 98    Start: binlog v 4, server v 5.0.77-log created 111202  7:12:16 at startup
# Warning: this binlog was not closed properly. Most probably mysqld crashed writing it.
ROLLBACK/*!*/;
# at 98
#111202  7:16:04 server id 1  end_log_pos 175   Query   thread_id=5     exec_time=0     error_code=0
use ar/*!*/;
SET TIMESTAMP=1322781364/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
SET @@session.sql_mode=0/*!*/;
/*!\C latin1 *//*!*/;
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=33/*!*/;
delete from http
/*!*/;
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET  COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
可以看到刚才执行的操作都被记录了。

可以使用binlog恢复自备份binlog以来的所有操作。
恢复方法有俩种
1、通过数据节点
mysqlbinlog bin.000001 --start-position=4 |mysql  -uroot -p123456  从节点4开始一直往下恢复,荡悠删除语句时需注意,不然恢复时,又给删除了。
mysqlbinlog bin.000001 --stop-position=500 |mysql -uroot -p123456   一直恢复到500节点
mysqlbinlog bin.000001 --start-positiion=50 --stop-position=100 |mysql  -uroot -p123456  恢复节点从50到100的记录
 
2、通过起始时间
mysqlbinlog --start-datetime="2011-12-02 20:30:11" |mysql -uroot -p123456
mysqlbinlog --stop-datetime="2011-12-02 20:50:30" |mysql -uroot -p123456
mysqlbinlog --start-datetime="2011-12-02 20:30:11" --stop-datetime="2011-12-02 20:50:30"  |mysql -uroot -p123456


本文转自zhaoyun00 51CTO博客,原文链接:http://blog.51cto.com/zhaoyun/732826
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
344
分享
相关文章
ELK实现nginx、mysql、http的日志可视化实验
通过本文的步骤,你可以成功配置ELK(Elasticsearch, Logstash, Kibana)来实现nginx、mysql和http日志的可视化。通过Kibana,你可以直观地查看和分析日志数据,从而更好地监控和管理系统。希望这些步骤能帮助你在实际项目中有效地利用ELK来处理日志数据。
235 90
MySQL Binlog 日志查看方法及查看内容解析
本文介绍了 MySQL 的 Binlog(二进制日志)功能及其使用方法。Binlog 记录了数据库的所有数据变更操作,如 INSERT、UPDATE 和 DELETE,对数据恢复、主从复制和审计至关重要。文章详细说明了如何开启 Binlog 功能、查看当前日志文件及内容,并解析了常见的事件类型,包括 Format_desc、Query、Table_map、Write_rows、Update_rows 和 Delete_rows 等,帮助用户掌握数据库变化历史,提升维护和排障能力。
mysql的undo log、redo log、bin log、buffer pool
MySQL的undo log、redo log、bin log和buffer pool是确保数据库高效、安全和可靠运行的关键组件。理解这些组件的工作原理和作用,对于优化数据库性能和保障数据安全具有重要意义。通过适当的配置和优化,可以显著提升MySQL的运行效率和数据可靠性。
44 16
图解MySQL【日志】——两阶段提交
两阶段提交是为了解决Redo Log和Binlog日志在事务提交时可能出现的半成功状态,确保两者的一致性。它分为准备阶段和提交阶段,通过协调者和参与者协作完成。准备阶段中,协调者向所有参与者发送准备请求,参与者执行事务并回复是否同意提交;提交阶段中,若所有参与者同意,则协调者发送提交请求,否则发送回滚请求。MySQL通过这种方式保证了分布式事务的一致性,并引入组提交机制减少磁盘I/O次数,提升性能。
82 4
图解MySQL【日志】——两阶段提交
图解MySQL【日志】——Redo Log
Redo Log(重做日志)是数据库中用于记录数据页修改的物理日志,确保事务的持久性和一致性。其主要作用包括崩溃恢复、提高性能和保证事务一致性。Redo Log 通过先写日志的方式,在内存中缓存修改操作,并在适当时候刷入磁盘,减少随机写入带来的性能损耗。WAL(Write-Ahead Logging)技术的核心思想是先将修改操作记录到日志文件中,再择机写入磁盘,从而实现高效且安全的数据持久化。Redo Log 的持久化过程涉及 Redo Log Buffer 和不同刷盘时机的控制参数(如 `innodb_flush_log_at_trx_commit`),以平衡性能与数据安全性。
70 5
图解MySQL【日志】——Redo Log
mysql的undo log、redo log、bin log、buffer pool
MySQL的undo log、redo log、bin log和buffer pool是确保数据库高效、安全和可靠运行的关键组件。理解这些组件的工作原理和作用,对于优化数据库性能和保障数据安全具有重要意义。通过适当的配置和优化,可以显著提升MySQL的运行效率和数据可靠性。
31 4
MySQL日志
本文介绍了MySQL中三个重要的日志:binlog、redolog和undolog。binlog记录数据库更改操作,支持数据恢复、复制和审计;redolog保证事务的原子性和持久性,实现crash-safe;undolog用于事务回滚及MVCC的实现。每个日志都有其独特的作用和应用场景,确保数据库的稳定性和数据一致性。
图解MySQL【日志】——磁盘 I/O 次数过高时优化的办法
当 MySQL 磁盘 I/O 次数过高时,可通过调整参数优化。控制刷盘时机以降低频率:组提交参数 `binlog_group_commit_sync_delay` 和 `binlog_group_commit_sync_no_delay_count` 调整等待时间和事务数量;`sync_binlog=N` 设置 write 和 fsync 频率,`innodb_flush_log_at_trx_commit=2` 使提交时只写入 Redo Log 文件,由 OS 择机持久化,但两者在 OS 崩溃时有丢失数据风险。
71 3
简单聊聊MySQL的三大日志(Redo Log、Binlog和Undo Log)各有什么区别
在MySQL数据库管理中,理解Redo Log(重做日志)、Binlog(二进制日志)和Undo Log(回滚日志)至关重要。Redo Log确保数据持久性和崩溃恢复;Binlog用于主从复制和数据恢复,记录逻辑操作;Undo Log支持事务的原子性和隔离性,实现回滚与MVCC。三者协同工作,保障事务ACID特性。文章还详细解析了日志写入流程及可能的异常情况,帮助深入理解数据库日志机制。
101 0
图解MySQL【日志】——Buffer Pool
Buffer Pool 是数据库管理系统(DBMS)中用于缓存磁盘数据页的内存区域,主要包含数据页、索引页、undo 页等。它通过减少磁盘 I/O 提升性能,特别是在处理大型数据库时效果显著。查询时,整个数据页而非单条记录会被加载到 Buffer Pool 中,以提高访问效率。
33 0
图解MySQL【日志】——Buffer Pool

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等