【MySQL数据库备份】

目录

一、概述

二、数据备份的重要性

1. 数据保护

2. 灾难恢复

3. 数据完整性

4. 合规性要求

三、造成数据丢失的原因

1. 硬件故障

2. 人为错误

3. 黑客攻击

4. 自然灾害

5. 软件故障

四、备份类型

1.物理与逻辑角度

1.1 概念

1.2 物理备份

1.2.1 冷备份

1.2.2 热备份

1.3 逻辑备份

2.数据库备份策略角度

2.1 完整备份

2.2 增量备份

五、常见备份方法

1.物理备份工具

2.使用专用备份工具

3.通过使用二进制日志增量备份

4.第三方工具备份

5.注意事项

六、备份

1.完整备份

1.1 打包数据库文件备份

1.1.1 位置

1.1.2 备份

1.1.3 还原

1.2 备份工具备份

1.2.1 备份

1.2.1.1 工具

1.2.1.2 对单个库进行完全备份

1.2.1.3 对多个库进行完全备份

1.2.1.4 对所有库进行完全备份

1.2.1.5 对表进行完全备份

1.2.1.6 对表的结构进行备份

1.2.2 还原

1.2.2.1 source

1.2.2.2 mysql

2.增量备份

2.1 简述

2.2 特点

2.3 MySQL二进制日志对备份的意义

2.4 开启二进制日志备份功能

2.5 增量恢复

2.5.1 应用场景

2.5.2 方法

2.5.2.1 一般恢复

2.5.2.2 基于时间点的恢复

2.5.2.3 从某个时间点到日志结尾的恢复

2.5.2.4 从某个时间点到某个时间点的恢复

2.5.2.5 基于位置的恢复


一、概述

  • 数据库备份是指将数据库中的数据、表格、视图、存储过程、触发器等信息备份到另一个地方,以便在数据库丢失或损坏时进行恢复。
  • 数据库备份是数据库管理中必不可少的一项工作,通过备份可以保护数据库中的数据和业务。

二、数据备份的重要性

1. 数据保护

备份数据可以提供保护机制,以防止由于硬件故障、人为错误、恶意攻击等原因导致的数据丢失。

2. 灾难恢复

当发生自然灾害、系统崩溃、黑客攻击等灾难性事件时,备份数据可以用于快速恢复业务和数据,减少停机时间和损失。

3. 数据完整性

有时数据可能会被意外修改、删除或被恶意篡改。备份数据可以用于验证或还原数据的完整性,确保业务的可靠性和准确性。

4. 合规性要求

许多行业和法规对数据备份和保留有严格的要求,例如金融、医疗等领域。备份数据可以帮助机构满足合规性要求。

三、造成数据丢失的原因

1. 硬件故障

磁盘故障、服务器故障等硬件故障可能导致数据丢失。

2. 人为错误

误删除、误格式化、错误操作等人为因素可能导致数据不可恢复。

3. 黑客攻击

恶意攻击者可能通过病毒、勒索软件、数据泄露等方式导致数据丢失或遭到破坏。

4. 自然灾害

火灾、水灾、地震等自然灾害可能导致数据中心设备损坏或无法访问。

5. 软件故障

操作系统崩溃、应用程序故障等软件故障可能导致数据丢失。

四、备份类型

1.物理与逻辑角度

1.1 概念

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

1.2 物理备份

1.2.1 冷备份

是在关闭数据库的时候进行的

1.2.2 热备份

数据库处于运行状态,这种备份方法依赖于数据库的日志文件

1.3 逻辑备份

对数据库逻辑组件(如表等数据库对象)的备份,表时为逻辑数据库结构(create database、 create table等语句)和内容(insert语句或分割文本文件)的信息

2.数据库备份策略角度

2.1 完整备份

完整备份指的是备份整个数据库的所有信息,包括数据库文件中所有的数据、表、视图、存储过程、触发器等。一般来说,完整备份是备份最全面、可靠的方式,但备份文件体积较大,备份时间也相对较长。

2.2 增量备份

增量备份指的是在完整备份的基础上,每隔一定时间备份新增的数据或修改的数据。这种备份方式可以节省备份时间和备份文件的空间,但需要配合特定软件或命令进行

五、常见备份方法

1.物理备份工具

物理冷备份时需要在数据库处于关闭状态下,能够较好的保证数据库的完整性。物理冷备份以用于非核心业务,这类业务都允许中断,物理冷备份的特点就是速度快,恢复时也是最为简单的,通过直接打包数据库文件夹(/usr/local/mysql/data)来实现备份。

2.使用专用备份工具

mysqldump
mysqlhotcopy

3.通过使用二进制日志增量备份

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

4.第三方工具备份

Percona XtraBackup是一个免费的MySQL热备份软件,支持在线备份innodb和XtraDB,也可以支持MySQL表备份。

5.注意事项

  • 定期备份,指定备份计划,严格遵守
  • 除了完全备份之外,开启binlog日志功能很重要
  • 使用统一的、容易理解的备份名称,推荐使用库名或者表名加上时间的命名规则

六、备份

1.完整备份

1.1 打包数据库文件备份

1.1.1 位置

  • 源码包的位置/usr/local/mysql/data/
  • rpm包的位置/var/lib/mysql

1.1.2 备份

  • 在数据库中创建数据表,并写入数据
  • 停止数据库服务
  • 创建备份目录
  • 按照特定格式对数据库目录进行备份

            tar  czf  mysql_all-$(date  +%F).tar.gz  /var/lib/mysql/*

1.1.3 还原

  • 创建还原目录
  • 模拟元数据丢失
  • 将解压之后的数据还原值原目录
  • 登录查看

1.2 备份工具备份

1.2.1 备份

1.2.1.1 工具

mysqldump

1.2.1.2 对单个库进行完全备份

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

1.2.1.3 对多个库进行完全备份

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

1.2.1.4 对所有库进行完全备份

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

1.2.1.5 对表进行完全备份

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

1.2.1.6 对表的结构进行备份

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

1.2.2 还原

1.2.2.1 source

登录mysql 数据库执行source  备份sql脚本路径

1.2.2.2 mysql

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

:备份文件后缀名是.sql

2.增量备份

2.1 简述

  • 使用完全备份时,备份与恢复的时间过长
  • 增量备份就是备份自上一次备份之后增加的或改变的文件内容。

2.2 特点

  • 没有重复数据,备份量不大,时间短
  • 恢复麻烦,需要上次完全备份及完全备份之后所有的增量备份才能恢复,而且要对所有增量备份进行逐个反推恢复。
  • MySQL没有提供直接的增量备份办法,可以通过MySQL提供的二进制日志(binary logs(binlog))间接实现增量备份。

2.3 MySQL二进制日志对备份的意义

  • 二进制日志保存了所有更新或者可能更新数据库的操作。
  • 二进制日志在启动MySQL服务器后开始记录,并在文件达到max_binlog_size所设置的大小或者接收到flush logs命令后重新创建新的日志文件。

2.4 开启二进制日志备份功能

  • MySQL的配置文件的[mysqld]项中加入 log-bin=文件存放路径/文件前缀,如 log-bin=mysql-bin,然后重启mysqld服务。默认此配置存在。
  • 在首行添加 server-id =1
  • 使用mysqld --log-bin=文件存放路径/文件前缀 重新启动mysqld服务每周选择服务器负载较轻的时间段,或者用户访问较少的时间段进行备份。

 

2.5 日志回滚

mysqladmin -u用户 -p[密码] flush-logs

2.6 增量恢复

2.6.1 应用场景

  • 人为的SQL语句破坏了数据库
  • 在进行下一次全备之前发生系统故障导致数据库丢失
  • 在主从架构中,主库数据发生了故障,保证从库数据一致性

2.6.2 方法

2.6.2.1 一般恢复
  • 备份的二进制日志内容全部恢复
  • 格式: mysqldbinlog [--no-defaults] 增量备份文件 | mysql -u用户名 -p密码
2.6.2.2 基于时间点的恢复
  • 便于跳过某个发生错误的时间点实现数据恢复
  • 格式

从日志开头截止到某个时间点的恢复:
mysqlbinlog [--no-defaults] --stop-datetime=’年-月-日 小时:分钟:秒‘ 二进制日志 | mysql -u用户名 -p密码

2.6.2.3 从某个时间点到日志结尾的恢复

mysqlbinlog [--no-defaults] --start-datetime=’年-月-日 小时:分钟:秒‘ 二进制日志 | mysql -u用户名 -p密码

2.6.2.4 从某个时间点到某个时间点的恢复

mysqlbinlog [--no-defaults] --start-datetime=’年-月-日 小时:分钟:秒‘ --stop-datetime=’年-月-日 小时:分钟:秒‘ 二进制日志 | mysql -u用户名 -p密码

2.6.2.5 基于位置的恢复
  • 可能在同一时间点既有错误的操作也有正确的操作,基于位置进行恢复更加准确
  • mysqlbinlog --stop-position=‘操作 id‘ 二进制日志 | mysql -u用户名 -p密码
  • mysqlbinlog --start-position=‘操作 id‘ 二进制日志 | mysql -u用户名 -p密码

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

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

相关文章

Flutter:滑动面板

前言 无意中发现了这个库&#xff0c;发现现在很多app中都有类似的功能。以手机b站为例&#xff0c;当你在看视频时&#xff0c;点击评论&#xff0c;视频会向上偏移&#xff0c;下方划出评论界面。 sliding_up_panel SlidingUpPanel是一个Flutter插件&#xff0c;用于创建滑…

Stable Diffusion 硬核生存指南:WebUI 中的 VAE

本篇文章聊聊 Stable Diffusion 生态中呼声最高、也是最复杂的开源模型管理图形界面 “stable-diffusion-webui” 中和 VAE 相关的事情。 写在前面 Stable Diffusion 生态中有一个很重要的项目&#xff0c;它对于 SD 生态繁荣做出的贡献可以说居功至伟&#xff0c;自去年八月…

13. Mybatis-Plus

目录 1. MyBatis-Plus 简介 2. 新建项目 3. 添加依赖 4. 配置数据库 5. 编码 1. MyBatis-Plus 简介 通过官网&#xff1a;MyBatis-Plus MyBatis-Plus (opens new window)&#xff08;简称 MP&#xff09;是一个 MyBatis (opens new window)的增强工具&#xff0c;在 MyB…

W2NER详解

论文&#xff1a;https://arxiv.org/pdf/2112.10070.pdf 代码&#xff1a;https://github.com/ljynlp/W2NER 文章目录 W2NER介绍模型架构解码 源码介绍数据输入格式模型代码 参考资料 W2NER 介绍 W2NER模型&#xff0c;将NER任务转化预测word-word&#xff08;备注&#xff…

微信小程序生成带参数的二维码base64转png显示

getQRCode() {var that this;wx.request({url: http://localhost:8080/getQRCode?ID 13,header: {content-type: application/json},method: POST,responseType: arraybuffer,//将原本按文本解析修改为arraybuffersuccess(res) {that.setData({getQRCode: wx.arrayBufferToB…

string【2】模拟实现string类

string模拟实现 引言&#xff08;实现概述&#xff09;string类方法实现默认成员函数构造函数拷贝构造赋值运算符重载析构函数 迭代器beginend 容量size、capacity、emptyreserveresize 访问元素operator[] 修改insert插入字符插入字符串 appendpush_backoperatoreraseclearswa…

uni-app在小米手机上运行【步骤细节】

注意细节重点&#xff1a; 1.手机使用数据线与电脑连接&#xff0c;手机连接模式必须是传输文件模式 2.手机必须打开开发者模式 3.打开开发者模式后&#xff0c;仔细浏览并调整USB调试权限&#xff0c;重点打开USB是否允许安装按钮&#xff01;&#xff01;&#xff01; 操作步…

RWEQ模型参量提取

土壤风蚀是一个全球性的环境问题。中国是世界上受土壤风蚀危害最严重的国家之一&#xff0c;土壤风蚀是中国干旱、半干旱及部分湿润地区土地荒漠化的首要过程。中国风蚀荒漠化面积达160.74104km2&#xff0c;占国土总面积的16.7%&#xff0c;严重影响这些地区的资源开发和社会经…

windows环境下,安装elasticsearch

目录 前言准备安装 jdk 安装nodejsElasticSearch下载ElasticSearch-head 下载 安装ElasticSearch安装ElasticSearch-head插件设置用户名密码访问ElasticSearch 默认用户名和密码参考 前言 win10elasticsearch 8.9.0 准备 安装 jdk ElasticSearch 是基于lucence开发的&#…

MATLAB | 如何绘制这样的描边散点图?

part.-1 前前言 最近略忙可能更新的内容会比较简单&#xff0c;见谅哇&#xff0c;今日更新内容&#xff1a; part.0 前言 看到gzhBYtools科研笔记(推荐大家可以去瞅瞅&#xff0c;有很多有意思的图形的R语言复现&#xff01;&#xff01;)做了这样一张图&#xff1a; 感觉很…

docker简单web管理docker.io/uifd/ui-for-docker

要先pull这个镜像docker.io/uifd/ui-for-docker 这个软件默认只能使用9000端口&#xff0c;别的不行&#xff0c;因为作者在镜像制作时已加入这一层 刚下下来镜像可以通过docker history docker.io/uifd/ui-for-docker 查看到这个端口已被 设置 如果在没有设置br0网关时&…

视频标注是什么?和图像数据标注的区别?

视频数据标注是对视频剪辑进行标注的过程。进行标注后的视频数据将作为训练数据集用于训练深度学习和机器学习模型。这些预先训练的神经网络之后会被用于计算机视觉领域。 自动化视频标注对训练AI模型有哪些优势 与图像数据标注类似&#xff0c;视频标注是教计算机识别对象…

【解惑笔记】树莓派+OpenCV+YOLOv5目标检测(Pytorch框架)

【学习资料】 子豪兄的零基础树莓派教程https://github.com/TommyZihao/ZihaoTutorialOfRaspberryPi/blob/master/%E7%AC%AC2%E8%AE%B2%EF%BC%9A%E6%A0%91%E8%8E%93%E6%B4%BE%E6%96%B0%E6%89%8B%E6%97%A0%E7%97%9B%E5%BC%80%E6%9C%BA%E6%8C%87%E5%8D%97.md#%E7%83%A7%E5%BD%95…

Flink - souce算子

水善利万物而不争&#xff0c;处众人之所恶&#xff0c;故几于道&#x1f4a6; 目录 1. 从Java的集合中读取数据 2. 从本地文件中读取数据 3. 从HDFS中读取数据 4. 从Socket中读取数据 5. 从Kafka中读取数据 6. 自定义Source 官方文档 - Flink1.13 1. 从Java的集合中读取数据 …

Vue 3:玩一下web前端技术(一)

前言 本章内容为VUE前端环境搭建与相关前端技术讨论。 下一篇文章地址&#xff1a; Vue 3&#xff1a;玩一下web前端技术&#xff08;二&#xff09;_Lion King的博客-CSDN博客 一、环境搭建 1. 安装Node.js Vue是基于Node.js的&#xff0c;因此首先需要安装Node.js。官网…

缓存数据同步技术Canal

说明&#xff1a;缓存数据同步&#xff0c;以Redis为例&#xff0c;如何保证从Redis中取出来的数据与MySQL中的一致&#xff1f;在微服务架构下&#xff0c;通常可以用以下两种技术来实现&#xff1a; MQ&#xff1a;在修改数据的同时&#xff0c;发送一个消息修改缓存&#x…

Go Ethereum源码学习笔记 001 Geth Start

Go Ethereum源码学习笔记 前言[Chapter_001] 万物的起点: Geth Start什么是 geth&#xff1f;go-ethereum Codebase 结构 Geth Start前奏: Geth Consolegeth 节点是如何启动的NodeNode的关闭 Ethereum Backend附录 前言 首先读者需要具备Go语言基础&#xff0c;至少要通关菜鸟…

【wsl-windows子系统】安装、启用、禁用以及同时支持docker-desktop和vmware方案

如果你要用docker桌面版&#xff0c;很可能会用到wsl&#xff0c;如果没配置好&#xff0c;很可能wsl镜像会占用C盘很多空间。 前提用管理员身份执行 wsl-windows子系统安装和启用 pushd "%~dp0" dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper…

06. 管理Docker容器数据

目录 1、前言 2、Docker实现数据管理的方式 2.1、数据卷&#xff08;Data Volumes&#xff09; 2.2、数据卷容器&#xff08;Data Volume Containers&#xff09; 3、简单示例 3.1、数据卷示例 3.2、数据卷容器示例 1、前言 在生产环境中使用 Docker&#xff0c;一方面…

211. 添加与搜索单词 - 数据结构设计---------------字典树

211. 添加与搜索单词 - 数据结构设计 原题链接&#xff1a;完成情况&#xff1a;解题思路&#xff1a;参考代码&#xff1a; 原题链接&#xff1a; 211. 添加与搜索单词 - 数据结构设计 https://leetcode.cn/problems/design-add-and-search-words-data-structure/descriptio…