如何备份与恢复MySQL数据库数据

目录

数据备份的重要性

造成数据丢失的原因

备份的主要目的

日志

数据库备份类型

逻辑备份

完全备份

差异备份

增份(增量备份)

备份方式比较

三、常见的备份方法

物理冷备

专用备份工具mysqldump 或mysqlhotcopy

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

第三方工具备份

四、MySQL完全备份

五、数据库完全备份分类

物理冷备份与恢复

mysqldump备份与恢复

小结

mysgl 备份与恢复备份类型

1、物理备份 、逻辑备份

2、逻辑备份


数据备份的重要性

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

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

造成数据丢失的原因

程序错误

人为操作错误

运算错误

磁盘故障

灾难(如火灾、地震)和盗窃

备份的主要目的

是灾难恢复,备份还可以测试应用、回滚数据修改查询历史数据、审计等。 而备份、恢复中,日志起到了很重要的作用

日志

MySQL 的日志默认保存位置为 /usr/local/mysgl/data##

配置文件 vim /etc/my.cnf [mysald]

错误日志,用来记录当MySQI启动、停止或运行时发生的错误信息默认已开启

log-error=/usr/local/mysql/data/mysql error.log#指定日志的保存位置和文件名

数据库备份类型

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

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

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

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

逻辑备份

逻辑备份是对数据库逻辑组件的备份.表示为逻辑数据库结构

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

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

完全备份

每次对数据进行完整备份,即对整个数据库、数据库结构和文件结构的备份,保存的是备份完成时刻的数据库,是差异备份与增量备份的基础完全备份的备份与恢复操作都非常简单方便,但是数据存在大量的重复并且会占用大量的磁盘空间,备份的时间也很长

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

差异备份

那些自从上次完全备份之后被修改过的所有文件,备份的时间节点是从上次完整备份起,备份数据量会越来越大。恢复数据时只需要恢复上次的完全备份与最佳的一次差异备份

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

 

增份(增量备份)

只有那些在上次完全各份或者增量备份后被修改的文件才会被备份以上次完整各份或上次增量备份的时间为时间点,仅备份期间内的数据变化,因而备份的教据量小,占用空问小,备份速度快。但恢复时,需要从上一次的完整备份开始到最后一次增量备份之间的所有增量依次恢复,如中间某次的备份数据损坏,将导致数据的丢失每次增量备份都是在备份在上一次完成全备份

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

 

 

备份方式比较

逻辑备份的策略(增、全、差异) 如何选择逻辑备份策略 (频率) 合理值区间 周一次的全备,全备的时间需要在不提供业务的时间区间进行 PM 10点AM 5:00之间进行全备 增量: 3天/2天/1天一次增量备份 差异:选择特定的场受进行备份 一个处理 (NFS) 提供额外空间给与mysal 服务器用

三、常见的备份方法

物理冷备

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

专用备份工具mysqldump 或mysqlhotcopy

mysqldump 常用的逻辑备份工具 mysglhotcopy 仅拥有备份 MySAM 和 ARCHIVE 表

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

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

第三方工具备份

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

四、MySQL完全备份

是对整个数据库、数据库结构和文件结构的备份

保存的是备份完成时刻的数据库

是差异备份与增呈备份的基础

MySQL完全备份优缺点

五、数据库完全备份分类

物理冷备份与恢复

关闭MysQL数据库 使用tar命令直接打包数据库文件来直接替换现有MySQL目录即可

mysqldump备份与恢复

MySQL自带的备份工具,可方便实现对MySQL的备份可以将指定的库、表导出为SQL 脚本使用命令mysa|导入备份的数据

小结

mysgl 备份与恢复备份类型

1、物理备份 、逻辑备份

物理备份: 冷备、温备、热备 1) 冷备: tar,需要关闭Mysl服务,或者确保服务在进行tar备份时,没有客户端操作 2)温备: mysqldump,这个是mysg白带的备份工具,特性表备份,每备份一张表时,会先drop删除,然后重新create创建表结构,然后再锁表(仅锁定写的操作,但可读),进行insert语句的备份,备份完成之后,进行解锁 (unlock) ,然后会备份下一个 3)热备: xtrabackup mysglhotcopy 等热备工具(第三方),在mysgl正常运行时,进行备份

2、逻辑备份

1) 全量备份: tar mysgldump -u -p --all-databses 2)增量备份: 主要是使用bin-og 二进制日志来完成备份,同时每个增量备份的文件,可以通过mysgladmin -upflush-logs来刷新生成新的二进制增备的日志文件,同时可以结合crontab完成自动刷新 Ps:再进行基于二进制文件的增备恢复时,有必要的话,需要先恢复完备的数据,再去 一次恢复增备的数据,知道恢复至我们需要恢复的数据位置 3) 差异备份: 需要选择保存日志的格式ROW (基于行)的备份方式日志保存的类型D 混合模式 mixed (建议使用) 2 基于行ROWS 基于sgl (默认)

 

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

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

相关文章

第5讲-搭建kubernetes集群

一、minikube ​ minikube 是一个工具, 能让你在本地运行 Kubernetes。 minikube 在你的个人计算机(包括 Windows、macOS 和 Linux PC)上运行一个一体化(all-in-one)或多节点的本地 Kubernetes 集群,以便你…

所有docker命令无效,解决办法

目录 ■前言 今天使用docker时,所有命令无效 ■解决办法如下 1.停止docker服务 2.查看状态 3.删除之前的docker相关的文件 4.再次查看状态 5.使用相关命令 (好用了) 6.重新下载镜像 ■前言 今天使用docker时,所有命令无…

DES加密的基本常识和封装类

DES加密的基本常识和封装类 DES(Data Encryption Standard)是一种对称加密算法,它是在1977年由IBM所提出,并在1981年被美国国家标准局(NIST)确定为数据加密标准。DES使用相同的密钥对数据进行加密和解密&a…

Python + Playwright 无头浏览器Chrome找不到元素

用Python Playwright调试时,发现不用无头浏览器(即headlessFalse)代码能够运行成功,但是一用无头浏览器时(即headlessTrue)就会报错,提示找不到元素。换成Firefox浏览器又不会有这个问题&#…

redhat官网下载7.9版本iso

redhat官方地址 https://developers.redhat.com/products/rhel/download 下载前会让你先登录,如果没有账号就需要先去注册账号哟。

《向量数据库指南》:向量数据库Pinecone备份索引教程

目录 ⚠️警告 使用集合创建备份 检查集合的状态 列出您的集合 删除一个集合 本文档描述如何使用集合备份索引。 要了解如何从集合创建索引,请参阅管理索引。 ⚠️警告 本文档使用集合。这是一个公开预览功能。在使用此功能生产负载之前,请进行充分测试。 使用集合…

利用OpenMP优化Opencv图像处理

当使用OpenMP进行图像处理时&#xff0c;可以通过线程ID来控制每个线程处理的行数位置&#xff0c;实现并行处理图像的不同部分。以下是一个示例代码&#xff0c;展示了如何使用OpenMP对图像进行并行处理&#xff1a; #include <iostream> #include <opencv2/opencv.…

webpack xxx is not a constructor

环境 webpack5.88.2 vue-router 按需引入 原因 模块循环引用导致 有A B C三个模块 A B模块import C 中导出的class c又依赖B 中Class 的方法 B 又依赖C中的class 此时会导致import 的 C 为undefined

【C语言】9-三大结构之选择结构-3

1. 综合举例 1.1 例1 编写一个程序完成输入一个 1-7 中的数字,输出对应的是星期几 这里推荐使用 Visio 或者类似的软件来画一个流程图。在进行程序设计时,尤其是大型项目时,软件流程图可以帮助我们很好的分析程序的结构以及结构需求,跟着流程图来写程序可以让写出来的程序…

【Matlab】基于长短期记忆网络的数据分类预测(Excel可直接替换数据)

【Matlab】基于长短期记忆网络的数据分类预测(Excel可直接替换数据) 1.模型原理2.数学公式3.文件结构4.Excel数据5.分块代码6.完整代码7.运行结果1.模型原理 “基于长短期记忆网络的数据分类预测”是一种利用长短期记忆网络(Long Short-Term Memory, LSTM)进行数据分类任务…

【C++】多态原理剖析,Visual Studio开发人员工具使用查看类结构cl /d1 reportSingleClassLayout

author&#xff1a;&Carlton tag&#xff1a;C topic&#xff1a;【C】多态原理剖析&#xff0c;Visual Studio开发人员工具使用查看类结构cl /d1 reportSingleClassLayout website:黑马程序员C tool&#xff1a;Visual Studio 2019 date&#xff1a;2023年7月24日 目…

【每日一个知识点二】原型链

我都是想到啥写啥&#xff0c;丝毫没有规律。前面聊到箭头函数没有原型&#xff0c;就想到了再整理一篇原型链的。 原型 原型是JavaScript中对象的一个属性&#xff0c;它指向另一个对象&#xff0c;用于实现继承关系。每个对象都有一个原型属性__proto__&#xff0c;它指向它…

hypery 十一、命令行

教程&#xff1a;Hyperf symfony/console composer地址&#xff1a; symfony/console - Packagist github地址&#xff1a;GitHub - symfony/console: Eases the creation of beautiful and testable command line interfaces hyperf/command github地址:https://github.com/…

Ubuntu18.04未安装Qt报qt.qpa.plugin could not load the Qt platform plugin xcb问题的解决方法

在Ubuntu 18.04开发机上安装了Qt 5.14.2&#xff0c;当将其可执行程序拷贝到另一台未安装Qt的Ubuntu 18.04上报错&#xff1a;拷贝可执行程序前&#xff0c;使用ldd将此执行程序依赖的动态库也一起拷贝过去&#xff0c;包括Qt5.14.2/5.14.2/gcc_64/plugins目录系的platforms目录…

【UE5 多人联机教程】05-生成玩家

步骤 1. 新建一个游戏模式基础 命名为“GM_Lobby” 2. 新建一个玩家控制器&#xff0c;命名为“PC_Lobby” 3. 新建一个游戏状态基础 命名为“GS_Lobby” 重新设置游戏模式重载、玩家控制器类、游戏状态类 4. 新建一个控件蓝图&#xff0c;命名为“UMG_Lobby” 打开“UMG_Lobb…

达闼面试(部分)(未完全解析)

grpc怎么解决负载均衡问题? Answer by newBing : gRPC提供了多种负载均衡策略&#xff0c;包括轮询、随机、最少连接数等。gRPC客户端可以使用这些策略来选择要连接的服务器。 k8s环境下部署grpc的几种方案 : 在k8s环境中&#xff0c;可以选择headless service&#xff0c;或者…

通过wait和notify来协调线程执行顺序

为什么要协调线程执行顺序 wait和notify是多线程编程中的重要工具&#xff0c;多线程调度是随机的&#xff0c;很多时候希望多个线程能够按照我们规定的顺序来执行&#xff0c;完成线程之间的配合工作 注意事项 1.要想让notify能够顺利唤醒wait&#xff0c;就需要确保wait和no…

PostgreSQL-视图-03-查询对象依赖关系视图-dba_dependencies

PostgreSQL查询对象依赖关系视图 -- PostgreSQL查询对象依赖关系视图drop view if exists tzq.dba_dependencies; create view tzq.dba_dependencies as with source_obj as (select sp.oid,sp.proname,unnest(string_to_array(regexp_replace(regexp_replace(lower(sp.prosrc…

Spring Alibaba Sentinel实现集群限流demo

1.背景 1.什么是单机限流&#xff1f; 小伙伴们或许遇到过下图这样的限流配置 又或者是这样的Nacos动态配置限流规则&#xff1a; 以上这些是什么限流&#xff1f;没错&#xff0c;就是单机限流&#xff0c;那么单机限流有什么弊端呢&#xff1f; 假设我们集群部署3台机器&a…

Vue过度与动画

Test.vue:元素外面包一层transition&#xff0c;展示的时候就默认调用style里面的v-enter-action和v-leave-action执行进入和退出效果&#xff0c;appear上来默认展示动画效果 <template><div><button click"isShow !isShow">显示/隐藏</butto…