MySQL的日志管理以及备份和恢复

MySQL日志管理

mysql的日志默认保存位置为/usr/local/mysql/data

  vim /etc/my.cnf     #开启二进制日志功能

vim /etc/my.cnf
[mysqld]##错误日志,用来记录当MySQL启动、停止或运行时发生的错误信息,默认已开启
log-error=/usr/local/mysql/data/mysql_error.log     #指定日志的保存位置和文件名
​
##通用查询日志,用来记录MySQL的所有连接和语句,默认是关闭的
general_log=ON
general_log_file=/usr/local/mysql/data/mysql_general.log
​
##二进制日志(binlog),用来记录所有更新了数据或者已经潜在更新了数据的语句,记录了数据的更改,可用于数据恢复,默认已开启
log-bin=mysql-bin                  #也可以 log_bin=mysql-bin
​
##慢查询日志,用来记录所有执行时间超过long_query_time秒的语句,可以找到哪些查询语句执行时间长,以便于优化,默认是关闭的
slow_query_log=ON
slow_query_log_file=/usr/local/mysql/data/mysql_slow_query.log
long_query_time=5                    #设置超过5秒执行的语句被记录,缺省时为10秒
​
​
systemctl restart mysqld        #配置完重启服务
​
mysql -u root -p
show variables like 'general%';                    #查看通用查询日志是否开启
​
show variables like 'log_bin%';                    #查看二进制日志是否开启
​
show variables like '%slow%';                      #查看慢查询日功能是否开启
show variables like 'long_query_time';             #查看慢查询时间设置
​
set global show_query_log=ON;           #在数据库中设置开启慢查询的方法

数据库备份的分类

物理备份

直接对数据库的物理文件(数据文件、日志文件等)进行备份

  • 物理备份方法

    • 冷备份(脱机备份)

    • 热备份(联机备份):依赖数据库的日志文件

    • 温备份:数据库锁定表格,进入只可读不可写的状态下进行备份操作

逻辑备份

  • 逻辑备份:对数据库逻辑组件(如:库、表等数据库对象),以SQL语句的形式导出进行备份。

数据库的备份策略角度

  • 完全备份:每次对数据库或表数据进行完整的备份

  • 差异备份:只备份上次完全备份后的更新数据

  • 增量备份:每次备份只备份上次完全备份或增量备份后的更新数据

数据库上云迁移

  • 冷迁移

    • 物理冷备

    • 先关闭数据库,再打包备份+恢复

  • 热迁移

    • 阿里云 DTS

数据库完全备份分类

1、物理冷备:

  • 关闭MySQL数据库

  • 使用tar命令直接打包数据库文件夹

  • 直接替换现有MySQL目录即可

  • #默认数据库文件/usr/local/mysql/data/

2、mysqldump逻辑热备

备份一个或多个库及库中所有的表数据
mysqldump -uXXX -pXXX  --databases 库1 [库2 ....] > XXX.sql      备份所有的库
mysqldump -uXXX -pXXX  --all-databases > XXX.sql                  备份指定库中的所有的表数据,不包含库对象
mysqldump -uXXX -pXXX  库名 > XXX.sql                            备份指定库中的一个或多个表数据,不包含库对象
mysqldump -uXXX -pXXX  库名 表1 [表2 ....] > XXX.sql              

3、物理热备


xtrabackup

4、完全恢复

先登录到数据库,再执行source XXX.sql (如果sql文件只是备份了表数据的文件,需要先创建库并 use 切换库后再执行)

恢复库mysql -u用户名  -p密码  < 文件名.sql         cat 文件名.sql | mysql -u用户名 -p密码恢复表mysql -u用户名 -p密码 库名 < 文件名.sql    cat 文件名.sql | mysql -u用户名 -p密码 库名

七、MySQL数据库增量恢复

1、一般恢复

  • 将所有备份的二进制日志内容全部恢复

2、基于位置恢复

  • 数据库在某一时间点可能既有错误的操作也有正确的操作
  • 可以基于精准的位置跳过错误的操作

3、基于时间点恢复

  • 跳过某个发生错误的时间点实现数据恢复

通过刷新二进制日志间接实现增量备份
mysqladmin -uXXX -pXXX flush-logs查看二进制日志内容
mysqlbinlog --no-defaults --base64-output=decode-rows -v <BINLOG>

使用脚本增量备份mysql二进制日志

mysql数据库增量恢复

使用二进制日志增量恢复
mysqlbinlog --no-defaults <BINLOG> | mysql -uXXX -pXXX断点恢复
基于位置点恢复
mysqlbinlog --no-defaults --start-position='开始位置点' --stop-position='结束位置点'  <BINLOG> | mysql -uXXX -pXXX基于时间点恢复
mysqlbinlog --no-defaults --start-datetime='YYYY-mm-dd HH:MM:SS' --stop-position='YYYY-mm-dd HH:MM:SS'  <BINLOG> | mysql -uXXX -pXXX如果需要恢复到某条sql语句之前的所有数据,就stop在这个语句的位置点或时间点之前
如果需要恢复某条sql语句及其之后的所有数据,就从这个语句的位置点或时间点开始start

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/307473.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RabbitMQ 核心概念(交换机、队列、路由键),队列类型等介绍

RabbitMQ 核心概念(交换机、队列、路由键)&#xff0c;队列类型等介绍 RabbitMQ 是一个消息队列系统&#xff0c;它的核心概念包括交换机&#xff08;Exchange&#xff09;、队列&#xff08;Queue&#xff09;和路由键&#xff08;Routing Key&#xff09;&#xff0c;它们一起…

shiro1.13认证流程核心-非框架整合版本

本案例测试使用的是shiro1.13.0最新版本测试 1、shiro概述&#xff1f; Apache Shiro是java的一个安全框架&#xff0c;能够实现&#xff1a;认证、授权、加密、会话管理、与Web集成、缓存等。 认证&#xff1a;本质就是判断你输入的用户名和密码跟数据库的是否相同。 授权&am…

售后客服日常回复必备的话术

致歉安抚通用 1.非常抱歉耽误您宝贵的时间了&#xff0c;这边给您查询一下&#xff0c;请稍等。 2.非常抱歉&#xff0c;给您添麻烦了。这边为您转接售后专员给您处理&#xff0c;请亲稍等。 3.影响到您的购物体验万分抱歉。 4.这边都会给您尽心解决的呢。 5.我非常理解您…

全新研发体系助力产品落地 传音控股成科技出海代表

一直以来&#xff0c;手机都被认为是所有新技术的最佳应用载体&#xff0c;尤其是在数字化、智能化时代&#xff0c;技术创新能力决定着手机厂商的生存与发展。 作为全球新兴市场手机行业的中坚力量之一&#xff0c;传音控股始终坚持以技术创新为驱动&#xff0c;围绕用户需求…

Airtest+Poco多设备并发自动化游戏测试框架(遇到的问题)

&#x1f4e2;专注于分享软件测试干货内容&#xff0c;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;交流讨论&#xff1a;欢迎加入我们一起学习&#xff01;&#x1f4e2;资源分享&#xff1a;耗时200小时精选的「软件测试」资…

Google Play上架:2023年度总结报告

今天是2023年的最后一个工作日&#xff0c;今天用来总结一下2023年关于谷歌商店上架的相关政策改动和对应的拒审解决方法。 目录 政策更新与改动2023 年 2 月 22 日2023 年 4 月5 日2023 年 7 月 12 日2023 年 10 月 25 日 开发者计划政策拒审邮件内容和解决办法 政策更新与改…

Shell脚本-bin/bash: 解释器错误: 没有那个文件或目录-完整路径执行-“/”引发的脑裂

引起该不适的一种可能以及解决方案&#xff0c;网上较多&#xff0c;比如&#xff1a; 但按以上方式操作&#xff0c;并经过查看&#xff0c;发现仍然未能解决问题。 因为两种方式执行&#xff0c;有一种能成功&#xff0c;有一种不能&#xff0c;刚开始未怀疑是文件问题&…

进程

进程 进程的概念、组成与特征进程的状态与转换进程控制进程通信 进程的概念、组成与特征 程序是静态的&#xff0c;是一个存放在磁盘里的可执行文件&#xff0c;是一系列的指令集合。 进程是动态的&#xff0c;是程序的一次执行过程&#xff0c;同一个程序多次执行会对应多个进…

自定义View绘制基础之Canvas

画布Canvas Canvas&#xff08;画布&#xff09;是一个用于绘制图形的重要类&#xff0c;它提供了一组绘图操作的方法&#xff0c;允许你在屏幕上绘制各种形状、图像和文本。下面是Canvas类的主要函数&#xff1a; 目录 一、绘制图形和图像 1.drawColor 2.drawCircle 3.dr…

方案:智能分析网关V4区域人数超员AI算法模型的应用场景介绍

视频AI智能分析技术已经深入到人类生活的各个角落&#xff0c;与社会发展的方方面面紧密相连。从日常生活中的各种场景&#xff0c;如人脸识别、车牌识别&#xff0c;到工业生产中的安全监控&#xff0c;如工厂园区的翻越围栏识别、入侵识别、工地的安全帽识别、车间流水线产品…

一篇文章掌握 NestJS 所有的生命周期以及生命周期的执行时机

前言 NestJS 是一个用于构建高效、可扩展的 Node.js 服务器端应用程序的框架&#xff0c;它使用 TypeScript 作为开发语言&#xff0c;也支持原生的 JavaScript。在 NestJS 中&#xff0c;生命周期事件是一个重要的概念。在我们构建和管理应用程序时&#xff0c;有时需要在特定…

【数据结构】C语言实现双链表的基本操作

双链表及其基本操作的实现 导言一、单链表与双链表二、双链表类型的创建三、双链表的初始化四、双链表的创建五、双链表的遍历六、双链表的查找七、双链表的插入八、双链表的删除结语 导言 大家好&#xff0c;很高兴又和大家见面啦&#xff01;&#xff01;&#xff01; 经过…