【MySQL数据库】mysql日志管理、备份与恢复

mysql日志管理、备份与恢复

  • MySQL数据库备份及日志
    • 一、数据库备份分类:
      • 如何选择逻辑备份策略 (频率)
      • 完全备份与恢复
        • 备份
        • 恢复
      • 增量备份与恢复
        • 实现增量备份
      • 基于时间点与位置恢复
    • 二.MySQL日志管理


MySQL数据库备份及日志

在生产环境中,数据的安全性是至关重要的,任何数据的丢失都可能产生严重的后果。造成数据丢失的原因

程序错误
人为操作错误
运算错误
磁盘故障
灾难(如火灾、地震) 和盗窃

所以数据库需要备份。这里以mysql5.7为例。

一、数据库备份分类:

从物理与逻辑的角度,备份可分为物理备份和逻辑备份。
(1)物理备份:对数据库操作系统的物理文件(如数据文件、日志文件等)的备份。又可以分为冷备份和热备份。

  • 冷备份:关闭数据库时进行的备份操作

  • 热备份:在数据库运行状态中进行备份操作,这种备份方法依赖于数据库的日志文件。

  • 温备份
    数据库锁定表格(不可写入但可读)的状态下进行备份操作 (mysgldump)

(2)逻辑备份:对数据库逻辑组件(如表等数据库对象)的备份。

从数据库的备份策略角度,备份可分为完全备份、差异备份、增量备份

(1)完全备份:每次对数据库进行完整的备份。可以备份单个数据库,多个数据库,所有数据库,也可以备份数据
库中的单个表,多个表。

(2)差异备份:备份那些自从上次完全备份之后被修改过的文件,只备份数据库部分内容,但是存储和恢复速度快

(3)增量备份:只有那些在上次完全备份或者增量备份后被修改的文件才会被备份。

在这里插入图片描述

如何选择逻辑备份策略 (频率)

合理值区间
一周一次的全备,全备的时间需要在不提供业务的时间区间进行 晚上2-4点之间进行全备
增量:3天/2天/1天一次增量备份
差异:选择特定的场景进行备份
一个处理(NFS) 提供额外空间给与mysql 服务器用

完全备份与恢复

备份

使用mysqldump工具可以灵活的控制备份的内容,比如某几个表或库都可以单独备份。

对单个库进行完全备份。命令格式如下:

mysqldump -u用户名 -p[密码] [选项] [数据库名] > /备份路径/备份文件名

对多个库进行完全备份。命令格式如下:

mysqldump -u用户名 -p[密码] [选项] --databases 库名1 库名2 ... > /备份路径/备份文件名

对所有库进行完全备份。命令格式如下:

mysqldump -u用户名 -p[密码] --opt --all-databases > /备份路径/备份文件名

对表结构进行完全备份。命令格式如下:

mysqldump -u用户名 -p[密码] -d 数据库名 表名 > /备份路径/备份文件名

对表进行完全备份。命令格式如下:

mysqldump -u用户名 -p[密码] 数据库名 表名 > /备份路径/备份文件名
恢复

登录mysql,使用source命令恢复库。命令格式如下:

source 库备份脚本的路径

在不登录MySQL的情况下,使用mysql命令直接恢复整库。命令格式如下:

mysql -u用户名 -p[密码] < 库备份脚本的路径

增量备份与恢复

MySQL没有提供直接的增量办法,但是可以通过对MySQL的二进制日志间接实现增量备份。二进制日志保存了所有更新或者可能更新数据库的操作。

特点:

没有重复数据,备份量不大,时间短。

需要上次完全备份及完全备份之后所有的增量备份才能恢复,而且要进行逐个反推恢复,操作繁琐。

实现增量备份

要进行MySQL增量备份,首先要开启二进制日志功能。
(1)在mysql的配置文件的[mysqld]选项中加入log-bin=mysql-bin,然后重启服务。

 vim /etc/my.cnf[mysqld]log-bin=mysql-bin

然后重启mysql

(2)使用mysqldump完全备份school库。

 mysqldump -u root -p123456 xcz1 > /bak/mysql_bak/$(date +%F).sql 

(3)使用mysqladmin的选项flush-logs生成新的二进制文件,这样在插入新的数据后,新的二进制文件对应的就是数据库的变化的内容。

mysqladmin -uroot -p123456 flush-logs 

(4)插入一条新的数据,以模拟数据的增加或变更。

此时的数据库变化保存在编号2 的二进制文件中,使用mysqlbinlog命令可以查看二进制文件的内容,里面保存了插入数据的语句。

mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql-bin.000002

(5)再次执行flush- logs操作生成新的二进制文件,而新的二进制文件会保存之后的数据操作。

mysqladmin -uroot -p123456 flush-logs

基于时间点与位置恢复

基于位置恢复
使用基于时间点的恢复可能会出现在一个时间点里既同时存在正确的操作又存在错误的操作,基于位置是一种更为精确的恢复方式。

mysqlbinlog --no-defaults --start-position='1560' --stop-position='1825'
/opt/mysql-bin.000006 | mysql -uroot -pabc123

基于时间点恢复

mysqlbinlog [--no-defaults] --start-datetime='年-月-日 小时:分钟:秒' --stopdatetime='
年-月-日小时:分钟:秒' 二进制日志 | mysql -u 用户名 -p 密码
#例如:
mysqlbinlog --no-defaults --stop-datetime='2023-07-17 23:04:18' /opt/mysqlbin.
000006 | mysql -uroot -pabc123

二.MySQL日志管理

MySQL日志管理
MySQL的默认日志保存位置为/usr/local/mysql/data
yum安装为 /var/lib/mysql
日志开启方式有两种:通过配置文件或者是通过命令
通过命令修改开启的日志是临时的,关闭或重启服务后就会关闭

可在 /etc/my.cnf 配置文件中的 [mysqld] 中进行日志的路径修改、开启、关闭等操作
①、错误日志
用于记录 mysql 启动、停止或运行时产生的错误信息
可通过一下字段进行更新
log-error=/usr/local/mysql/data/mysql_error.log (指定日志的保存位置和文件名)
②、二进制日志
二进制日志,用来记录所有更新的数据或者已经潜在更新了数据的语句,记录了数据的更改,可用于数据恢复
开启方式:

log-bin=mysql-bin #或者 
log_bin=mysql-bin

③、中继日志
一般情况下,它在 mysql 主从同步(复制)、读写分离集群的从节点上才开启。
主节点一般不需要这个日志。
④、慢查询日志
慢查询日志,用来记录所有执行时间超过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秒)

数据库中查询日志状态
①、查看二进制日志开启状态

show variables like '%log_bin%';

②、查看慢查询日志功能是否开启

show variables like '%slow%';

③、查看慢查询时间设置

show variables like 'long_query_time';

查看通用查询日志是否开启

#重新mysql服务
systemctl restart mysqld.service
mysql -uroot -pabc123
show variables like 'general%';

在这里插入图片描述

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

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

相关文章

在未来你将何去何从?

在数字化的浪潮中&#xff0c;信息技术行业无疑是推动全球经济和社会发展的重要动力。随着科技的不断迭代与进步&#xff0c;云计算、大数据、人工智能&#xff08;AI&#xff09;、物联网&#xff08;IoT&#xff09;、5G通信和区块链等技术已经深入到我们生活的每一个角落&am…

鸿蒙原生应用元服务开发-鸿蒙真机运行项目实战与注意事项

一、解压项目注意项目包不能为中文 二、用数据线将装好DevEco Studio的电脑与设置为开发者模式的鸿蒙手机相连接。 三、将项目包托进DevEco Studio 中 注意项目包文件不能有嵌套 四、查看设备运行 五、点击项目结构 六、勾选红色框圈部分 登录开发者账号 七、选择好公司 八、等…

我是如何使用 Next.js14 + Tailwindcss 重构个人项目的

前言 去年在学习 React 和 Nest 的时候&#xff0c;参考了大佬 imsyy 的项目 DailyHot&#xff0c;以此项目的灵感基于 React 开发&#xff0c;完成之后就没怎么在意。 后来发现这个项目还有点小流量&#xff0c;每天差不多 200-400 的 IP 访问量&#xff1a; 我又抽时间优…

深度学习之基于Pytorch框架手写数字识别

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与意义 手写数字识别是数字图像处理领域的一个经典问题&#xff0c;也是深度学习技术的一个常用应用场…

uniappx 获取设备唯一标识(OAID、AAID、AndroidID、IMEI等) Ba-IdCode-U

简介&#xff08;下载地址&#xff09; Ba-IdCode-U 是一款可以获取国内各大手机厂商 OAID&#xff08;开放匿名设备标识&#xff09;及海外手机平台 AAID&#xff08;安卓广告标识&#xff09;的uniapp插件。另外也支持获取 IMEI/MEID、AndroidID、WidevineID、PseudoID、GUI…

Spring Cloud Alibaba-06-Sleuth链路追踪

Lison <dreamlison163.com>, v1.0.0, 2024.4.03 Spring Cloud Alibaba-06-Sleuth链路追踪 文章目录 Spring Cloud Alibaba-06-Sleuth链路追踪为什么使用链路追踪常见链路追踪解决方案Sleuth概述概述Sleuth术语 Sleuth Zipkin 原理Sleuth原理简述Zipkin 原理简述 Sleut…

代码随想录——路径总和(Leetcode113)需要回顾

题目链接 递归 本题递归需要遍历整棵树&#xff0c;所以递归没有返回值 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* T…

苹果M4性能分析:进步神速?还有多少空间?

2024年初&#xff0c;苹果推出了M4处理器&#xff0c;令人意外的是&#xff0c;它的发布距离M3发布仅仅过去了半年时间。更让人惊讶的是&#xff0c;M4首次亮相于iPad Pro。这一新处理器不仅仅是M3的简单升级版本&#xff0c;而是一次全面的架构优化。本文将详细分析M4处理器的…

Vue基础(1)数据绑定

一. 文本插值 普通文本可以使用双大括号 {{ }} &#xff0c;要想插入 HTML&#xff0c;需要使用 v-html 指令。 <template><h1>Message: {{ state.msg }}</h1><p>{{ state.count 1 }}</p><p>{{ state.rawHtml }}</p><p v-html…

【教学类-58-02】黑白三角拼图02(3*3宫格)262144种

背景需求&#xff1a; 已知黑白三角拼图2*2&#xff08;4个拼图&#xff09;一共有256种排列方法 【教学类-58-01】黑白三角拼图01&#xff08;2*2宫格&#xff09;256种-CSDN博客文章浏览阅读142次&#xff0c;点赞5次&#xff0c;收藏12次。【教学类-58-01】黑白三角拼图01…

深度学习之基于Matlab卷积神经网络(CNN)手写数字识别

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与意义 手写数字识别是计算机视觉领域的一个重要问题&#xff0c;也是深度学习应用的一个典型场景。卷…

什么是固态继电器?

固态继电器是不需要使用任何机械部件的开关继电器。这通常使它们具有比普通机电继电器寿命更长的优势&#xff0c;然而&#xff0c;尽管固态继电器速度快且耐用&#xff0c;但仍具有某些设计规定。 固态继电器风靡全球&#xff0c;彻底改变了从农业自动化到航空航天等各个行业…

银行总部文件自动下发,如何保证不影响专线网络使用?

银行在我国金融体系中占据重要地位&#xff0c;是我国市场经济的重要组成部分。我国商业银行随着自身不断发展&#xff0c;规模日益扩大&#xff0c;形成了“总行-分行-支行-营业网点”的典型层级管理模式。在日常中&#xff0c;银行总部存在文件下发的场景&#xff1a; 银行总…

多家知名媒体到访“光子1号金融算力中心“ 交流AI与算力未来观

5月23日&#xff0c;企商在线 “光子1号金融算力中心媒体参观日”活动成功举办&#xff0c;十多家主流媒体、IT行业媒体及自媒体代表走进光子1号金融算力中心&#xff0c;深入了解企商业务发展、战略规划及“光子1号金融算力中心”等企商打造的新型数字基础设施&#xff0c;共同…

Python条件分支与循环

大家好&#xff0c;当涉及到编写高效和灵活的程序时&#xff0c;条件分支和循环是 Python 中至关重要的概念。它们允许我们根据不同的条件执行不同的代码块&#xff0c;或者重复执行一组语句。条件分支和循环是测试开发工程师在日常工作中经常使用的工具&#xff0c;无论是编写…

光耦合器的特性和应用概述

光耦合器又称光电耦合器&#xff0c;是现代电子学中必不可少的元件&#xff0c;确保隔离电路之间安全有效的信号传输。本文探讨了光耦合器的特性及其多样化应用&#xff0c;强调了它们在各种电子系统中的关键作用。 什么是光耦合器&#xff1f; 光耦合器是一种设计用于利用光传…

【MySQL数据库】CRUD 增 删 改 查 超详解,有这一篇就够了!

​ ​ &#x1f525;个人主页&#xff1a; 中草药 &#x1f525;专栏&#xff1a;【MySQL】探秘&#xff1a;数据库世界的瑞士军刀 目录 ⚗️一.CRUD &#x1f9ea;二.新增&#xff08;Create&#xff09; &#x1f9eb;1.基本操作 &#x1f9ec;2.使用SELECT插入 &#x…

长难句5.24

There is pressure for change from within the profession, but opponents of change among the regulators insist that keeping outsiders out of a law firm isolates lawyers from the pressure to make money rather than serve clients ethically. 在(律师)行业内部也有…

区块链钱包如果丢失了私钥或助记词,资产还能恢复吗?

如果你丢失了区块链钱包的私钥或助记词&#xff08;通常是用于恢复钱包的短语或种子&#xff09;&#xff0c;那么你的资产在大多数情况下是无法恢复的。私钥是访问和控制你在区块链上资产的唯一凭证&#xff0c;而助记词&#xff08;如BIP39标准中的12、18、24个单词的短语&am…

centos常见命令总结

一、【写在前面】 注意到csdn在鼓励作者创作centos常见命令相关的文章&#xff0c;借此机会水一篇博文。 centos作为上个版本国内最常用的开源操作系统&#xff0c;占有量非常恐怖&#xff0c;排个前三应该没有任何疑问。但是我建议直接去学ubuntu&#xff0c;因为主流在用的…