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

这篇具有很好参考价值的文章主要介绍了数据库—数据库备份(三十四)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

目录

前言

一、概述

二、数据备份的重要性

三、造成数据丢失的原因

四、备份类型

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/*
    还原
        创建还原目录
        模拟元数据丢失
        将解压之后的数据还原至原目录
        登录查看

创建数据表并写入数据 

数据库—数据库备份(三十四),lq 云计算运维学习,linux,运维,云计算

数据库—数据库备份(三十四),lq 云计算运维学习,linux,运维,云计算

 停止数据库服务数据库—数据库备份(三十四),lq 云计算运维学习,linux,运维,云计算

对数据库目录进行压缩归档备份数据库—数据库备份(三十四),lq 云计算运维学习,linux,运维,云计算

 还原:创建目录

数据库—数据库备份(三十四),lq 云计算运维学习,linux,运维,云计算

 移动到/bak 

数据库—数据库备份(三十四),lq 云计算运维学习,linux,运维,云计算

 将包解压到/restore数据库—数据库备份(三十四),lq 云计算运维学习,linux,运维,云计算

 还原到原目录数据库—数据库备份(三十四),lq 云计算运维学习,linux,运维,云计算

数据库—数据库备份(三十四),lq 云计算运维学习,linux,运维,云计算

 启动服务,查看数据库—数据库备份(三十四),lq 云计算运维学习,linux,运维,云计算

 6.1.2 备份工具备份

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

数据库—数据库备份(三十四),lq 云计算运维学习,linux,运维,云计算
        对多个库进行完全备份
            mysqldump -u用户名 -p[密码] [选项] --databases 库名1 [库名2]…… > /备份路径/备份文件名

数据库—数据库备份(三十四),lq 云计算运维学习,linux,运维,云计算
        对所有库进行完全备份
            mysqldump -u用户名 -p[密码] [选项] --opt --all-databases > /备份路径/备份文件名

数据库—数据库备份(三十四),lq 云计算运维学习,linux,运维,云计算
        对表进行完全备份
            mysqldump -u用户名 -p[密码] [选项] 数据库名 表名 > /备份路径/备份文件名

数据库—数据库备份(三十四),lq 云计算运维学习,linux,运维,云计算
        对表的结构进行备份
            mysqldump -u用户名 -p[密码] -d 数据库名 表名 > /备份路径/备份文件名


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

 进入数据库,删除库test

数据库—数据库备份(三十四),lq 云计算运维学习,linux,运维,云计算

 还原数据库—数据库备份(三十四),lq 云计算运维学习,linux,运维,云计算

 进入数据库,删除表massage数据库—数据库备份(三十四),lq 云计算运维学习,linux,运维,云计算

 还原

数据库—数据库备份(三十四),lq 云计算运维学习,linux,运维,云计算

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密码

 一般恢复 :

数据库—数据库备份(三十四),lq 云计算运维学习,linux,运维,云计算

数据库—数据库备份(三十四),lq 云计算运维学习,linux,运维,云计算

数据库—数据库备份(三十四),lq 云计算运维学习,linux,运维,云计算

 第一次完全备份 数据库—数据库备份(三十四),lq 云计算运维学习,linux,运维,云计算 第一次日志回滚

数据库—数据库备份(三十四),lq 云计算运维学习,linux,运维,云计算

 查看表的内容数据库—数据库备份(三十四),lq 云计算运维学习,linux,运维,云计算

新增数据

数据库—数据库备份(三十四),lq 云计算运维学习,linux,运维,云计算

 删除表数据库—数据库备份(三十四),lq 云计算运维学习,linux,运维,云计算

恢复第一次表的备份

数据库—数据库备份(三十四),lq 云计算运维学习,linux,运维,云计算

  查看数据库—数据库备份(三十四),lq 云计算运维学习,linux,运维,云计算

 恢复增量数据库—数据库备份(三十四),lq 云计算运维学习,linux,运维,云计算

MySQL企业备份案例

需求描述:

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

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

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

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

安装mysql(yum 方式)

数据库—数据库备份(三十四),lq 云计算运维学习,linux,运维,云计算

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

数据库—数据库备份(三十四),lq 云计算运维学习,linux,运维,云计算

数据库—数据库备份(三十四),lq 云计算运维学习,linux,运维,云计算

 先进行一次完全备份

数据库—数据库备份(三十四),lq 云计算运维学习,linux,运维,云计算

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

数据库—数据库备份(三十四),lq 云计算运维学习,linux,运维,云计算

 继续录入新的数据

数据库—数据库备份(三十四),lq 云计算运维学习,linux,运维,云计算

进行增量备份

数据库—数据库备份(三十四),lq 云计算运维学习,linux,运维,云计算

模拟误操作删除user_info表

数据库—数据库备份(三十四),lq 云计算运维学习,linux,运维,云计算

 恢复完全备份

数据库—数据库备份(三十四),lq 云计算运维学习,linux,运维,云计算数据库—数据库备份(三十四),lq 云计算运维学习,linux,运维,云计算

 恢复增量备份

数据库—数据库备份(三十四),lq 云计算运维学习,linux,运维,云计算

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

数据库—数据库备份(三十四),lq 云计算运维学习,linux,运维,云计算

 数据库—数据库备份(三十四),lq 云计算运维学习,linux,运维,云计算

数据库—数据库备份(三十四),lq 云计算运维学习,linux,运维,云计算

数据库—数据库备份(三十四),lq 云计算运维学习,linux,运维,云计算

数据库—数据库备份(三十四),lq 云计算运维学习,linux,运维,云计算

数据库—数据库备份(三十四),lq 云计算运维学习,linux,运维,云计算

 基于位置的恢复

数据库—数据库备份(三十四),lq 云计算运维学习,linux,运维,云计算数据库—数据库备份(三十四),lq 云计算运维学习,linux,运维,云计算

数据库—数据库备份(三十四),lq 云计算运维学习,linux,运维,云计算

数据库—数据库备份(三十四),lq 云计算运维学习,linux,运维,云计算


 总结

       数据库备份的重要性在于保护数据免遭丢失、误删、病毒攻击、硬件故障、自然灾害等风险。所以,我们在以后的生产、生活中要及时做数据备份,防止造成数据的丢失。文章来源地址https://www.toymoban.com/news/detail-614940.html

到了这里,关于数据库—数据库备份(三十四)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 开源数据库Mysql_DBA运维实战 (备份与还原)

    备份对于数据库而言是至关重要的。当数据文件发生损坏、MySQL服务出现错误、系统内核崩溃、计算机硬件损坏或者数据被误删等事件时,使用一种有效的数据备份方案,就可以快速解决以上所有的问题。MySQL提供了多种备份方案,包括: 逻辑备份、物理备份、全备份以及增

    2024年02月12日
    浏览(73)
  • openGauss学习笔记-149 openGauss 数据库运维-备份与恢复-逻辑备份与恢复之gs_restore

    149.1 背景信息 gs_restore是openGauss提供的针对gs_dump导出数据的导入工具。通过此工具可由gs_dump生成的导出文件进行导入。 gs_restore工具由操作系统用户omm执行。 主要功能包含: 导入到数据库 如果连接参数中指定了数据库,则数据将被导入到指定的数据库中。其中,并行导入必

    2024年02月04日
    浏览(50)
  • MySQL基础(三十六)其他数据库日志

    千万不要小看日志 。很多看似奇怪的问题,答案往往就藏在日志里。很多情况下,只有通过查看日志才能发现问题的原因,真正解决问题。所以,一定要学会查看日志,养成检查日志的习惯,对提升你的数据库应用开发能力至关重要。 MySQL8.0 官网日志地址:“ https://dev.mys

    2024年02月05日
    浏览(64)
  • postgresql数据库定时备份到远程数据库

    1.老规矩,服务器目录结构: conf目录无内容 profile: 其中: 最后一行 export PGPASSWORD=‘root’ 是需要备份的数据库的密码,因为直接用 pg_dump 命令备份需要输入密码交互,而我们需要达到自动备份,所以借助这种方式不需要输入密码 docker-compose.yml: 启动容器: 然后再data目录下面

    2024年02月09日
    浏览(47)
  • 数据库实验7---数据库的备份与恢复

    使用mysqldump命令备份数据库studentsdb的所有表,存于D:下,文件名为all_tables.sql。 在MySQL服务器上创建数据库student1,使用mysql命令将备份文件all_tables.sql恢复到数据库student1中。 使用mysqldump命令备份数据库studentsdb的所有表,存于D:下,文件名为s_c.sql。 在MySQL服务器上创建数据

    2024年02月09日
    浏览(61)
  • sql数据库怎么备份,sql 实时备份

    在当今互联网时代,数据已经成为企业的核心资产。然而,数据的安全性和完整性面临硬件问题、软件故障、人工操作错误等各种威胁。为了保证数据的安全,实时备份已经成为公司必须采取的重要措施之一。下面我们就重点介绍SQL实时备份的重要实施方法。 SQL实时备份的必

    2024年02月10日
    浏览(62)
  • 三十多万健康问答疾病问答ACCESS数据库

    健康是现代社会永不衰落的话题和关注点,而社会人群里内宅像流行病似的传染,什么都想无人参与:无人旅馆、无人酒店、无人超市等等,当然不能少了无人健康咨询,有什么毛病都只想先网上偷偷查一查、匿名问一问,因此网上疾病问答才会火热。而今天这份数据库就是

    2024年02月07日
    浏览(33)
  • 数据库备份.....

      2.1.备份数据库school到/backup目录 2.1.1.mysqldump+binlog 2.2.备份数据库为带删除表的格式,可以覆盖已有数据库,而不需要手动删除原有数据库 2.3.直接将数据库压缩备份 

    2024年03月09日
    浏览(49)
  • pgsql数据库自动备份

    本文的写作原因:对实际客户需求的一次小总结,顺带做一次笔记 任何数据库都需要备份,备份数据是维护数据库必不可少的操作。 数据库备份常见的应用场景: 硬件故障造成数据库部分数据或全部数据丢失 人为操作失误造成某些数据被误操作 软件 BUG 造成部分数据或全部

    2024年02月08日
    浏览(47)
  • shell脚本备份数据库

    打开mysql的bin目录,然后在地址栏cmd,进入cmd界面,输入mysqldump命令,-u输入用户名,-p输入密码 还有数据库名称,以及后面要保存到的位置 检查centos是否自带数据库: 卸载centos下已安装数据库: 进入指定目录: 下载mysql8 之后通过xz和tar命令解压压缩文件: 将/usr/local/src下的

    2024年02月16日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包