Mysql备份与还原

一、数据备份的重要性

1、备份的主要目的是灾难恢复

2、在生产环境中,数据的安全性至关重要

3、任何数据的丢失都可能产生严重的后果

4、造成数据丢失的原因

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

二、数据库备份类型

2.1 物理备份

数据库备份可以分为物理备份 和逻辑备份。物理备份是对数据库操作系统的物理文件(如数据文件、日志文件等)的备份。这种类型的备份适用于在出现问题的时候需要快速恢复的大型重要数据库。物理备份又可以成为冷备份(脱机备份)、热备份(连接备份)和温备份

① 冷备份 (脱机备份)

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

冷备份也被称为脱机备份,它是指在数据库关闭的情况下进行的备份操作,因此也被称为全备份。

② 热备份 (联机备份)

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

热备份也称为在线备份,这种备份在数据库运行(在线)状态下进行,可以提供24x7的服务,不会因为备份而影响业务的正常运行。

③ 温备份

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

温备份介于冷备份和热备份之间。一般来讲,温备份是指数据库在非峰值时间进行的备份,这时数据库可能未关闭但流量较小。和冷备份与热备份相比,温备份的优点是可以供不停机的环境下用作备份,同时也不会像热备份那样对在线服务产生太大影响。

2.2 逻辑备份

从数据库的备份策略角度来看,逻辑备份又可分为完全备份、差异备份和增量备份

① 完全备份

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

用完全备份的文件即可

② 差异备份

每次差异备份,都会备份上一次完全备份之后的数据,可能会出现重复数据。;恢复时,先恢复

完全备份的数据,再恢复差异备份的数据

③ 增量备份

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

备份方式比较

三、常见的备份方法

3.1 物理冷备

备份时数据库处于关闭状态,直接打包数据库文件(tar)

备份速度快,恢复时也是最简单的

3.2 专用备份工具 mysqldump 或 mysqlhotcopy

mysqldump 常用的逻辑备份工具

mysqlhotcopy 仅拥有备份 MyISAM 和 ARCHIVE 表

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

进行增量备份,需要刷新二进制日志

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

3.4 第三方工具备份

免费的MySQL 热备份软件 Percona XtraBackup mysqlbackup

四、MySQL完全备份

  • 是对整个数据库、数据库结构和文件结构的备份
  • 保存的是备份完成时刻的数据库
  • 是差异备份与增量备份的基础
  • MySQL完全备份优缺点

1、优点:

备份与恢复操作简单方便

2、缺点:

数据存在大量的重复

占用大量的备份空间

备份与恢复时间长

五、数据库完全备份分类

5.1 物理冷备份与恢复

关闭MySQL数据库

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

直接替换现有MySQL目录即可

5.2 mysqldump备份与恢复

MySQL自带的备份工具,可方便实现对MySQL的备份

可以将指定的库、表导出为SQL 脚本

使用命令mysq|导入备份的数据

六、实战案列

6.1生产环境中数据库备份方法

6.2 MySQL 增量备份与恢复

6.2.1 MySQL数据库增量恢复

1.一般恢复:

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

2.基于位置恢复

数据库在某一时间点可能既有错误的操作也有正确的操作

可以基于精准的位置跳过错误的操作

发生错误节点之前的一个节点,上一次正确操作的位置点停止

3.基于时间点恢复

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

在错误时间点停止,在下一个正确时间点开始

6.2.2 MySQL 增量备份

二进制日志中需要关注的部分

1、at :开始的位置点

2、end_log_pos:结束的位置

3、时间戳: 210712 11:50:30

4、SQL语句

6.2.3 MySQL增量恢复

1.一般恢复

2.断点恢复

相关推荐
瀚高PG实验室14 分钟前
数据库使用psql及jdbc进行远程连接,不定时自动断开的解决办法
数据库·postgresql·瀚高数据库
SelectDB技术团队40 分钟前
从实时入库到实时可用:Apache Doris 5.0 增量计算场景与实践
数据库·人工智能·开源·agent·实时数仓·apache doris·增量计算
Wang's Blog1 小时前
Java 项目实战: 交友项目 - 发布圈子动态:数据库表和接口文档介绍
java·数据库·交友
paopaokaka_luck1 小时前
智慧电玩店管理系统(空闲机台随机分配、游玩时长概率模拟、积分自动结算、积分兑换闭环、 ECharts经营分析、 腾讯地图选址)
java·人工智能·mysql·echarts·推荐算法
Brilliantwxx1 小时前
【STM32】 独立看门狗 IWDG 深度详解:从硬件结构到工程实战
数据库·stm32·单片机·嵌入式硬件·mongodb
运维小斌1 小时前
麒麟 V10 部署 OceanBase:故障速查与验收清单
linux·数据库·oceanbase·麒麟
LMT流氓兔1 小时前
第五单元——第9课:防止同一次操作重复执行
java·服务器·数据库·算法·ai·langchain
code2cat1 小时前
Java高级篇之JDBC:连接数据库,完成查询、更新与事务
java·开发语言·数据库
*长铗归来*1 小时前
MySQL新学知识(三)MySQL 事件(EVENT)
数据库·mysql
Warolitbos2 小时前
【数据库】SQL进阶15题,窗口函数/索引/事务一页速查
数据库·sql·学习·mysql·面试