数据库—数据库备份(三十四)

news2024/9/22 17:25:51

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

前言

一、概述

二、数据备份的重要性

三、造成数据丢失的原因

四、备份类型

4.1物理与逻辑角度

4.2数据库备份策略角度

五、常见的备份方法

5.1 物理备份

5.2 使用专用备份工具

5.3 通过启用二进制日志增量备份

5.4 第三方工具备份

六、备份

6.1 完整备份

6.1.1 打包数据库文件备份

 6.1.2 备份工具备份

6.2 增量备份

MySQL企业备份案例

 总结



前言

       数据库备份是指将数据库的数据和结构复制到其他存储介质或位置的过程。数据库备份是数据库管理的重要任务,它可以提供数据的保护和恢复功能,并在发生数据丢失、系统故障、灾害等情况下可以迅速还原数据库。


提示:以下是本篇文章正文内容,下面案例可供参考

一、概述

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

二、数据备份的重要性

备份的主要目的是灾难恢复,备份还可以测试应用,回滚数据修改,查询历史数据,审计等。

三、造成数据丢失的原因

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

四、备份类型

4.1物理与逻辑角度

物理备份对数据库操作系统的物理文件(如数据文件、日志文件等)的备份
 冷备份 是在关闭数据库的时候进行的
 热备份 数据库处于运行状态,这种备份方法依赖于数据库的日志文件
 逻辑备份对数据库逻辑组件(如表等数据库对象)的备份,表时为逻辑数据库结构(create database、 create table等语句)和内容(insert语句或分割文本文件)的信息

4.2数据库备份策略角度

 完整备份
        完整备份指的是备份整个数据库的所有信息,包括数据库文件中所有的数据、表、视图、存储过程、触发器等。一般来说,完整备份是备份最全面、可靠的方式,但备份文件体积较大,备份时间也相对较长
 增量备份 增量备份指的是在完整备份的基础上,每隔一定时间备份新增的数据或修改的数据。这种备份方式可以节省备份时间和备份文件的空间,但需要配合特定软件或命令进行

五、常见的备份方法

5.1 物理备份

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

5.2 使用专用备份工具

        mysqldump
        mysqlhotcopy

5.3 通过启用二进制日志增量备份

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

5.4 第三方工具备份

         Percona XtraBackup是一个免费的MySQL热备份软件,支持在线备份innodb和XtraDB,也可以支持MySQL表备份。
    注意事项
        定期备份,指定备份计划,严格遵守
        除了完全备份之外,开启binlog日志功能很重要
        使用统一的、容易理解的备份名称,推荐使用库名或者表名加上时间的命名规则

六、备份

6.1 完整备份

6.1.1 打包数据库文件备份

    位置
        源码包的位置/usr/local/mysql/data/
        rpm包的位置/var/lib/mysql
    备份
        在数据库中创建数据表,并写入数据
        停止数据库服务
        创建备份目录
        按照特定格式对数据库目录进行备份
            tar  czf  mysql_all-$(date  +%F).tar.gz  /var/lib/mysql/*
    还原
        创建还原目录
        模拟元数据丢失
        将解压之后的数据还原至原目录
        登录查看

创建数据表并写入数据 

 停止数据库服务

对数据库目录进行压缩归档备份

 还原:创建目录

 移动到/bak 

 将包解压到/restore

 还原到原目录

 启动服务,查看

 6.1.2 备份工具备份

 1. 备份
        工具
            mysqldump
        对单个库进行完全备份
            mysqldump -u用户名 -p[密码] [选项] --databases [数据库名] > /备份路径/备份文件名


        对多个库进行完全备份
            mysqldump -u用户名 -p[密码] [选项] --databases 库名1 [库名2]…… > /备份路径/备份文件名


        对所有库进行完全备份
            mysqldump -u用户名 -p[密码] [选项] --opt --all-databases > /备份路径/备份文件名


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


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


   2. 还原
        工具
            source
                登录mysql 数据库执行source  备份sql脚本路径
            mysql
                mysql -u用户名 -p[密码] < 库备份脚本的路径
                mysql -u用户名 -p[密码] 库名 < 表备份脚本的路径

 进入数据库,删除库test

 还原

 进入数据库,删除表massage

 还原

6.2 增量备份

    使用完全备份时,备份与恢复的时间过长
    增量备份就是备份自上一次备份之后增加的或改变的文件内容
    特点 :
        没有重复数据,备份量不大,时间短
        恢复麻烦,需要上次完全备份及完全备份之后所有的增量备份才能恢复,而且要对所有增量备份进行逐个反推恢复
        MySQL没有提供直接的增量备份办法,可以通过MySQL提供的二进制日志(binary logs(binlog))间接实现增量备份
    MySQL二进制日志对备份的意义
        二进制日志保存了所有更新或者可能更新数据库的操作。
        二进制日志在启动MySQL服务器后开始记录,并在文件达到max_binlog_size所设置的大小或者接收到flush logs命令后重新创建新的日志文件。
    开启二进制日志备份功能
        MySQL的配置文件的[mysqld]项中加入 log-bin=文件存放路径/文件前缀,如 log-bin=mysql-bin,然后重启mysqld服务。默认此配置存在。
        使用mysqld --log-bin=文件存放路径/文件前缀 重新启动mysqld服务每周选择服务器负载较轻的时间段,或者用户访问较少的时间段进行备份
    增量恢复 :
        应用场景
            人为的SQL语句破坏了数据库
            在进行下一次全备之前发生系统故障导致数据库丢失
            在主从架构中,主库数据发生了故障,保证从库数据一致性
        方法
            一般恢复
                备份的二进制日志内容全部恢复
                格式: mysqldbinlog [--no-defaults] 增量备份文件 | mysql -u用户名 -p密码
            基于时间点的恢复
                便于跳过某个发生错误的时间点实现数据恢复
                格式:从日志开头截止到某个时间点的恢复:
                mysqlbinlog [--no-defaults] --stop-datetime=’年-月-日 小时:分钟:秒‘ 二进制日志 | mysql -u用户名 -p密码
            从某个时间点到日志结尾的恢复
                mysqlbinlog [--no-defaults] --start-datetime=’年-月-日 小时:分钟:秒‘ 二进制日志 | mysql -u用户名 -p密码
            从某个时间点到某个时间点的恢复
                mysqlbinlog [--no-defaults] --start-datetime=’年-月-日 小时:分钟:秒‘ --stop-datetime=’年-月-日 小时:分钟:秒‘ 二进制日志 | mysql -u用户名 -p密码
            基于位置的恢复
                可能在同一时间点既有错误的操作也有正确的操作,基于位置进行恢复更加准确
                mysqlbinlog --stop-position=‘操作 id‘ 二进制日志 | mysql -u用户名 -p密码
                mysqlbinlog --start-position=‘操作 id‘ 二进制日志 | mysql -u用户名 -p密码

 一般恢复 :

 第一次完全备份  第一次日志回滚

 查看表的内容

新增数据

 删除表

恢复第一次表的备份

  查看

 恢复增量

MySQL企业备份案例

需求描述:

北京移电通信公司的用户信息数据库为client,用户资费数据表为user_info

请为该公司每周进行完全备份

每天为该公司进行增量备份

· 新增加的用户信息如表所示

安装mysql(yum 方式)

添加数据库、表,录入数据

 先进行一次完全备份

 进行一次日志回滚(生成新的二进制日志)

 继续录入新的数据

进行增量备份

模拟误操作删除user_info表

 恢复完全备份

 恢复增量备份

 基于时间点的增量备份恢复

 

 基于位置的恢复


 总结

       数据库备份的重要性在于保护数据免遭丢失、误删、病毒攻击、硬件故障、自然灾害等风险。所以,我们在以后的生产、生活中要及时做数据备份,防止造成数据的丢失。

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

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

相关文章

物理机安装ESXI时遇到No Network Adapters

前不久在虚拟机下安装完成了ESXI&#xff0c;果断地使用了&#xff0c;确实很不错了&#xff0c; 配合我上次发的密匙&#xff08;https://www.cnntt.com/archives/5556&#xff09;妥妥爽。 虚拟机中试玩了一下&#xff0c;就开始布置到我的物理机上了&#xff0c;毕竟我以后…

【Python】Python 网络编程 ( Socket 套接字简介 | Socket 套接字使用步骤 | Socket 套接字服务端与客户端开发 )

文章目录 一、Socket 套接字简介1、Socket 套接字概念2、Socket 套接字类型3、Socket 套接字使用步骤4、Socket 套接字服务端与客户端 二、Socket 服务端与客户端开发1、服务端2、客户端3、执行结果 一、Socket 套接字简介 1、Socket 套接字概念 Socket 套接字 是一种 进程之间…

Matlab的SimuLink对FS32K144编程--内部数据存储Flash

​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ 前言 Flah擦写是由寿命的&#xff0c;应当减免无效的擦写&#xff0c;如数据值不变不进行擦写 1、新建工程完成后&#xff0c;拖出Flash的存储控制初始化…

vue3+ts+element-plus实际开发之导出表格和不同类型之间相互赋值

vue3tselement-plus实际开发常用功能 ✏️ 1. 前端导出选中表格数据到本地成xlsx文件1. 安装依赖2. 引入&#xff0c;import * as XLSX from "xlsx";3. 报错找不到模块“xlsx”或其相应的类型声明4. 使用导出文件 ✏️ 2. 通过接口获取文件流下载xlsx文件1. 直接用a标…

HEVC码流解析

根据《T-REC-H.265-201504-I!!PDF-E》协议描述。 一&#xff0c;HEVC的码流格式定义 字节流格式由字节流NAL 单元语法结构序列构成。每一字节流NAL 单元语法结构包含有一个起始编码前缀&#xff0c;后面跟随一个nal_unit(NumBytesInNALunit)语法结构。它可能&#xff08;一定情…

嵌入式传感器的接口:中断驱动的ADC驱动器

我们研究了如何编写阻塞的模数转换器&#xff08;ADC&#xff09;驱动程序和使用轮询技术不阻塞应用程序流的驱动程序。轮询外围设备的驱动程序效率很低&#xff0c;如果系统可能处于低功耗状态&#xff0c;它们可能会浪费宝贵的时钟周期&#xff0c;而这些时钟周期本来会被使用…

【体系认证】ISO27701 隐私信息管理体系

1 认证定义 ISO/IEC 27701 隐私信息管理体系是ISO国际标准化组织和IEC国际电工委员会联合发布的隐私信息管理体系国际标准&#xff0c;它是对SO27001信息安全管理体系的扩展&#xff0c;在全球普遍受到认可&#xff0c;且具国际权威性。 ISO/IEC27701通过对隐私保护的控制对…

【Lua学习笔记】Lua进阶——Table(3) 元表

接上文 文章目录 元表__tostring__call__index__newindex运算符元方法其它元表操作 元表 Q&#xff1a;为什么要使用元表&#xff1f; A&#xff1a;在Lua中&#xff0c;常常会需要表与表之间的操作。元表中提供了一些元方法&#xff0c;通过自定义元方法可以实现想要的功能&…

Linux Day03

一、基础命令(在Linux Day02基础上补充) 1.10 find find 搜索路径 -name 文件名 按文件名字搜索 find 搜索路径 -cmin -n 搜索过去n分钟内修改的文件 find 搜索路径 -ctime -n搜索过去n分钟内修改的文件 1&#xff09;按文件名字 2&#xff09;按时间 1.11 grep 在文件中过…

m1 docker安装tomcat

背景 看到有同事尝试使用docker搭建tomcat服务&#xff0c;然后用nginx实现服务的负载均衡&#xff0c;但是遇到了挂载的问题&#xff0c;于是我在我自己的mac上尝试了一下。 实践过程 在本地新建tomcat的目录&#xff0c;下方挂载对应的数据文件和脚本文件。 其中&#xff…

小皮面板新增一个新网页页面

复制到根目录下&#xff0c;根目录 这里查看根目录。 然后点创建网站&#xff0c;基本配置里写入域名&#xff0c;还要刚才的网页文件夹&#xff0c;即index所在文件夹&#xff0c;index就是网页页面。 网址就是&#xff1a;http://xxxx.com/xxxx/ 参考小皮面板官网文章 htt…

【STL】模拟实现反向迭代器

目录 1. 读源码 2. 搭建框架 3. 迭代器的操作 operator*() operator->() operator() operator--() operator!() 4. 实现 list 的反向迭代器 5. 实现 vector 的反向迭代器 6. 源码分享 写在最后&#xff1a; 1. 读源码 我们之前实现的 vector&#xff0c;list…

购物车功能实现(小兔鲜儿)【Vue3】

购物车 流程梳理和本地加入购物车实现 购物车业务逻辑梳理拆解 整个购物车的实现分为两个大分支, 本地购物车操作和接口购物车操作由于购物车数据的特殊性,采取Pinia管理购物车列表数据并添加持久化缓存 本地购物车 - 加入购物车实现 添加购物车 基础思想&#xff1a;如果…

力扣每日一题--2050. 并行课程 III(拓补排序例题)

题目描述&#xff1a; 给你一个整数 n &#xff0c;表示有 n 节课&#xff0c;课程编号从 1 到 n 。同时给你一个二维整数数组 relations &#xff0c;其中 r e l a t i o n s [ j ] [ p r e v C o u r s e j , n e x t C o u r s e j ] relations[j] [prevCoursej, nextCou…

【云原生】Docker容器命令监控+Prometheus监控平台

目录 1.常用命令监控 docker ps docker top docker stats 2.weave scope 1.下载 2.安装 3.访问查询即可 3.Prometheus监控平台 1.部署数据收集器cadvisor 2.部署Prometheus 3.部署可视化平台Gragana 4.进入后台控制台 1.常用命令监控 docker ps [rootlocalhost ~…

手把手教你怎么写顺序表

目录 一、顺序表有什么功能&#xff1f; 二、实现顺序表的各个功能 1.前置准备 2.初始化顺序表 3.顺序表扩容 4.打印顺序表 5.增加顺序表成员 5.1尾增 5.2头增 6.删除顺序表中成员的内容 6.1尾删 6.2头删 7.查找成员 8.修改(替换) 9.插入(在目标位置插入成员) 10.定…

Kong Ming Qi hdu7321

Problem - 7321 题目大意&#xff1a;在(n2)*(m2)的棋盘上&#xff0c;中间摆满了n*m个棋子&#xff0c;每个棋子可以向上下左右四个方向移动&#xff0c;对于相邻的三格&#xff0c;移动前后分别为 有 有 无->无 无 有&#xff0c;问最后棋盘上最少能剩下几个棋子 1<n…

论文解读|PF-Net:用于 3D 点云补全的点分形网络

原创 | 文 BFT机器人 01 背景 从激光雷达等设备中获取的点云往往有所缺失&#xff08;反光、遮挡等&#xff09;&#xff0c;这给点云的后续处理带来了一定的困难&#xff0c;也凸显出点云补全作为点云预处理方法的重要性。 点云补全&#xff08;Point Cloud Completion&#x…

Drools用户手册翻译——第四章 Drools规则引擎(七)规则执行模式和线程安全

甩锅声明&#xff1a;本人英语一般&#xff0c;翻译只是为了做个笔记&#xff0c;所以有翻译错误的地方&#xff0c;错就错了&#xff0c;如果你想给我纠正&#xff0c;就给我留言&#xff0c;我会改过来&#xff0c;如果懒得理我&#xff0c;就直接划过即可。 drools的规则执…

HighTec 工程属性介绍2

目录 首先需要创建或导入一个工程&#xff0c;如下图&#xff1a; 有两种方式可以进入工程的属性面板&#xff1a; 选中工程&#xff0c;右键点击 Properies . 选中工程&#xff0c;按键 Alt Enter. 进入工程属性面板之后&#xff0c;左侧是书签标记&#xff0c;右侧是该书…