关系型数据库mysql(6)备份与恢复

一.数据备份的重要性

(1)在生产环境中,数据的安全性至关重要

(2)任何数据的丢失都可能产生严重的后果

(3)造成数据丢失的原因

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

扩展:容灾

容灾系统是指,在相隔较远的异地,建立两套或者多套功能相同的IT系统,相互之间可以进行健康状态的监控和功能切换,当一处系统因为意外(如,火灾、地震、服务器人为破坏等)停止工作后,整个应用系统可以切换到另一处,使得该系统功能可以继续正常工作。

二. 数据库备份的分类

从物理与逻辑的角度,备份可分为

  • 物理备份:对数据库操作系统的物理文件(如数据文件、日志文件等)的备份

物理备份方法:

(1)冷备份(脱机备份):是在关闭数据库的时候进行的

把数据库用systemctl stop关闭的时候进行备份

(2)热备份(联机备份):数据库处于运行状态,依赖于数据库的日志文件

从数据库的日志文件进行备份(不建议用这种方式去备份)

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

温备份不影响数据库的运行,但是你不能访问

  • 逻辑备份:对数据库逻辑组件(入:表等数据库对象)的备份

这种类型的备份适用于可以编辑数据值或表结构    

从数据库的备份策略角度,备份可以分为

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

完全备份过程

每次都会进行完全备份,会导致备份文件占用巨大的空间,并且有大量的重复数据

生产环境中只适合第一次,不适合天天备份

恢复时直接把文件导入进去即可

  • 差异备份:备份自从上次完全备份之后被修改过的文件

差异备份过程

上次差异备份,都会备份上一次完全备份之后的数据,可能会出现备份重复数据,导致占用大量额外的磁盘空间

恢复时,先回复完全备份,再回复导入差异备份的数据

  • 增量备份:只有在上次完全备份或者增量备份后被修改的文件才会被备份

增量备份过程

每次增量备份的数据都是备份在上一次完全备份或者增量备份之后的数据,不会出现重复数据,也不会占用额外的磁盘空间

恢复时 需要 完全恢复 再增量恢复(次序)

备份方式的比较

备份方式完全备份时状态第一次添加内容备份内容第二次添加内容备份内容
完全备份表1+表2表3表1+表2+表3表4表1+表2+表3+表4
差异备份表1+表2表3表3表4表3+表4
增量备份表1+表2表3表3表4表4

完全备份创建多少都会把原来的数据再备份一遍

差异备份会把上一次备份多出来的数据再备份一遍

增量备份都会备份每一份多出来的的数据

选择备份的策略

备份方式备份策略频率
完全备份一周做一次完全备份。在不需要提供业务的时间例如PM 10点 AM 5:00,最好在凌晨1~5点
差异备份选择特定的场景进行备份
增量备份1/2/3天一次增量备份

我们为了数据的安全一般会放在NFS中

总结 

完全备份差异备份增量备份
执行顺序每次完全备份会备份之前完全备份的数据,会出现重复数据每次执行差异备份会备份之前每次的差异备份每一次增量备份的数据都是备份上一次增量备份后新增的数据
占用磁盘空间占用大量的磁盘空间占用少量额外的磁盘空间占用极少量的磁盘空间
数据恢复

把完全备份的文件导入即可

恢复速度很快

先恢复完全备份数据,再导入差异备份数据先恢复完全备份数据,再恢复增量备份数据(需要按照次序进恢复)

 

三.常见的备份方法

物理冷备

  • 备份时数据库处于关闭状态,直接打包数据库文件
  • 备份速度快,恢复时也是最简单的

专用备份工具mudump或mysqlhotcopy

  • mysqldump常用的逻辑备份工具
  • mysqlhotcopy仅拥有备份MyLSAM和ARCHIVE表

启用二进制日志进行增量备份

  • 进行增量备份,需要刷新二进制文件

Mysql支持增量备份,进行增量备份时必须启用二进制日志。二进制日志文件为用户提供复制,对执行的数据库更改所需的信息进行恢复。如果进行增量备份(包含上次完全备份或增量备份以来发生的数据修改),需要刷新二进制日志

第三方工具备份

  • 免费的MYSL热备份软件Percona XtraBackup

完全备份

  • 是对整个数据库、数据库结构和文件结构的备份
  • 保存的时备份完成时刻的数据库
  • 是差异备份和增量备份的基础
完全备份的优点
  • 备份与恢复操作简单方便
完全备份的缺点
  • 数据存在大量的重复
  • 占用大量的备份空间
  • 备份与回复时间长
完全备份的分类
物理冷备份与恢复
  • 关闭MYSQL数据库
  • 使用tar命令直接打包数据库文件夹
  • 直接替换现有MYSQL目录即可
mysqldump备份与和恢复
  • MySQL自带的备份工具,可方便实现对MYSQL的备份
  • 可以将指定的库,表导入为SQL脚本
  • 使用命令mysql导入备份的数据

导出使用的是Mysqldump;导入使用的是Mysql命令 

四.Mysql数据库完全备份操作

InnoDB 存储引擎的数据库在磁盘上存储成三个文件:

  • db.opt(表属性文件)
  • 表名.frm(表结构文件)
  • 表名.ibd(表数据文件)

环境准备-创建数据库和表,插入若干条记录

use test;
create table test01(id int(4) not null auto_increment primary key,
name varchar(10) not null,
age char(10) not null,
hobby varchar(50));insert into test01 values(1,'zhangsan',22,'xizao');
insert into test01 values(2,'lisi',21,'xijiao');
insert into test01 values(3,'wangwu',20,'anmo');
insert into test01 values(4,'zhaoliu',19,'tangtou');select * from test01;

物理冷备份与恢复

方法一 
先关闭数据库

备份
[root@localhost mysql]#pwd
/usr/local/mysql
[root@localhost mysql]#tar zcvf data.tar.gz data/[root@localhost mysql]#mv data.tar.gz /opt

 mysql下的data就是我们的数据

 

 这时mysql下多了我们备份的data.tar.gz

将备份的数据移动到我们指定的目录 

 

恢复

 将备份的数据解压回源目录

 这时我们发现原数据又回来了

方法二
备份: 
使用tar命令直接打包数据库文件夹
yum -y install xz
#压缩备份
tar Jcvf /opt/mysql_all_$(date +%F).tar.xz /usr/local/mysql/data/3、直接替换现有MySQL目录即可
mv /usr/local/mysql/data/ /opt/4、解压恢复
tar Jxvf /opt/mysql_all_2024-03-25.tar.xz  -C ./
cd /usr/local/mysql/data
mv /usr/local/mysql/data/* ./

 

压缩备份

 

成功得到备份 

[root@localhost mysql]#ls
[root@localhost mysql]#mkdir data
[root@localhost mysql]#ls
data
[root@localhost mysql]#pwd
/home/mysql
[root@localhost mysql]#tar Jxvf /opt/mysql_all_2024-03-25.tar.xz -C ./

这时我们发现在mysql下创建的data目录里面没有数据

 

 解压到data目录下

 

解压的移动到指定目录下 

 这时我们发现mysql目录下有了我们的data数据

mysqldump 备份与恢复 

 完全备份一个或多个完整的库(包括其中所有的表)
mysqldump -u root -p[密码] --databases 库名1 [库名2] ... > /备份路径/备份文件名.sql    #导出的就是数据库脚本文件
mysqldump -uroot -p123 --databases test > /opt/test.sqlmysqldump -u root -p123456 --databases mysql test > /opt/test_mysql.sql

 备份一个test库

 备份mysql和test两个库

 查看

完全备份MySQL服务器中所有的库 
mysqldump -u root -p[密码] --all-databases > /备份路径/备份文件名.sqlmysqldump -u root -p123456 --all-databases > /opt/all.database.sql

备份所有的库

查看

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

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

相关文章

背景减除(1)--bgslibrary Windows编译和使用

入侵监控领域中,在固定场景下,需要检测和监控的入侵物体种类繁多,无法具体穷尽。传统的CV算法提取的特征应用场景有限,无法完成大量物体的监控;深度学习目标检测方法没法收集到无穷无尽的物体种类,因此监督…

C语言----strcpy和strcat的使用和模拟实现

一,strcpy()函数 strcpy() 函数是 C语言中一个非常重要的字符串处理函数,其功能是将一个字符串复制到另一个字符串中。该函数原型如下: char*strcpy(char*dest,const char*src) 其中,dest 表示目标字符串,即将被复制到…

【HDFS】DatanodeAdminBackoffMonitor退役节点极慢的问题定位

一、现象: 下节点特别慢。10台节点,每台大约需要退役60w个块。但是3个小时才退役了3000多个块。 NN侧如下日志,可以看到30秒只退役了512-494 = 20个块,这要是退役600w个块,得猴年马月? 2024-03-19 14:44:42,952 INFO org.apache.hadoop.hdfs.server.blockmanagement.D…

浅析扩散模型与图像生成【应用篇】(十一)——DDIBs

11. Dual Diffusion Implicit Bridges for Image-to-Image Translation 该文提出一种双扩散隐式桥(Dual Diffusion Implicit Bridges, DDIBs)方法用于图像转换,其最大的特点在于处理源域图像的模型和处理目标域图像的模型是彼此分…

华为防火墙二层墙(VAN/SVI/单臂路由)

二层墙只能做地址池形式的NAT。 交换机安全策略防火墙二层墙 路由器安全策略防火墙三层墙 交换机的光口是不能直接插线的,光模块,包括进和出 长距离:单模 短距离:多模 防火墙自身的ping流量需要单独配置

一篇复现Docker镜像操作与容器操作

华子目录 Docker镜像操作创建镜像方式1docker commit示例 方式2docker import示例1:从本地文件系统导入示例2:从远程URL导入注意事项 方式3docker build示例1:构建镜像并指定名称和标签示例2:使用自定义的 Dockerfile 路径构建镜像…

Unity连接MySQL踩坑,问题处理记录

用的unity2021版本,MySQL是官方下载的最新版8.0.36. 安装MySQL时,过去如果安装过,一定要删干净,单纯的卸载不行,网上有很多教程。 MySQL安装完成后,将安装目录的MySql.Data.dll文件放入unity项目的Plugin…

数据运营常用的8大模型

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

202447读书笔记|《围炉夜话》——多记先正格言,胸中方有主宰 闲看他人行事,眼前即是规箴

202447读书笔记|《围炉夜话》——多记先正格言,胸中方有主宰;闲看他人行事,眼前即是规箴 围炉夜话 《围炉夜话(读客三个圈经典文库)》作者王永彬。读《围炉夜话》,可以掌握君子安身立业的大智慧&#xff01…

【Canvas与艺术】暗蓝网格汽车速度仪表盘

【关键点】 采用线性渐变色&#xff0c;使上深下浅的圆有凹下效果&#xff0c;使上浅下深的圆有凸起效果&#xff0c;两者结合就有立体圆钮的感觉。 【图例】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type&quo…

2015年认证杯SPSSPRO杯数学建模C题(第二阶段)荒漠区动植物关系的研究全过程文档及程序

2015年认证杯SPSSPRO杯数学建模 C题 荒漠区动植物关系的研究 原题再现&#xff1a; 环境与发展是当今世界所普遍关注的重大问题, 随着全球与区域经济的迅猛发展, 人类也正以前所未有的规模和强度影响着环境、改变着环境, 使全球的生命支持系统受到了严重创伤, 出现了全球变暖…

R语言基础入门

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

【STM32嵌入式系统设计与开发】——9Timer(定时器中断实验)

这里写目录标题 一、任务描述二、任务实施1、ActiveBeep工程文件夹创建2、函数编辑&#xff08;1&#xff09;主函数编辑&#xff08;2&#xff09;USART1初始化函数(usart1_init())&#xff08;3&#xff09;USART数据发送函数&#xff08; USART1_Send_Data&#xff08;&…

【论文阅读】Probabilistic Imputation for Time-series Classification with Missing Data

Probabilistic Imputation for Time-series Classification with Missing Data 论文链接&#xff1a;https://icml.cc/virtual/2023/poster/23522 作者&#xff1a;SeungHyun Kim Hyunsu Kim EungGu Yun Hwangrae Lee Jaehun Lee Juho Lee 机构&#xff1a;韩国科学技术…

Qt登录页面

#include "mywidget.h" #include "ui_mywidget.h"MyWidget::MyWidget(QWidget *parent): QWidget(parent), ui(new Ui::MyWidget) {ui->setupUi(this);//接收动图QMovie *mv new QMovie(":/pictrue/luori.gif");ui->loglab->setMovie(…

修复编译RK3568-buildroot时提示不能使用root权限编译的问题

问题 使用 rk3568 的 sdk 中的 buildroot 来编译根文件系统的时候&#xff0c;出现 "you should not run configure as root (set FORCE_UNSAFE_CONFIGURE1 in environment&#xff09;" 的错误。 解决方法 根据错误提示&#xff0c;我们将 set FORCE_UNSAFE_CON…

算法打卡day16

今日任务&#xff1a; 1&#xff09;513.找树左下角的值 2&#xff09;112.路径总和 3&#xff09;113.路径总和Ⅱ 4&#xff09;106.从中序与后序遍历序列构造二叉树 5&#xff09;105.从前序与中序遍历序列构造二叉 513.找树左下角的值 题目链接&#xff1a;513. 找树左下角…

如何在软件测试行业走的更远?

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 时间往前推10年&#xff0c;IT业如日中天。 其中测试更是一个极具包容性的行业。那些希望在技术…

【云开发笔记No.9】Kanban与敏捷开发

Kanban看板起源于丰田。 看板&#xff08;Kanban&#xff09;一词来自日文&#xff0c;本义是可视化卡片。如下图所示&#xff0c;看板工具的实质是&#xff1a;后道工序在需要时&#xff0c;通过看板向前道工序发出信号——请给我需要数量的输入&#xff0c;前道工序只有得到看…

Orangedx:引领新一轮 BTCFi 浪潮

“OrangeDx 作为新一轮 BTCFi 浪潮引领者被市场寄予厚望 &#xff0c;前不久在 FinceptorApp 的平台的公开销售 20 万美元的额度仅在几秒售罄&#xff0c;而其即将以 Startup 方式登陆 Gate 平台也同样备受市场期待。” 自 Ordinals 面向市场为比特币生态带来全新的资产发行方案…