MySQL中常见的几种日志汇总

MySQL中常见的几种日志有以下几种:

binlog日志

概述

MySQL binlog是一种二进制日志,用于记录所有数据更改操作(包括增、删、改)。

使用场景

  1. 主从复制
  2. 逻辑备份(如:通过执行binlog来执行“增量备份”)

命令

# 开启二进制日志流程:
1. 修改MySQL配置文件,在mysqld节点下添加如下两行配置
   log-bin=/var/lib/mysql/mysql-bin     # binlog日志存储路径
   binlog_format=ROW    # 指定写入binlog文件中的格式为行格式

2. 重启MySQL,查看是否成功执行


# 查看binlog列表:
SHOW BINARY LOGS;


# 查看binlog的内容:
mysqlbinlog /var/lib/mysql/mysql-bin.000001

# 增量备份:
a. 备份当前数据,如:mysqldump -h$host -u$username -p$password $db > $sql_file
b. 获取当前的binlog文件名称及下一个读取位置 SHOW MASTER STATUS; 返回的结果有文件名及Position属性信息
c. 通过mysqlbinlog读取binlog日志内容并写入到一个sql文件
  mysqlbinlog -h$host -u$username -p$password --start-position=$Position $binlog_file >> $sql_file 

Redo Log日志

概述

InnoDB存储引擎文件中的一种日志,用于重做(ReDo)操作,即在断电或崩溃之前将未写入数据文件的数据从内存中刷到磁盘

使用场景

  1. 数据库数据恢复场景(如崩溃)
  2. 数据库修改性能优化(如修改大量数据需要包括Redo日志文件)

命令

# 查看当前Redo Log配置及状态:
SHOW VARIABLES LIKE 'innodb_log%';

# Redo Log文件切换:
SET GLOBAL innodb_fast_shutdown = 0;
SET GLOBAL innodb_flush_log_at_trx_commit = 0;

# 手动将Redo Log日志写入到数据文件
FLUSH TABLES WITH READ LOCK;
SET GLOBAL innodb_fast_shutdown = 0;
SET GLOBAL innodb_flush_log_at_trx_commit = 0;
FLUSH LOGS;
FLUSH TABLES;
UNLOCK TABLES;

# 手动触发Redo Log日志切换:
FLUSH LOGS;

两条示例说明:

  1. 假设需要备份半个月前至今天的数据,可以先通过mysqldump备份当前数据,然后获取半个月前的binlog文件名及Position属性,并通过mysqlbinlog命令读取binlog日志内容并写入到一个sql文件,然后将sql文件恢复到备份的另一台MySQL数据库上,即可实现数据库的增量备份。
  2. 假设需要将Redo Log日志切换到下一个日志文件,则可以通过执行FLUSH LOGS命令来手动触发Redo Log日志切换。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MySQL中常见的几种日志汇总 - Python技术站

(0)
上一篇 2023年5月18日
下一篇 2023年5月18日

相关文章

  • 一些mysql启动参数的说明和优化方法

    下面是“一些MySQL启动参数的说明和优化方法”的完整攻略。 MySQL启动参数的说明 MySQL启动参数是指在启动时指定的MySQL运行时参数,它们可以控制MySQL的各种行为。下面是一些主要的启动参数: –port=端口号 指定MySQL监听的端口号,缺省为3306端口。 –bind-address=IP地址 指定MySQL运行的IP地址,如果指定为…

    MySQL 2023年5月19日
    00
  • 关于MySQL运行机制原理以及架构

    一.概念 MySQL是一个开放源代码的关系数据库管理系统。原开发者为瑞典的MySQL AB公司,最早是在2001年MySQL3.23进入到管理员的视野并在之后获得广泛的应用。  2008年MySQL公司被Sun公司收购并发布了首个收购之后的版本MySQL5.1,该版本引入分区、基于行复制以及plugin API。 移除了原有的BerkeyDB引擎,同时,Or…

    MySQL 2023年4月12日
    00
  • 不同于Oracle:MySQL的insert会阻塞update

    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。 GreatSQL是MySQL的国产分支版本,使用上与MySQL一致。 作者: 王庆勋 文章来源:GreatSQL社区原创 某银行客户在从Oracle迁移到MySQL的开发中,MySQL在READ-COMMITTED隔离级别下,出现了insert阻塞update的情况,但同样的情况下…

    MySQL 2023年4月18日
    00
  • 解决mysql创建数据库后出现:Access denied for user ‘root’@’%’ to database ‘xxx’的问题

    当在mysql中创建新的数据库时,有可能会遇到以下错误提示:Access denied for user ‘root’@’%’ to database ‘xxx’,意思是这个用户没有权限操作这个数据库。 要解决这个问题,可以尝试以下几个步骤: 首先尝试重置root用户的密码: mysql> SET PASSWORD FOR ‘root’@’%’=PAS…

    MySQL 2023年5月18日
    00
  • 为什么MySQL分页用limit会越来越慢

    MySQL分页用limit会越来越慢的原因是因为limit的语句中,MySQL需要对查询结果集做一个偏移操作,直接跳过偏移量(Offset)条记录,再返回指定数量(Limit)的记录。但是,MySQL并没有对偏移量前的所有记录进行跳过操作,而是将它们全部加载到了内存中,再返回指定的记录,这样导致后面翻页查询时,MySQL仍然需要加载所有偏移量前的所有记录,降…

    MySQL 2023年5月19日
    00
  • MySQL查询优化必备知识点总结

    当今互联网时代数据量不断增加,高效的数据库查询成为了系统稳定可靠运行的重要保障。本篇攻略将为大家总结MySQL查询优化的必备知识点,希望对你在数据库性能优化上有所帮助。 索引优化 索引是提高查询性能最为重要的手段之一。使用索引可以让查询更快速地查找到目标数据,大大缩短查询时间。以下是关于索引的一些优化技巧: 选择合适的索引类型 MySQL支持多种索引类型,包…

    MySQL 2023年5月19日
    00
  • 深入mysql慢查询设置的详解

    深入MySQL慢查询设置的详解 什么是慢查询 在MySQL数据库中,慢查询是指查询执行时间超过指定时间阈值的查询语句。通常情况下,超过1秒钟的查询都可以被认为是慢查询。 慢查询设置 对于一个高并发的MySQL数据库来说,慢查询的出现会对数据库的性能和响应时间造成影响。因此,需要对慢查询进行相关的设置和优化。 慢查询日志 MySQL提供了慢查询日志来记录执行时…

    MySQL 2023年5月19日
    00
  • 如何选择MySQL存储引擎?

    MySQL是一个开源的关系型数据库管理系统,拥有多种存储引擎(Storage Engine),不同的引擎具有不同的特点和性能表现。可通过修改数据表的存储引擎来优化数据库的性能。 存储引擎介绍 MySQL支持的存储引擎较多,具体如下: 1 InnoDB:支持ACID事务,并发性高,行级锁定、MVCC、自适应哈希索引、为外键提供支持。 2 MyISAM:不支持事…

    MySQL 2023年3月9日
    00
合作推广
合作推广
分享本页
返回顶部