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

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

目录

前言

一、概述

二、数据备份的重要性

三、造成数据丢失的原因

四、备份类型

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表

 恢复完全备份

 恢复增量备份

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

 

 基于位置的恢复


 总结

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

短视频平台视频怎么去掉水印?

短视频怎么去水印&#xff0c;困扰很多人&#xff0c;例如&#xff0c;有些logo水印&#xff0c;动态水印等等&#xff0c;分享操作经验&#xff1a; 抖音作为中国最受欢迎的社交娱乐应用程序之一&#xff0c;已成为许多人日常生活中不可或缺的一部分。在使用抖音过程中&#x…

融合大数据、物联网和人工智能的智慧校园云平台源码 智慧学校源码

电子班牌系统用以展示各个班级的考勤信息、授课信息、精品课程、德育宣传、班级荣誉、校园电视台、考场信息、校园通知、班级风采&#xff0c;是智慧校园和智慧教室的对外呈现窗口&#xff0c;也是学校校园文化宣传和各种信息展示的重要载体。将大数据、物联网和人工智能等新兴…

tinkerCAD案例:24. Ruler - Measuring Lengths 标尺 -量勺

tinkerCAD案例&#xff1a;24. Ruler - Measuring Lengths 标尺 - 测量长度 Project Overview: 项目概况&#xff1a; A machine shop, where any idea can become a reality, can cost millions and million of dollars. Still, the most important tool in the shop is the…

ELK高级搜索(一)

文章目录 ELK搜索1&#xff0e;简介1.1 内容1.2 面向 2&#xff0e;Elastic Stack2.1 简介2.2 特色2.3 组件介绍 3&#xff0e;Elasticsearch3.1 搜索是什么3.2 数据库搜索3.3 全文检索3.4 倒排索引3.5 Lucene3.6 Elasticsearch3.6.1 Elasticsearch的功能3.6.2 Elasticsearch使…

Patchwork 黑客组织瞄准我国大学和研究机构

据知道创宇404高级威胁情报团队近期发现&#xff0c;名为“Patchwork”的黑客组织正以中国的大学和研究机构为目标进行活动&#xff0c;部署名为EyeShell的后门。 Patchwork也被称为“Operation Hangover”和“Zinc Emerson”&#xff0c;被怀疑是来自印度的APT组织。该组织发起…

职业发展规划指南:如何成为成功的产品经理

导语&#xff1a;产品经理是当今互联网时代最炙手可热的职位之一。作为连接技术、商业和用户需求的桥梁&#xff0c;产品经理在公司中扮演着至关重要的角色。本文将为你提供一些关于产品经理职业发展的规划指南&#xff0c;帮助你在这个领域取得成功。 掌握核心技能&#xff1…

Coremail中睿天下|2023年第二季度企业邮箱安全态势观察

7月24日&#xff0c;Coremail邮件安全联合中睿天下发布《2023第二季度企业邮箱安全性研究报告》&#xff0c;对2023第二季度和2023上半年的企业邮箱的安全风险进行了分析。 一、垃圾邮件同比下降16.38% 根据Coremail邮件安全人工智能实验室&#xff08;以下简称AI实验室&#…

pgsql 查看某个表建立了那些索引sql

执行以下sql&#xff1a; SELECTns.nspname as schema_name,tab.relname as table_name,cls.relname as index_name,am.amname as index_type,idx.indisprimary as is_primary,idx.indisunique as is_unique FROMpg_index idx INNER JOIN pg_class cls ON cls.oididx.indexrel…

AI技术快讯:清华开源ChatGLM2双语对话语言模型

ChatGLM2-6B是一个开源项目&#xff0c;提供了ChatGLM2-6B模型的代码和资源。根据提供的搜索结果&#xff0c;以下是对该项目的介绍&#xff1a; 论文&#xff1a;https://arxiv.org/pdf/2103.10360.pdf ChatGLM2-6B是一个开源的双语对话语言模型&#xff0c;是ChatGLM-6B模…

如何利用plotly和geopandas根据美国邮政编码(Zip-Code)绘制美国地图

对于我自己来说&#xff0c;该需求源自于分析Movielens-1m数据集的用户数据&#xff1a; UserID::Gender::Age::Occupation::Zip-code 1::F::1::10::48067 2::M::56::16::70072 3::M::25::15::55117 4::M::45::7::02460 5::M::25::20::55455 6::F::50::9::55117我希望根据Zip-…

Windows下安装Hive(包安装成功)

Windows下安装Hive Hive与Hadoop的版本选择很关键&#xff0c;千万不能选错&#xff0c;否则各种报错。一、Hive下载1.1、官网下载Hive1.2、网盘下载Hive 二、解压安装包&#xff0c;配置Hive环境变量2.1、环境变量新增&#xff1a;HIVE_HOME2.2、修改Path环境变量&#xff0c;…

leetcode 860. 柠檬水找零

2023.8.1 简单的一个思路就是建一个大小为3的数组change &#xff0c;用于存储剩余的零钱&#xff0c;然后遍历账单&#xff0c;每次找零钱的时候判断一下是否有足够的零钱&#xff0c;不够的话直接返回false。 能坚持到结束遍历则返回true。 代码如下&#xff1a; class Solu…

【TypeScript】接口类型 Interfaces 的使用理解

导语&#xff1a; 什么是 类型接口&#xff1f; 在面向对象语言中&#xff0c;接口&#xff08;Interfaces&#xff09;是一个很重要的概念&#xff0c;它是对行为的抽象&#xff0c;而具体如何行动需要由类&#xff08;classes&#xff09;去实现&#xff08;implement&#x…

深入理解设计模式之门面模式

深入理解设计模式之门面模式 什么是门面模式&#xff1f; 门面模式&#xff08;Facade Pattern&#xff09;是一种结构型设计模式&#xff0c;它提供了一个简单的接口&#xff0c;用于访问复杂子系统中的一组接口。门面模式通过封装子系统的复杂性&#xff0c;提供了一个更简…

华为云hcip核心知识笔记(数据库服务规划)

华为云hcip核心知识笔记&#xff08;数据库服务规划&#xff09; 1.云数据接库优势 1.1云数据库优点有&#xff1a; 易用性强&#xff1a;能欧快速部署和运行 高扩展&#xff1a;开放式架构和云计算存储分离 低成本&#xff1a;按需使用&#xff0c;成本更加低廉 2.云数据库r…

Linux下查阅帮助文档必学命令 man

Linux操作系统的使用中,我们经常会遇到很多问题,这个时候查询文档的能力至关重要,黄老师来推荐大家使用man,这时我们必须掌握的查阅能力: 最常用的命令: man 名称 man 数字(1~9) 名称 这里的数字分别代表:

CentOS 搭建 GitLab Git

本文目录 1. CentOS7 搭建 Gitlab1. 安装 sshd1. 安装 sshd 依赖2. 启动并设置开机自启3. 安装防火墙4. 开启防火墙5. 开放 ssh 以及 http 服务 2. 安装 postfix1. 安装 postfix2. 启动并设置开机自启3. 几个补充知识 3. 下载并安装 gitlab1. 在线下载安装包2. 安装 4. 修改 gi…

(学习笔记-内存管理)如何避免预读失效和缓存污染的问题?

传统的LRU算法存在这两个问题&#xff1a; 预读失效 导致的缓存命中率下降缓存污染 导致的缓存命中率下降 Redis的缓存淘汰算法是通过实现LFU算法来避免 [缓存污染] 而导致缓存命中率下降的问题&#xff08;redis 没有预读机制&#xff09; Mysql 和 Linux操作系统是通过改进…

node.js的优点

提示&#xff1a;node.js的优点 文章目录 一、什么是node.js二、node.js的特性 一、什么是node.js 提示&#xff1a;什么是node.js? Node.js发布于2009年5月&#xff0c;由Ryan Dahl开发&#xff0c;是一个基于ChromeV8引擎的JavaScript运行环境&#xff0c;使用了一个事件驱…

【云原生】K8S超详细概述

目录 一、Kubernets概述1.1 K8S什么1.2为什么要用K8S 二、Kubernetes 集群架构与组件2.1Master组件Kube-apiserverKube-controller-managerKube-scheduler 2.2 配置存储中心etcd 2.3 Node 组件KubeletKube-Proxydocker 或 rocket 三、 Kubernetes 核心概念3.1Pod3.2Pod 控制器K…