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查询语句的执行时间超过1秒,则可以称之为慢查询。 开启慢查询 MySQL提供了开启慢查询的功能,通过开启慢查询,可以记录下查询时间超过阈值的SQL语句,方便进行SQL查询性能的优化。 步骤一:修改MySQL配置…

    MySQL 2023年5月19日
    00
  • MySQL删除被其他表关联的数据库表

    MySQL中如果想要删除一个被其他表关联的表,需要先将关联该表的其他表中的数据删除,然后才能删除该表。具体步骤如下: 查找关联该表的其他表 可以通过以下SQL语句查询关联该表的其他表: SELECT TABLE_NAME, CONSTRAINT_NAME, REFERENCED_TABLE_NAME, REFERENCED_COLUMN_NAME FROM …

    MySQL 2023年3月9日
    00
  • 浅谈Mysql多表连接查询的执行细节

    浅谈MySQL多表连接查询的执行细节 概述 在MySQL中,多表连接查询是非常常见的操作,其能够更加高效地获取需要的数据,同时也方便了开发者的编写。然而,多表连接查询的执行细节是什么呢?在这篇文章中,我们将一步步深入浅出地剖析MySQL多表连接查询的各个细节。 基础知识 在进行多表连接查询之前,我们需要了解MySQL中一些基础知识,包括: 表的类型:MySQ…

    MySQL 2023年5月19日
    00
  • MySQL快速对比数据技巧

    下面是MySQL快速对比数据技巧的完整攻略。 1. 背景 在实际的应用场景中,经常会需要比较两个数据库表中的数据,用以确认两个表中的数据是否一致。然而,大表数据的情况下,手动比对是一项非常耗时耗力的工作。因此,本文将分享一些MySQL快速对比数据的技巧,以便高效地完成这个比对过程。 2. 比对技巧 以下是本文介绍的几个MySQL快速对比数据的技巧: 2.1 …

    MySQL 2023年5月19日
    00
  • MySQL中char(36)被认为是GUID导致的BUG及解决方案

    MySQL中char(36)被认为是GUID导致的BUG及解决方案 有时候在使用Toad或在程序中,偶尔会遇到如下的错误: System.FormatException GUID 应包含带 4 个短划线的 32 位数(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)。 Stack Trace:    在 System.Guid..c…

    MySQL 2023年4月13日
    00
  • mysql中like % %模糊查询的实现

    MySQL 中,LIKE 是模糊查询语句中的一种。LIKE 可以在查询中使用通配符来替换一个或多个字符,从而匹配数据库中的相应数据。在实际开发中,适当使用模糊查询语句可以大大提升数据查询的效率和准确度。 使用 LIKE 进行模糊查询 语法: SELECT column_name(s) FROM table_name WHERE column_name LIK…

    MySQL 2023年5月19日
    00
  • MySQL的if,case语句使用总结

    示例数据库   Mysql的if既可以作为表达式用,也可在存储过程中作为流程控制语句使用,如下是做为表达式使用: IF表达式 IF(expr1,expr2,expr3) 如果 expr1 是TRUE (expr1 <> 0 and expr1 <> NULL),则 IF()的返回值为expr2; 否则返回值则为 expr3。IF() …

    MySQL 2023年4月13日
    00
  • mysql嵌套查询和联表查询优化方法

    针对你提出的问题,“mysql嵌套查询和联表查询优化方法”的完整攻略,我将在以下三个方面展开讲解: 嵌套查询的基本原理以及使用注意事项 联表查询的基本原理以及使用注意事项 查询优化方法及示例 嵌套查询的基本原理以及使用注意事项 嵌套查询实际上就是在一个查询语句内部再包含一个完整的查询语句,嵌套查询一般用于需要在查询结果中进一步筛选数据的情况下,例如: SEL…

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