【MySQL数据库备份】

news2024/11/14 3:45:11

目录

一、概述

二、数据备份的重要性

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.coloradmin.cn/o/798701.html

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

相关文章

php-golang-jsonrpc2.0 rpc-codec/jsonrpc2和tivoka/tivoka实践

golang代码&#xff1a; package main import ( "context" "net" "net/rpc" "github.com/powerman/rpc-codec/jsonrpc2" ) type App struct{} type Res struct { Code int json:"code" Msg string json:"msg&quo…

kafka集群

目录 broker ZooKeeper consumer group&#xff08;消费者组&#xff09; 分区&#xff08;Partitions&#xff09; 副本&#xff08;Replicas&#xff09; 主题&#xff08;Topic&#xff09; 偏移量&#xff08;offset&#xff09; broker 一个kafka进程就是一个broker…

C++ 名字空间namespace

在C中支持三种域&#xff1a;局部域、名字空间域和类域。 名字空间域是随标准C而引入的。它相当于一个更加灵活的文件域&#xff08;全局域&#xff09;&#xff0c;可以用花括号把文件的一部分括起来&#xff0c;并以关键字namespace开头给它起一个名字&#xff1a; namespac…

多线程与高并发(17)——多线程总结(很全)

总结并复习了一下之前写的多线程的知识&#xff0c;见下图。 不够清楚可私信或者processOn。

983. 最低票价;1911. 最大子序列交替和;894. 所有可能的真二叉树

983. 最低票价 核心思想&#xff1a;对于365天中的一天&#xff0c;如果它不在旅行的日子&#xff0c;我们在这一天可以不花钱&#xff1b;如果它在旅行的日期&#xff0c;那么要么这一天花钱&#xff0c;要么在前面花钱的时间范围内。所以想到了动态规划&#xff0c;对于dp[x…

深入篇【C++】【容器适配器】:(stack)(queue)(priority_queue)模拟实现(详细剖析底层实现原理)

深入篇【C】【容器适配器】: (stack&#xff09;&& (queue&#xff09;&& (priority_queue&#xff09;模拟实现(详细剖析底层实现原理&#xff09; Ⅰ.容器适配器Ⅱ.认识dequeⅢ.stack模拟实现Ⅳ.queue模拟实现Ⅴ.priority_queue模拟实现1.priority_queue()2.…

深度学习入门(一):神经网络基础

一、深度学习概念 1、定义 通过训练多层网络结构对位置数据进行分类或回归&#xff0c;深度学习解决特征工程问题。 2、深度学习应用 图像处理语言识别自然语言处理 在移动端不太好&#xff0c;计算量太大了&#xff0c;速度可能会慢 eg.医学应用、自动上色 3、例子 使用…

ARM将常数加载到寄存器方法之LDR伪指令

一、是什么&#xff1f; LDR Rd,const伪指令可在单个指令中构造任何32位数字常数,使用伪指令可以生成超过MOV和MVN指令 允许范围的常数. 实现原理: (1)如果可以用MOV或MVN指令构造该常数,则汇编程序会生成适当的指令 (2)如果不能用MOV或MVN指令构造该常数,则汇编程序会执行下列…

C++中一些常见的运算符重载代码模板

可重载和不可重载的运算符 C中可重载的运算符如下&#xff1a; 而不可重载的运算符如下&#xff1a; 运算符重载的代码模板 下面是代码中形参的统一解释&#xff1a; lhs: 左操作数&#xff0c;通常为运算符左侧的对象或值。 rhs: 右操作数&#xff0c;通常为运算符右侧的对象…

性能测试、负载测试、压力测试-之间的差异

性能测试、负载测试、压力测试-之间的差异 目录 1、什么是性能测试2、什么是负载测试3、什么是压力测试4、性能测试 vs 负载测试 vs 压力测试5、为什么要进行性能测试6、为什么要进行负载测试7、为什么要进行压力测试8、什么时候使用性能测试9、什么时候使用负载测试10、什么时…

【数据结构】实验七:字符串

实验七 字符串实验报告 一、实验目的与要求 1&#xff09;巩固对串的理解&#xff1b; 2&#xff09;掌握串的基本操作实现&#xff1b; 3&#xff09;掌握 BF 和 KMP 算法思想。 二、实验内容 1. 给定一个字符串ababcabcdabcde和一个子串abcd,查找字串是否在主串中出现。…

Ansible安装部署与应用

文章目录 一、ansible简介二、ansible 环境安装部署三、ansible 命令行模块3.1 command 模块3.2 shell 模块3.3 cron 模块3.4 user 模块3.5 group 模块3.6 copy 模块3.7 file 模块3.8 hostname 模块3.9 ping 模块3.10 yum 模块3.11 service/systemd 模块3.12 script 模块3.13 m…

可穿戴设备的发展

目录 1.什么是可穿戴设备 2.可穿戴设备的发展过程 3.可穿戴设备带来的福利 4.可穿戴设备未来的发展趋势 1.什么是可穿戴设备 可穿戴设备是指可以佩戴在身体上并与用户进行交互的电子设备。它们通常以小型、便携和智能化的形式呈现&#xff0c;与用户的服装、配饰或身体部位相…

nplayer读取电脑共享文件

Step 1&#xff1a; 在电脑中开启共享。 ▼想要访问电脑中的文件&#xff0c;电脑上需要有一个含密码的账户。 所以没有密码的首先得去控制面板为当前用户添加一个密码。 ▼下面添加共享文件夹。比如我们想共享music文件夹&#xff0c;则右键该文件夹>属性>共享>高级…

ChatGPT安卓版正式发布,附安装包,但有款手机无法使用

ChatGPT安卓版如约而至&#xff0c;OpenAI正式宣布该应用已在谷歌应用商店上架&#xff0c;用户可以免费下载&#xff0c;对话不限次数。 但是安卓版ChatGPT目前仅在美国、印度、孟加拉国和巴西提供下载&#xff0c;下周将会推广至更多国家。 网页端下载链接&#xff1a; http…

POM+数据驱动+pytest

POM数据驱动pytest 数据驱动&#xff1a;将测试过程中所有测试数据&#xff0c;进行提取、保存以及管理&#xff0c;提升框架的可维护性&#xff0c;一般情况下会使用到的数据类型&#xff1a;Excel、yaml、json、py......&#xff0c;如&#xff1a;登录场景&#xff0c;需要…

《长沙市“1+2+N”先进制造业集群提质升级研究》 课题调研组莅临麒麟信安展开专题调研

为提质升级长沙“12N”先进制造业产业集群&#xff0c;构建与现代产业体系相适应的产业生态&#xff0c;7月11日下午&#xff0c;由长沙市制造业发展促进中心党委书记沈群等市制造业发展促进中心相关领导以及中南大学王昶、卢锋华、朱思文等教授和多位博士、硕士组成的《长沙市…

视频剪辑矩阵分发系统Unable to load FFProbe报错技术处理?

问题一 报错处理 对于视频剪辑矩阵分发系统中出现的“Unable to load FFProbe”报错问题&#xff0c;可以采取以下技术处理措施进行解决。 1.检查系统中是否正确安装了FFProbe工具&#xff0c;并确保其路径正确配置。 2.检查系统环境变量是否正确设置&#xff0c;包括FFPr…

Rete算法相关内容与实例,搞懂Rete算法这一篇文章就够了,有我自己的理解,也有经典的例子详解,非常详细

Rete算法是一个规则匹配算法,是一个高效的规则匹配算法。Drools从3.X版本到7.X版本一直都是基于Rete算法实现规则匹配的,为了进一步了解Drools,所以就研究一下Rete算法。 Rete算法是由美国工程师Charles L. Forgy在1979年提出的。 该算法的设计的目的就是用于高效地处理规…

【设计模式——学习笔记】23种设计模式——装饰器模式Decorator(原理讲解+应用场景介绍+案例介绍+Java代码实现)

生活案例 咖啡厅 咖啡定制案例 在咖啡厅中&#xff0c;有多种不同类型的咖啡&#xff0c;客户在预定了咖啡之后&#xff0c;还可以选择添加不同的调料来调整咖啡的口味&#xff0c;当客户点了咖啡添加了不同的调料&#xff0c;咖啡的价格需要做出相应的改变。 要求&#xff…