首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

centos mysql增量备份

基础概念

MySQL增量备份是指在完全备份的基础上,只备份自上次备份以来发生改变的数据。这种备份方式可以显著减少备份所需的时间和存储空间。增量备份通常与完全备份结合使用,以确保数据的完整性和可恢复性。

相关优势

  1. 节省存储空间:只备份自上次备份以来发生改变的数据,减少了存储需求。
  2. 缩短备份时间:由于备份的数据量较小,备份过程更快。
  3. 灵活的数据恢复:可以结合完全备份和增量备份进行数据恢复,灵活性高。

类型

  1. 基于二进制日志的增量备份:利用MySQL的二进制日志(Binary Log)记录所有数据变更操作,通过复制二进制日志来实现增量备份。
  2. 基于时间戳的增量备份:记录每个数据文件的最后修改时间,只备份自上次备份以来修改过的数据文件。

应用场景

  1. 数据库数据量巨大:对于数据量巨大的数据库,完全备份需要很长时间和大量存储空间,增量备份可以显著减少这些需求。
  2. 频繁更新的数据:对于频繁更新的数据,增量备份可以确保每次备份都能捕获最新的数据变更。

遇到的问题及解决方法

问题:增量备份失败

原因

  1. 二进制日志未启用。
  2. 权限不足。
  3. 磁盘空间不足。

解决方法

  1. 确保MySQL的二进制日志已启用。可以通过以下命令检查和启用:
  2. 确保MySQL的二进制日志已启用。可以通过以下命令检查和启用:
  3. 如果未启用,可以在MySQL配置文件(通常是my.cnfmy.ini)中添加以下配置:
  4. 如果未启用,可以在MySQL配置文件(通常是my.cnfmy.ini)中添加以下配置:
  5. 然后重启MySQL服务。
  6. 确保备份用户具有足够的权限。可以通过以下命令授予权限:
  7. 确保备份用户具有足够的权限。可以通过以下命令授予权限:
  8. 检查磁盘空间是否充足,确保有足够的空间进行备份。

问题:增量备份恢复失败

原因

  1. 备份文件损坏或不完整。
  2. 恢复顺序错误。

解决方法

  1. 确保备份文件完整且未损坏。可以通过校验和或其他验证方法进行检查。
  2. 确保恢复顺序正确。通常需要先恢复完全备份,然后按顺序恢复增量备份。可以使用以下命令进行恢复:
  3. 确保恢复顺序正确。通常需要先恢复完全备份,然后按顺序恢复增量备份。可以使用以下命令进行恢复:

示例代码

以下是一个基于二进制日志的增量备份示例:

代码语言:txt
复制
# 启用二进制日志(如果未启用)
echo "[mysqld]" >> /etc/my.cnf
echo "log-bin=mysql-bin" >> /etc/my.cnf
systemctl restart mysqld

# 创建增量备份
mysqlbinlog --start-datetime="2023-04-01 00:00:00" --stop-datetime="2023-04-02 00:00:00" /var/lib/mysql/mysql-bin.000001 > incremental_backup.sql

# 恢复增量备份
mysql -u username -p database_name < incremental_backup.sql

参考链接

希望以上信息对你有所帮助!

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

MySQL实时增量备份

备份的原始文件夹(Mysql库的位置) --prepare 准备恢复数据 --increamental-basedir 增量备份时,指定参照的完整备份路径 --incremental-dir 准备恢复目录时...--incremental-basedir=/backup/mysql/ 确认备份好的文件数据: [root@localhost~]# ls /backup/inc01/ 对比完整备份增量备份的大小:.../ [root@localhost ~]# xtrabackup_56 --prepare --target-dir=/backup/mysql/ 准备恢复“完整备份+增量备份” 以/backup/...mysql/用来重建MySQL服务器,但这种情况下需提前合并相关增量备份的数据: 先准备完整备份目录,添加--apply-log-only仅应用日志: [root@loclahost ~]# xtrabackup..._56 --prepare --target-dir=/backup/mysql --apply-log-only 然后整合增量备份的数据,通过--incremental-dir选项指定增量位置: [

2.7K40
  • mysql备份策略的实现(全量备份+增量备份)

    设计场景 1)增量备份在周一到周六凌晨3点,复制mysql-bin.00000*到指定目录; 2)全量备份则使用mysqldump将整个数据库导出,每周日凌晨3点执行,并会删除上周留下的mysq-bin...技术点 Mysqldump、mysqlbinlog、crontab 服务器信息 主机:centos7;数据库:mysql5.7 准备工作 开启binlog日志功能 (1)新建目录,执行: #mkdir...backup目录,新建daily目录:mkdir backup 切换到/home/mysql目录,执行: #vim Mysql-FullyBak.sh 编写增量备份脚本 切换到/home/mysql目录...,执行: #vim Mysql-DailyBak.sh 设置定时任务crontab (1)安装crontab(centos7默认已经安装): #yum install crontabs 服务操作说明:...0 3 * * 0 /bin/bash -x /home/mysql/Mysql-FullyBak.sh >/dev/null 2>&1#周一到周六凌晨3:00做增量备份0 3 * * 1-6 /bin

    3.8K30

    浅谈使用Binlog实现MySQL增量备份

    在写文章的时候,我一直在纠结,这个到底能不能算增量备份,因为使用binlog的这种方式,按照官方文档的说话,应该叫做 point-in-time ,而非正经的增量模式,但是也聊胜于无。...首先我先阐述一下,他的基本原理,就是定时制作基线,然后定时更新binlog,形成增量数据文件,然后在必要的时候进行恢复,追溯。...那么我们又该如何选择备份方案呢?...参数 --flush-logs,结束当前日志,生成并使用新日志文件 参数 --master-data=2,该选项将会在输出SQL中记录下完全备份后新日志文件的名称,用于日后恢复时参考,例如输出的备份SQL...产生新的binlog日志来记录备份之后的数据库“增删改”操作。

    1.7K30

    利用Xtrabackup进行mysql增量备份和全量备份

    利用Xtrabackup进行mysql增量备份 现在xtrabackup版本升级到了8.0,但是只对mysql8.0才有支持, 我们这还是使用2.4, 但是2.4相比之前的2.1有了比较大的变化:innobackupex...xtrabackup --move-back 命令 增量备份 增量是基于已有数据进行备份的,也就行需要先创建一次全量备份,然后记录当时的记录点 创建备份 xtrabackup --user=bkpuser...LSN,对于增量备份,它必须to_lsn与先前 base 备份的相同。..., 一旦准备好,增量备份就与完整备份相同,可以用相同的方式还原它们。...提问总结 增量备份步骤 创建基础备份 一定条件进行增量备份创建 对所有备份进行准备 所有增量基于基础备份 相当于合并操作 最后和全量备份一样 直接恢复即可 原理 在InnoDB内部会维护一个redo日志文件

    1.4K20

    Mysql备份系列(3)--innobackupex备份mysql大数据(全量+增量)操作记录

    (本机硬盘空间不足时很有用) MySQL数据库本身提供的工具并不支持真正的增量备份,二进制日志恢复是point-in-time(时间点)的恢复而不是增量备份。...增量备份需要基于全量备份 先假设我们已经有了一个全量备份(如上面的/backup/mysql/data/2016-12-01_00-07-15),我们需要在该全量备份的基础上做第一次增量备份。...那么,我们是否可以在增量备份的基础上再做增量备份呢?...---------------->增量备份后的恢复操作<---------------- 增量备份的恢复要比全量备份复杂很多,增量备份与全量备份有着一些不同,尤其要注意的是: 1)需要在每个备份(包括完全和各个增量备份...这在做增量备份时非常必要。

    2.2K101

    使用XtraBackup备份MySQL 8.0 Part 7 对增量备份进行恢复

    MySQL 8.0.19 Redhat 7.4 操作系统账号:mysql 数据库备份账号:backup 1. prepare阶段 上节我们介绍了如何使用xtrabackup对数据库进行增量备份,分别为base...你可以在任何机器上prepare 2. prepare 备份 通过上一节内容我们有如下备份内容 第一次全备第一次增量备份第二次增量备份我们同样使用--apply-log进行恢复动作,相当于Oracle...的recover动作 我们需要依次进行prepare,即按照如下步骤进行 prepare第一次全备prepare第一次增量备份prepare第二次增量备份还有需要注意的是和prepare全备不一样,除了最后一步...=/data/mysql/backup/base --incremental-dir=/data/backups/inc1 这时已经将第一次增量备份的内容附加到了全备的数据文件上了 这时数据文件处于非一致状态...2.3 prepare 第二次增量备份 由于我们只有2个增量备份,所以这是最后一次prepare,所以不需要加--apply-log-only参数 xtrabackup --prepare -use-memory

    1.7K30

    Mysql备份系列(2)--mysqldump备份(全量+增量)方案操作记录

    线上数据库备份场景: 每周日执行一次全量备份,然后每天下午1点执行MySQLdump增量备份....下面对这种备份方案详细说明下: 1.MySQLdump增量备份配置 执行增量备份的前提条件是MySQL打开binlog日志功能,在my.cnf中加入 log-bin=/opt/Data/MySQL-bin...2.恢复增量备份 mysqlbinlog MySQL-bin.000002 … | MySQL -u root -p注意此次恢复过程亦会写入日志文件,如果数据量很大,建议先关闭日志功能 --compatible...+mysqlbinlog二进制日志增量备份 1)从mysqldump备份文件恢复数据会丢失掉从备份点开始的更新数据,所以还需要结合mysqlbinlog二进制日志增量备份。...------------------------- 下面分享一下自己用过的mysqldump全量和增量备份脚本 应用场景: 1)增量备份在周一到周六凌晨3点,会复制mysql-bin.00000*到指定目录

    4.5K91

    全量备份增量备份差异备份说明

    2)增量备份 增量备份是针对于上一次备份(无论是哪种备份):备份上一次备份后(包含全量备份、差异备份增量备份),所有发生变化的文件。...增量备份是指在一次全备份或上一次增量备份后,以后每次的备份只需备份与前一次相比增加和者被修改的文件。...这就意味着,第一次增量备份的对象是进行全备后所产生的增加和修改的文件;第二次增量备份的对象是进行第一次增量备份后所产生的增加和修改的文件,如此类推。...但增量备份的数据恢复是比较麻烦的。...三、比较 1)按备份数据量,从多到少排序: 全量备份->差异备份->增量备份 2)按数据恢复速度,从快到慢排序: 全量备份->差异备份->增量备份 四、不同备份类型组合说明 1)全量备份增量备份结合

    4.1K70

    完全备份、差异备份增量备份的区别

    增量备份 (Incremental Backup ) 备份自上一次备份(包含完全备份、差异备份增量备份)之后有变化的数据。...增量备份是指在一次全备份或上一次增量备份后,以后每次的备份只需备份与前一次相比增加和者被修改的文件。...这就意味着,第一次增量备份的对象是进行全备份后所产生的增加和修改的文件;第二次增量备份的对象是进行第一次增量备份后所产生的增加和修改的文件,如此类推。...2、差异备份增量备份的区别 通过上面的概念分析可以知道,差异备份增量备份的区别在于它们备份的参考点不同:前者的参考点是上一次完全备份、差异备份增量备份,后者的参考点是上一次完全备份。...完全备份增量备份 以每周数据备份为例,在星期一进行完全备份,在星期二至星期五进行增量备份。如果在星期五数据被破坏了,则你需要还原星期一正常的备份和从星期二至星期五的所有增量备份

    3.8K20

    Mysql备份系列(4)--lvm-snapshot备份mysql数据(全量+增量)操作记录

    前面分别介绍了: Mysql备份系列(1)--备份方案总结性梳理 Mysql备份系列(2)--mysqldump备份(全量+增量)方案操作记录 Mysql备份系列(3)--innobackupex备份mysql...mysql> SET GLOBAL sync_binlog=1; 查看二进制日志和position,以备后续进行binlog日志恢复增量数据(记住这个position节点记录,对后面的增量数据备份很重要...5)重启数据 先将最新一次的binlog日志备份到别处,用作增量数据备份。...2)后续只需要每天备份一次最新的binlog日志(备份后立即flush logs产生新的binlog日志),这相当于增量备份了。...3)利用快照备份恢复全量数据,利用备份的binlog日志进行增量数据恢复 4)crontab计划任务,每天定时备份最近一次的binlog日志即可。

    2.1K91

    使用Xtrabackup实现MySQL数据库的增量备份

    接上一篇文章使用Xtrabackup备份MySQL数据库,下面介绍使用Xtrabackup实现MySQL数据库的增量备份 先在users表中插入10条记录,全库做一次全量备份 [root@localhost...@2019 --socket=/tmp/mysql.sock /backup 接下面我们再在表中插入几条新数据 要实现第一次增量备份,可以使用下面的命令进行: # innobackupex --incremental...-12-17/ 下面我们删除几条数据,然后通过之前的增量备份进行还原 “准备”(prepare)增量备份与整理完全备份有着一些不同,尤其要注意的是: (1)需要在每个备份(包括完全和各个增量备份)上,...,而INCREMENTAL-DIR-1指的是第一次增量备份的目录,INCREMENTAL-DIR-2指的是第二次增量备份的目录,其它依次类推,即如果有多次增量备份,每一次都要执行如上操作 下面模拟只有一次增量备份增量备份还原过程...-R mysql:mysql /usr/local/mysql/data/ service mysqld start 登录数据库验证是否恢复成功 可以看出增量备份恢复成功 当然有时也可以通过mysqlbinlog

    1.6K20

    innobackupex备份恢复+增量备份与恢复

    /data/backup/ 92M /data/backup/ 3.2 创建增量备份 再开始之前,我们先模拟增加一个库,这个就是我们所谓的增加的数据!... protected]03 ~]# mysql -uroot -pzhangduanya db123 < /tmp/mysqlbak.sql //把之前备份的数据恢复得到db123库 第一次增量备份...16M; 3.3 模拟执行第二次增量备份 [[email protected] backup]# mysql -uroot -pzhangduanya -e "create database lalala...2017-08-24_23-10-21 17M 2017-08-24_23-41-33 ----------------------------- 这里有个注意点,也是困扰很多人的一个关键操作,我们再次做增量备份的时候要基于刚刚已经做了的基础上面再次增量...也即是说这样这次的增量里面才会有刚刚咱们添加的db123库的信息。 ---- 四、增量备份的恢复 4.1 为了还原真实性,我模拟删除数据库,并且停掉mysql,利用咱们已经备份的数据去恢复它。

    12.2K100
    领券