iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL增量备份与恢复的示例
  • 614
分享到

MySQL增量备份与恢复的示例

2024-04-02 19:04:59 614人浏览 薄情痞子
摘要

小编给大家分享一下Mysql增量备份与恢复的示例,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!文章目录一、mysql 增量备份1

小编给大家分享一下Mysql增量备份与恢复的示例,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

文章目录

  • 一、mysql 增量备份


    • 1.1 为什么使用增量备份

    • 1.2 增量备份的特点

    • 1.增量备份的概念


    • 2.增量备份示例

  • 二、Mysql 增量恢复


    • 4.1 基于时间点的恢复

    • 4.1 基于位置的操作

    • 1.增量恢复的场景

    • 2.丢失完全备份之后更改的数据的恢复步骤

    • 3.完全备份之后丢失所有数据的恢复步骤

    • 4. 基于时间点与位置的恢复


    • 5. 指定企业备份策略的思路


一、MySQL 增量备份

增量备份可以在完全备份的基础上,减少备份文件的大小,从而加快备份和恢复的速度

1.增量备份的概念

1.1 为什么使用增量备份

  • 前面章节讲到了完全备份有两种方式,一种是使用 tar 打包数据文件,另一种是
    使用 mysqldump 进行完全备份

  • 完全备份存在的问题很容易看到,每次都是把所有的数据内容进行备份,备份数据中有大量的重复数据,并且完全备份的时间与恢复的时间很长

  • 解决完全备份存在的问题就是使用增量备份的方式,增量备份就是备份自上一次备份之后增加或改变的文件或者内容

1.2 增量备份的特点

  • 增量备份的优点是没有重复数据,备份量不大,时间短

  • 缺点也很明显,需要上次完全备份及完全备份之后所有的增量备份才能恢复,而且对所有增量备份进行逐个反推恢复,操作较为繁

  • MySQL 没有提供直接的增量备份方法,但是可以通过 MySQL 的二进制日志(binary
    logs)间接实现增量备份

二进制日志对备份的意义如下:

  1. 二进制日志保存了所有更新或者可能更新数据库的操作

  2. 二进制日志在启动 MySQL 服务器后开始记录,并在文件达到 max_binlog_size 所设置的大小或者接收到 flush logs 命令后重新创建新的日志文件

  3. 只需要定时执行 flush logs 方法重新创建新的日志,生成二进制文件序列,并及时把这些日志保存到安全的地方就完成了一个时间段的增量备份

2.增量备份示例

  1. 开启二进制日志功能

vim /etc/my.cnf...[mysqld]log-bin=mysql-binbinlog_fORMat = MIXED#指定二进制日志(binlog)的记录格式为 MIXEDsystemctl restart mysqld.service#重启服务cd /usr/local/mysql/datals -l /usr/local/mysql/data/mysql-bin.*#查看二进制文件#二进制日志(binlog)有3种不同的记录格式:STATEMENT(基于SQL语句)、ROW(基于行)、MIXED(混合模式)#默认格式是 STATEMENT

MySQL增量备份与恢复的示例
MySQL增量备份与恢复的示例

  1. 每周选择服务器负载较轻的时间段,或者用户访问较少的时间段进行备份

mysqldump -uroot -p123123 SCHOOL CLASS01 > /opt/SCHOOL_CLASS01_$(date +%F).sql#对表进行完全备份mysqldump -uroot -p123123 --all-databases SCHOOL > /opt/SCHOOL_$(date +%F).sql#对库进行完全备份crontab -e#也可以使用计划性任务来执行30 3 * * 3 mysqldump -uroot -p123123 SCHOOL CLASS01 > /opt/SCHOOL_CLASS01_$(date +%F).sql30 3 * * 3 mysqldump -uroot -p123123 --all-databases SCHOOL > /opt/SCHOOL_$(date +%F).sql每周三的凌晨 3:00 对数据库和表进行完全备份

MySQL增量备份与恢复的示例
MySQL增量备份与恢复的示例

  1. 可每天进行增量备份操作,生成新的二进制日志文件,这样在插入新的数据后,新的二进制文件对应的就是数据库的变化的内容

ls /usr/local/mysql/datamysqladmin -uroot -p123123 flush-logs

MySQL增量备份与恢复的示例

  1. 插入新的数据,以模拟数据的增加或变更

use SCHOOL;insert into CLASS01 values(3,'wangsan','woman','games');insert into CLASS01 values(4,'wangsi','man','runing');select * from CLASS01;

MySQL增量备份与恢复的示例

  1. 生成新的二进制文件并查看其内容

cd /usr/local/mysql/data/lsmysqladmin -uroot -p123123 flush-logs

MySQL增量备份与恢复的示例

cp mysql-bin.000002 /opt/#将记录变更的二进制文件02复制至/opt目录下cd /opt/lsmysqlbinlog --no-defaults --base64-output=decode-rows -v /opt/mysql-bin.000002#使用64位编码机制去解码,按行读取详细内容

MySQL增量备份与恢复的示例
MySQL增量备份与恢复的示例


二、MySQL 增量恢复

  • 增量恢复比完全恢复操作更为繁琐

  • 每个增量备份都是单独的个体,数据不重复,需要控制得更加精确

1.增量恢复的场景

  • 当数据发送错误时,应根据实际情况选择使用完全备份恢复,还是增量备份

  • 增量备份的场景是:

    • 人为的 SQL 语句破坏了数据库

    • 在进行下一次全备之前发送系统故障导致数据库数据丢失

    • 在主从架构中,主库数据发送了故障

  • 根据数据丢失的情况可以分为两类:

    • 只丢失了完全备份之后更改的数据

    • 完全备份之后丢失所有的数据

2.丢失完全备份之后更改的数据的恢复步骤

  • 当完全备份之后更改的数据丢失,需要把完全备份之后的所有增量备份文件逐个恢复

  • 步骤如下:

mysql -uroot -p123123use SCHOOL;delete from CLASS1 where id=3;delete from CLASS1 where id=4;#删除插入的两条数据,模拟完全备份后数据丢失的故障select * from CLASS01;#检查quitmysqlbinlog --no-defaults /opt/mysql-bin.000002 | mysql -uroot -p123123#使用二进制文件进行恢复操作mysql -uroot -p123123 -e "select * from SCHOOL.CLASS01;"#检查表内容是否恢复

MySQL增量备份与恢复的示例
MySQL增量备份与恢复的示例

3.完全备份之后丢失所有数据的恢复步骤

  • 当完全备份和增量备份之后,所有的数据丢失,需要把完全备份和所有增量备份文件逐个恢复

  • 步骤如下:

mysql -uroot -p123123use SCHOOL;drop table CLASS01;#直接删除整个表,假设完全备份后所有数据都丢失了quitmysql -uroot -p123123 SCHOOL < /opt/SCHOOL_CLASS01_2021-02-06.sqlmysql -uroot -p123123 -e "select * from SCHOOL.CLASS01;"#进行完全备份后查看一下mysqlbinlog --no-defaults /opt/mysql-bin.000002 | mysql -uroot -p123123#增量备份mysql -uroot -p123123 -e "select * from SCHOOL.CLASS01;"

MySQL增量备份与恢复的示例
MySQL增量备份与恢复的示例

4. 基于时间点与位置的恢复

  • 利用二进制日志可实现基于时间点与位置的恢复,例如由于误操作删除了一张表,这时完全恢复是没有用的

  • 因为日志里还有误操作的语句,我们需要的是恢复到误操作之前的状态,然后跳过误操作的语句,再恢复后面操作的语句

4.1 基于时间点的恢复

  • 基于时间点的恢复,就是将某个起始时间的二进制文件导入数据库中,从而跳过某个发生错误的时间点实现数据的恢复

  • 使用 mysqlbinlog 加上 --stop-datetime 选项,表示在哪个时间点结束,后面误操作的语句不执行

  • –start-datetime 选项表示执行后面的语句

  • 结合使用它们就可以跳过误操作的语句,完成恢复工作

  • 需要注意的是,二进制文件中保存的日期格式需要调整为用“-”分割

#恢复用户“wangsan”的数据,而不恢复“wangsi”mysql -uroot -p123123 -e "truncate table SCHOOL.CLASS01;"mysql -uroot -p123123 -e "select * from SCHOOL.CLASS01;"mysqlbinlog --no-defaults --stop-datetime='2021-02-06 15:58:39' /opt/mysql-bin.000002 |mysql -uroot -p123123mysql -uroot -p123123 -e "select * from SCHOOL.CLASS01;"

MySQL增量备份与恢复的示例

#恢复“wangsi”的数据mysqlbinlog --no-defaults --start-datetime='2021-02-06 15:58:39' /opt/mysql-bin.000002 |mysql -uroot -p

MySQL增量备份与恢复的示例

4.1 基于位置的操作

  • 基于位置的恢复,就是使用基于时间点的恢复

  • 可能会出现在一个时间点里既同时存在正确的操作又存在错误的操作,基于位置是一种更为精确的恢复方式

mysqlbinlog --no-defaults --stop-position='609' /opt/mysql-bin.000002 | mysql -uroot -p#使用64位编码机制去解码并按行读取二进制文件02(增量备份)的详细内容......略

MySQL增量备份与恢复的示例

#仅恢复“1810”之前的数据,即不恢复“wangsi”的数据mysql -uroot -p123123 -e "select * from SCHOOL.CLASS01;"mysql -uroot -p123123 -e "truncate table SCHOOL.CLASS01;"mysql -uroot -p123123 -e "select * from SCHOOL.CLASS01;"mysqlbinlog --no-defaults --stop-position='1810' /opt/mysql-bin.000002 | mysql -uroot -pmysql -uroot -p123123 -e "select * from SCHOOL.CLASS01;"

MySQL增量备份与恢复的示例

#仅恢复“wangsi”的数据,跳过“wangsan”的数据恢复,即仅有第四条记录mysql -uroot -p123123 -e "select * from SCHOOL.CLASS01;"mysqlbinlog --no-defaults --start-position='1810' /opt/mysql-bin.000002 | mysql -uroot -p123123mysql -uroot -p123123 -e "select * from SCHOOL.CLASS01;"

MySQL增量备份与恢复的示例

5. 指定企业备份策略的思路

  • 指定企业备份策略要根据企业数据库的实际读写的频繁性与数据的重要性进行

  • 数据更新频繁,则应该进行较为频繁的备份

  • 数据较为重要,则在有适当更新时进行备份

  • 在数据库压力小的时段进行全备,如一周一次,然后每天增备

  • 根据公司的规模,中小公司可一天一次全备,大公司可每周一次全备,每天进行一次增备,并且尽量为企业实现主从复制架构

以上是“MySQL增量备份与恢复的示例”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网数据库频道!

您可能感兴趣的文档:

--结束END--

本文标题: MySQL增量备份与恢复的示例

本文链接: https://www.lsjlt.com/news/55062.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL增量备份与恢复的示例
    小编给大家分享一下MySQL增量备份与恢复的示例,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!文章目录一、MySQL 增量备份1...
    99+
    2024-04-02
  • mysql 增量备份与恢复使用详解
    目录 一、前言 二、数据备份策略 2.1 全备 2.2 增量备份 2.3 差异备份 三、mysql 增量备份概述 3.1 增量备份实现原理 3.1.1 基于日志的增量备份 3.1.2 基于时间戳的增量备份 3.2 增量备份常用实现方式 3....
    99+
    2023-09-11
    mysql增量备份 mysql增量备份与恢复 mysql增量备份方案 xtrabackup使用 xtrabackup增量备份
  • mysql增量备份及断点恢复脚本的示例分析
    这篇文章给大家分享的是有关mysql增量备份及断点恢复脚本的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。简介增量备份是指在一次全备份或上一次增量备份后,以后每次的备份只...
    99+
    2024-04-02
  • MySQL怎么全量、增量备份与恢复数据
    这篇文章主要讲解了“MySQL怎么全量、增量备份与恢复数据”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL怎么全量、增量备份与恢复数据”吧!数据备份...
    99+
    2024-04-02
  • MySQL中备份与恢复的示例分析
    小编给大家分享一下MySQL中备份与恢复的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、备份策略赘述1、备份的类型类型1:热备份:读写不受影响(MyI...
    99+
    2023-06-20
  • rman 增量备份恢复
    rman异机增量备份恢复 https://blog.csdn.net/qq_28766111/article/details/85252754 https://blog.csdn.net...
    99+
    2024-04-02
  • MySQL完全备份与恢复的示例分析
    这篇文章将为大家详细讲解有关MySQL完全备份与恢复的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。免费学习推荐:mysql视频教程文章目录前言一、MySQL 完...
    99+
    2024-04-02
  • innobackupex怎么增量备份与恢复数据
    本篇内容主要讲解“innobackupex怎么增量备份与恢复数据”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“innobackupex怎么增量备份与恢复数据”吧...
    99+
    2024-04-02
  • mysql怎么增量备份和恢复数据
    这篇文章主要介绍“mysql怎么增量备份和恢复数据”,在日常操作中,相信很多人在mysql怎么增量备份和恢复数据问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql怎么增...
    99+
    2024-04-02
  • MySQLdump增量备份、完全备份与恢复的方法是什么
    本篇内容主要讲解“MySQLdump增量备份、完全备份与恢复的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQLdump增量备份、完全备份与恢复的方法是什么”吧!在数据库表丢失或...
    99+
    2023-06-16
  • 【MySql】Mysql之备份与恢复
    目录 一、mysql日志概述 1、日志类型与作用 2、日志配置文件  3、日志配置文件的查询  二、备份的类型❤ 1、物理备份 1.1 冷备份 1.2 热备份 1.3 温备份 2、逻辑备份❤ 2.1 完全备份 2.2 差异备份 2.3 增量...
    99+
    2024-01-21
    mysql 数据库
  • mysql中mysqldump备份恢复的示例分析
    小编给大家分享一下mysql中mysqldump备份恢复的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!  ...
    99+
    2024-04-02
  • Percona XtraBackup怎样实现全备及增量备份与恢复
    Percona XtraBackup怎样实现全备及增量备份与恢复,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 p...
    99+
    2024-04-02
  • 《入门MySQL—备份与恢复》
    本篇文章将主要讲解 MySQL 数据库数据备份与恢复相关知识,主要聚焦于逻辑备份,介绍mysqldump工具的使用以及恢复方法。 这里简单讲下物理备份和逻辑备份的概念: 物理备份:备份数据文件,转储数据...
    99+
    2024-04-02
  • rman增量备份的示例分析
    这篇文章主要为大家展示了“rman增量备份的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“rman增量备份的示例分析”这篇文章吧。 ...
    99+
    2024-04-02
  • mysql中lnnobackupex怎么进行全备加上增量的备份恢复
    mysql中lnnobackupex怎么进行全备加上增量的备份恢复,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。 ...
    99+
    2024-04-02
  • MySQL热备之PXB备份与恢复
    📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA工作经验 一位上进心十足的【大数据领域博主】!😜😜😜 中国DBA联盟(ACDU)成员,目前从事DBA及程序编程 擅长主流数据Oracle、MySQL...
    99+
    2023-08-16
    mysql 数据库
  • 如何进行MySQL 5.6 xtrabackup 全量和增量的备份及恢复
    今天就跟大家聊聊有关如何进行MySQL 5.6 xtrabackup 全量和增量的备份及恢复,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。xtrab...
    99+
    2024-04-02
  • 用innobackupex对于全量备份恢复mysql出错的示例分析
    这篇文章给大家分享的是有关用innobackupex对于全量备份恢复mysql出错的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 一、问题描...
    99+
    2024-04-02
  • MySQL数据库的备份与恢复
    一、数据备份的重要性 备份的主要目的是灾难恢复。 在生产环境中,数据的安全性至关重要。 任何数据的丢失都可能产生严重的后果。 造成数据丢失的原因: 程序错误人为操作错误运算错误磁盘故障灾难(如火灾、地震)和盗窃 二、数据库备份...
    99+
    2023-10-27
    数据库
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作