MySQL数据库的备份

文章目录

  • MySQL数据库的备份
    • MySQL备份方法
    • 完全备份
      • 物理备份
        • 备份
      • 逻辑热备完全备份
      • 逻辑热备恢复
        • 恢复库
        • 恢复表
      • 增量备份
        • 备份
        • 增量备份恢复
          • 基于位置进行恢复
          • 基于时间

MySQL数据库的备份

MySQL备份方法

  1. 物理备份
    物理备份涉及直接复制MySQL的数据文件和日志文件。这种方法通常更快,但需要数据库服务器处于关闭状态或使用特殊的复制工具(如Percona XtraBackup)来进行热备份。物理备份适用于大型数据库,因为它可以快速恢复数据,但可能不适用于跨平台恢复。
  2. 逻辑备份
    逻辑备份是通过导出数据库的结构和数据来完成的,通常使用mysqldump工具。这种备份方法生成的是SQL语句,可以用于重建数据库。逻辑备份适用于小型数据库,恢复时需要执行SQL语句来重建数据,可能需要更长的时间。
    备份策略
  3. 完全备份
    完全备份是备份整个数据库,包括所有数据和结构。这是最基本的备份类型,但备份和恢复过程可能需要较长的时间。完全备份是差异备份和增量备份的基础。
  4. 差异备份
    差异备份只备份自上次完全备份以来发生变化的数据。这种备份方法比完全备份快,因为只备份了部分数据。恢复时,需要先恢复最近的一次完全备份,然后应用所有差异备份。
  5. 增量备份
    增量备份只备份自上次完全备份或增量备份以来发生变化的数据。这种方法备份和恢复速度最快,但恢复过程最为复杂,因为需要按顺序应用所有增量备份。

此文主要讲解逻辑备份

完全备份

物理备份

备份

1.关闭MySQL服务器

systemctl stop mysqld.service

2.将MySQL数据库目录下/data/文件夹打包备份至其他磁盘

cd /opt	
tar cvf mysql_all_bak.tar /usr/local/mysql/data

在这里插入图片描述

逻辑热备完全备份

1使用mysqldump命令进行备份

所有库备份

mysqldump -u "你的账户" -p"你的密码" --all-databases > "/备份路径/文件名"
mysqldump -uroot -p123123 --all-databases > /opt/mysql_all_bak.sql

部分库备份

mysqldump -uroot -p123123 --databases "库名1" "库名2" "库名3" ...... >"/备份路径/文件名"

部分表的备份

mysqldump -uroot -p123123 "库名" "表名" >"/备份路径/文件名"

备份所有的库
在这里插入图片描述
备份单独的表

mysqldump -uroot -p123123 glry cd > /opt/cd_bak.sql

在这里插入图片描述

逻辑热备恢复

恢复库

目前数据库表与库如下图所示

在这里插入图片描述
现在删除库glry

drop database glry;

在这里插入图片描述
恢复

mysql -uroot -p123123 </opt/mysql_all_bak.sql

在这里插入图片描述

恢复表

删除表cd

drop table glry.cd

在这里插入图片描述

mysql -uroot -p123123 "库名" < "/备份路径/文件名"
mysql -uroot -p123123 glry < /opt/cd__bak.sql

在这里插入图片描述
cd恢复了

增量备份

备份

首先开启mysql数据库的二进制日志
在mysql配置文件 my.cof里配置
在[mysqld]配置块下添加

log-bin=mysql-bin
binlog_format = MIXED
二进制日志(binlog)有3种不同的记录格式:STATEMENT(基于SQL语句)、ROW(基于行)、MIXED(混合模式),默认格式是STATEMENT

在这里插入图片描述
重启mysql服务
登录数据库,并创建库和表,然后刷新二进制日志文件

create database glcs;
use glcs;
create table 1d(id int,name char(5));
insert into 1d values(1,'tg1');
insert into 1d values(2,'tg2');
insert into 1d values(3,'tg3');
insert into 1d values(4,'tg4');
insert into 1d values(5,'tg5');
insert into 1d values(6,'tg6');
insert into 1d values(7,'tg7');
exit

刷新二进制日志

mysqladmin -uroot -p123123 flush-logs  

在这里插入图片描述

cd /usr/local/mysql/data/
cp -a  mysql-bin.000001  /opt/mysql-bin-$(date -d "-1 day" +%Y%m%d).sql
cd /opt
ls

在这里插入图片描述

增量备份恢复
基于位置进行恢复

首先查看二进制日志

mysqlbinlog --no-defaults --base64-output=decode-rows -v /opt/mysql-bin-20240324.sql

在这里插入图片描述

删除glcs数据库模拟数据丢失
在这里插入图片描述
恢复到创建glcs表但没有创建cd表时
查看二进制日志 可以看到创建glcs的位置在at219至at313
在这里插入图片描述

mysqlbinlog --no-defaults --stop-position= /opt/mysql-bin-20240324.sql|mysql -uroot -p123123

在这里插入图片描述
目的达成

基于时间

在这里插入图片描述
为了恢复到tg4
查看二进制日志
起始时间 240325 17:14:03
创建完tg4是在240325 17:16:34
在这里插入图片描述

mysqlbinlog --no-defaults --start-datetime="2024-03-25 17:14:03" --stop-datetime="2024-03-25 17:16:34" /opt/mysql-bin-20240324.sql | mysql -uroot -p123123

在这里插入图片描述
恢复成功

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

(进程线程)的状态和线程安全

进程有两个状态就绪状态和阻塞状态。 这些状态决定了系统会按照什么样的态度来调度这个进程&#xff08;这些一般是针对一个进程里面有一个线程的情况&#xff09;。在实际的大多数情况下&#xff0c;一个进程中包含多个线程&#xff0c;其状态则会绑定在线程上。 上诉状态一…

计算机408炸了!大多数人都栽在这门课上

组成原理>>数据结构>操作系统>计算机网络 在本科时&#xff0c;我在学习组成原理之前已经学过数字电路和模拟电路&#xff0c;但在接下来学习组成原理时&#xff0c;我依然感到困难。也许是因为自己理解能力不足&#xff0c;总觉得难以掌握&#xff0c;甚至在考研…

算法打卡day28|贪心算法篇02|Leetcode 122.买卖股票的最佳时机 II、55. 跳跃游戏、45.跳跃游戏 II

算法题 Leetcode 122.买卖股票的最佳时机 II 题目链接:122.买卖股票的最佳时机 II 大佬视频讲解&#xff1a;买卖股票的最佳时机 II视频讲解 个人思路 因为只有一只股票&#xff0c;且两天作一个交易单元&#xff0c;那每次只收集正利润就可以最终最多可以获取的利润&#xf…

数据运营常用的8大模型

✅作者简介&#xff1a;《数据运营&#xff1a;数据分析模型撬动新零售实战》作者、《数据实践之美》作者、数据科技公司创始人、多次参加国家级大数据行业标准研讨及制定、高端企培合作讲师。 &#x1f338;公众号&#xff1a;风姑娘的数字视角&#xff0c;免费分享数据应用相…

10个优秀的Github开源项目

1Panel 是一个现代化、开源的 Linux 服务器运维管理面板 EX-chatGPT-精准搜索工具 feishu-chatgpt-飞一般的工作体验工具 Knife4j-是一个集Swagger2 和 OpenAPI3为一体的增强解决方案 Kooder 是 Gitee 团队开发的一个代码搜索系统 mtbird 是一款低代码可视化页面生成器 S…

<Linux> 模拟实现文件流 - 简易版

目录 1. FILE 结构设计 2、函数使用及分析 3、文件打开 fopen 4. 缓冲区刷新fflush 5. 数据写入fwrite 6. 文件关闭 fclose 7. 测试 8. 小结 1. FILE 结构设计 在设计 FILE 结构体前&#xff0c;首先要清楚 FILE 中有自己的缓冲区及冲刷方式 缓冲区的大小和刷新方式因…

巧用 20个 Linux 命令贴士与技巧,让你生产力瞬间翻倍?

在本文中&#xff0c;我将向您演示一些专业的Linux命令技巧&#xff0c;这些技巧将使您节省大量时间&#xff0c;在某些情况下还可以避免很多麻烦&#xff0c;而且它也将帮助您提高工作效率。 并不是说这些只是针对初学者的 Linux 技巧。即使有经验的Linux用户也有可能没有发现…

C++ 扫描当前路径下文件并删除大文件

C 扫描当前路径下文件并删除大文件 C获取当前路径扫描文件路径下规定后缀名称的文件计算文件大小 1. 获取当前路径 使用<Windows.h>中的GetCurrentDirectory方法实现&#xff0c;单独编写验证程序如下&#xff1a; #include<iostream> #include<Windows.h&g…

R语言基础入门

1.保存或加载工作空间 改变工作目录——进行文件读写&#xff0c;默认去指定文件进行操作。&#xff08;使用R时&#xff0c;最好先设定工作目录&#xff08;setwd(),getwd()&#xff09;&#xff09; setwd(“工作文件路径”)&#xff1a;建立工作目录 getwd&#xff08;&…

Linux的进程控制(创建和终止)

进程创建 fork 我们前面已经认识过fork函数&#xff0c; 用fork创建新进程后&#xff0c; 新建立的进程为子进程&#xff0c; 该进程为父进程。fork给父进程返回的是子进程的pid&#xff0c; 给子进程返回的是0&#xff0c; 出错时返回-1 进程调用fork后&#xff0c; 当控制…

IS-IS路由

概览&#xff1a; Intermediate System-to-Intermediate System&#xff0c;中间系统到中间系统协议 IS-IS--IGP--链路状态协议--AD值&#xff1a;115 IS--中间系统&#xff08;路由器&#xff09; ES--终端系统&#xff08;PC&#xff09; 在早期IS-IS的开发并不是为了IP…

安防监控视频汇聚平台EasyCVR启用图形验证码之后如何调用login接口?

视频综合管理平台EasyCVR视频监控系统支持多协议接入、兼容多类型设备&#xff0c;平台可以将区域内所有部署的监控设备进行统一接入与集中汇聚管理&#xff0c;实现对监控区域的实时高清视频监控、录像与存储、设备管理、云台控制、语音对讲、级联共享等&#xff0c;在监控中心…

3.25号arm

1. I2C总线 1.1 i2c概述 I2C总线是PHLIPS公司在八十年代初推出的一种串行的半双工总线&#xff0c;主要用于连接整体电路。 I2C总线为两线制&#xff0c;只有两根双向信号线。一根是数据线SDA&#xff0c;另一根是时钟线SCL。 I2C硬件结构简单&#xff0c;接口连接方便&…

【OpenModelica】1 OpenModelica项目架构

1 OpenModelica项目架构 文章目录 1 OpenModelica项目架构一、 架构总览图二、OpenModelica各部分作用 一、 架构总览图 OpenModelica 环境由几个相互连接的子系统组成&#xff0c;如图 1.1 所示。 其中包括&#xff1a; MDT Eclipse 插件图形模型编辑器/浏览器文本模型编辑器…

日本科技巨头富士通遭遇网络攻击,客户数据被窃

日本科技巨头富士通3月15日发布通告&#xff0c;宣称公司经历了一起网络攻击事件&#xff0c;客户个人数据已被黑客窃取。 富士通在一份通知中写道&#xff1a;“我们已经确认有几台商用计算机上存在恶意软件&#xff0c;并且经过我们的内部调查&#xff0c;发现包含个人信息和…

SAP前台处理:物料计价方式:价格控制与价格确定 - 02 <CKM3>

一、背景&#xff1a; 物料主数据中我们讲解到物料的计价方式&#xff0c;SAP应用到的主要计价方式有移动平均价和标准价格方式两种&#xff0c;但也有按照批次计价等方式&#xff0c;我们主要介绍最常用的V2移动平均价和S3的标准价格&#xff1b; 二、示例差异分析&#xff…

k8s入门到实战(二)—— windows安装minikube

minikube 安装 minikube 是一个用于在本地计算机上运行单个节点的 k8s 集群的工具。它允许开发人员可以在自己的计算机上进行本地的 k8s 开发和测试。通过minikube&#xff0c;您可以模拟一个完整的 k8s 集群环境&#xff0c;包括节点、Pod、服务和存储等组件。它是一个轻量级…

Xcode-双架构arm64 x86_64编译

要启用通用构建&#xff0c;在最新版本的 Xcode 中&#xff0c;请打开您的项目设置&#xff0c;然后依次选择&#xff1a; 1. “Build Settings” 选项卡。 2. 在顶部输入框中输入 “Architectures”。 3. 在 “Architectures” 下拉列表中选择 “Other”。 4. 在输入框中输入 …

代码随想录刷题day32|K次反转后最大的数组和加油站分发糖果

文章目录 day34学习内容一、K次反转后最大的数组和1.1、思路1.2、代码-正确写法1.2.1、如何理解if (k % 2 1) &#xff1f;1.2.2、原始nums数组[2,-3,-1,5,-4]&#xff0c;那么排序后数组等于什么&#xff1f; 二、加油站2.1、思路2.2、正确写法12.2.1、 如何理解上面这段代码…

数据可视化-ECharts Html项目实战(7)

在之前的文章中&#xff0c;我们学习了如何设置漏斗图、仪表盘。想了解的朋友可以查看这篇文章。同时&#xff0c;希望我的文章能帮助到你&#xff0c;如果觉得我的文章写的不错&#xff0c;请留下你宝贵的点赞&#xff0c;谢谢 数据可视化-ECharts Html项目实战&#xff08;6…