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事务还没提交,Canal就能读到消息了?

    【问题描述】 开发有天碰到一个很奇怪的问题,他的场景是这样子的:通过Canal来订阅MySQL的binlog, 当捕获到有数据变化时,回到数据库,反查该数据的明细,然后做进一步处理。有一次,他碰到一个诡异的现象: 1. Canal收到消息,有一条主键id=31019319的数据插入 2. 11:19:51.081, 应用程序去反查数据库,11:19:51.0…

    MySQL 2023年4月18日
    00
  • mysqldump数据库备份参数详解

    mysqldump数据库备份参数详解 1. 概述 mysqldump 是 MySQL 内置的备份工具,可以将 MySQL 数据库或表以 SQL 方式导出,对于大多数 Web 应用程序来说,是非常实用的工具。 mysqldump 支持多种参数,这些参数用于控制备份数据的方式、备份数据的范围以及导出的格式等等。本文将深入讲解 MySQL 数据库备份的参数,并结合…

    MySQL 2023年5月19日
    00
  • Excel文件 利用MySQL/Python 实现自动处理数据的功能

    在没有服务器存储数据,只有excel文件的情况下,如何利用SQL和python实现数据分析和数据自动处理的功能?尤其在excel处理数据特别麻烦或者数据量很大的时候,可以考虑使用下面的方法。 目录 问题描述: 解决方案: 一、SQL查询 二、SQL、python处理 三、python处理 四、优化python处理 1.手动执行代码 2.开机自动执行代码 对比…

    MySQL 2023年4月11日
    00
  • MySQL 数据类型及最优选取规则

    MySQL 数据类型及最优选取规则 在使用 MySQL 数据库时,为了保证数据的正确性和效率,我们需要合理选择数据类型。本篇文章将讲解 MySQL 数据类型的分类、类型的特点以及如何选择最合适的数据类型。 数据类型的分类 MySQL 的数据类型可以分为以下几类: 整型:TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT。 浮点型:FL…

    MySQL 2023年5月19日
    00
  • mysql下载,安装及在Navicat for MySQL工具上连接的问题

      之前一直使用的是mysql的数据库,所以总觉得对mysql的安装使用是手到擒来的事,但是因为最近需要重新安装mysql突然发现了很多问题(有点打脸)。事实证明还是有必要记录一下的。这里面我归纳了一下网上的方法和我自己的总结。 *****************************************************************…

    MySQL 2023年4月12日
    00
  • MySQL Index Condition Pushdown(ICP)性能优化方法实例

    下面是对于MySQL Index Condition Pushdown(ICP)性能优化方法的完整攻略。 什么是MySQL Index Condition Pushdown(ICP) MySQL Index Condition Pushdown(ICP)是MySQL5.6引入的优化机制。顾名思义,它可以将条件下推到索引层面,从而可以减少从磁盘中读取数据的数量…

    MySQL 2023年5月19日
    00
  • MySQL: mysql is not running but lock exists 的解决方法

    问题描述: 在使用MySQL时,可能会遇到“mysql is not running but lock exists”的错误提示。这种情况下无法启动MySQL服务。 解决方法: 查看MySQL进程 在终端中输入命令: ps -ef | grep mysql 如果存在类似以下输出结果,则表示MySQL进程正在运行中: mysql 8880 1 0 21:32 …

    MySQL 2023年5月18日
    00
  • 数据库系统原理之数据管理技术的发展

    数据管理技术的发展 第一节 数据库技术发展概述 数据模型是数据库系统的核心和基础 以数据模型的发展为主线,数据库技术可以相应地分为三个发展阶段: 第一代的网状、层次数据库系统 第二代的关系数据库系统 新一代的数据库系统 一、第一代数据库系统 层次数据库系统 层次模型 网状数据库系统 网状模型 层次模型是网状模型的特例 第一代数据库系统有如下两类代表: 196…

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