首页
学习
活动
专区
圈层
工具
发布

mysql 增量备份恢复

基础概念

MySQL增量备份是指在一次完全备份的基础上,只备份自上次备份以来发生改变的数据。增量备份可以大大减少备份所需的时间和存储空间,因为它只备份变化的数据。

相关优势

  1. 节省存储空间:相比于全量备份,增量备份只存储变化的数据,因此占用的存储空间更少。
  2. 缩短备份时间:由于只需要备份变化的数据,增量备份的执行速度通常比全量备份快。
  3. 灵活恢复:结合增量备份和全量备份,可以实现更灵活的数据恢复策略。

类型

  1. 基于时间的增量备份:根据时间点来确定哪些数据发生了变化。
  2. 基于事务的增量备份:记录自上次备份以来发生的事务,然后只备份这些事务涉及的数据。

应用场景

  • 数据库数据量巨大,全量备份耗时较长或占用存储空间过大。
  • 需要频繁备份数据库,以应对可能的数据丢失风险。
  • 在数据库迁移或升级过程中,需要确保数据的完整性和一致性。

增量备份恢复问题及解决方案

问题1:增量备份文件损坏或丢失

原因:可能是由于磁盘故障、人为误操作或备份过程中出现异常导致。

解决方案

  • 定期检查备份文件的完整性。
  • 使用可靠的存储设备或云存储服务来保存备份文件。
  • 实施备份策略时,考虑冗余和容错机制。

问题2:增量备份恢复速度慢

原因:增量备份恢复时需要依次应用多个增量备份文件,如果增量备份文件过多或数据变化量大,恢复速度可能会受到影响。

解决方案

  • 优化增量备份策略,减少不必要的增量备份。
  • 在恢复时,可以考虑并行应用增量备份文件以提高恢复速度。
  • 使用高效的存储和网络设备来加速数据传输。

问题3:增量备份与全量备份不一致

原因:可能是在备份过程中出现了数据不一致的情况,或者增量备份文件本身存在问题。

解决方案

  • 在执行备份前,确保数据库处于一致状态。
  • 定期验证备份文件的完整性和一致性。
  • 在恢复时,先应用全量备份,再依次应用增量备份,确保数据的正确性。

示例代码

以下是一个简单的MySQL增量备份脚本示例(使用mysqldump工具):

代码语言:txt
复制
#!/bin/bash

# 设置备份目录和日期
BACKUP_DIR="/path/to/backup"
DATE=$(date +%Y%m%d%H%M%S)

# 全量备份
mysqldump -u username -p password --all-databases > $BACKUP_DIR/full_backup_$DATE.sql

# 增量备份(示例:备份数据库db_name)
mysqldump -u username -p password --single-transaction --flush-logs --master-data=2 db_name > $BACKUP_DIR/incremental_backup_$DATE.sql

# 清理旧的备份文件(可选)
find $BACKUP_DIR -type f -mtime +7 -exec rm {} \;

参考链接

请注意,实际应用中可能需要根据具体需求和环境调整备份策略和脚本。

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

相关·内容

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

]# innobackupex --defaults-file=/etc/my.cnf --copy-back ./2017-08-23_21-23-46/ 即可恢复咱们的备份到mysql目录。... protected]03 ~]# mysql -uroot -pzhangduanya db123 备份的数据恢复得到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,利用咱们已经备份的数据去恢复它。

13.8K100

Oracle 增量备份恢复验证

首先把Oracle备份文件传到目标端,解压,如下所示是每天的备份,其中20190816是0级别的差异增量备份 ,其余的都是1级的差异增量备份。...3.1告诉rman备份文件在哪里: RMAN> catalog start with '/data/backup/oracle'; 3.2具体恢复,基于时间的恢复,选择一个比较大的时间,就是肯定在备份时间之后的时间...首先在完成最后一次增量备份后,再主库insert一条数据, SQL> insert into liuwenhe.test values (1010101); SQL>commit; SQL> alter...: RMAN> catalog start with '/data/backup/oracle'; 具体恢复,基于时间的恢复,选择一个比较大的时间,就是肯定在备份时间之后的时间!...至此完成了增量备份的恢复! RMAN不完全恢复的主要操作命令!

1.8K10
  • 使用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 这时已经将第一次增量备份的内容附加到了全备的数据文件上了 这时数据文件处于非一致状态...启动数据库 首先我们需要注意下文件的权限,如果不是使用mysql账号执行的备份和恢复,首先要更改权限 $ chown -R mysql:mysql /var/lib/mysql 最后我们启动数据库即可

    2.2K30

    MySQL实时增量备份

    MySQL实时增量备份,采用binlog日志的好处   掌控所有更改操作,必要时可用于恢复数据 数据库主从复制的必要条件 [root@localhost~]# vim /etc/my.cnf [mysqld...备份的原始文件夹(Mysql库的位置) --prepare 准备恢复数据 --increamental-basedir 增量备份时,指定参照的完整备份路径 --incremental-dir 准备恢复目录时...//完整备份的大小 264K /backup/inc01/ 准备用于恢复的数据库目录 以/backup/mysql/可用来重建MySQL服务器。.../ [root@localhost ~]# xtrabackup_56 --prepare --target-dir=/backup/mysql/ 准备恢复“完整备份+增量备份” 以/backup/..._56 --prepare --target-dir=/backup/mysql --apply-log-only 然后整合增量备份的数据,通过--incremental-dir选项指定增量位置: [

    4K40

    MySQL 备份恢复(二)

    前面一篇已经介绍了MySQL 备份相关的原理与方法,要是还没有来得及看的可以戳此查看『MySQL 备份恢复(一)』,那么今天就接着上一篇的内容继续谈谈备份恢复相关内容。...数据备份是 DBA 非常重要的工作之一,系统意外奔溃或者硬件损坏都可能导致数据库的数据丢失,因此 MySQL DBA 应该定期备份数据,使得意外发生时尽可能的减少损失。...select …… into outfile SELECT INTO…OUTFILE 语句是一种逻辑备份方法,恢复速度非常快,比 inser的插入速度要快很多。...将表数据导出到一个文本文件中,并用LOAD DATA …INFILE 语句恢复数据。...此方法对于单个表的备份非常有利,但不知大家发现没有,此备份都是将数据存在数据库服务器上,我们只能用类似 mysql -e "SELECT ..." > file_name的命令将文件输出到客户机上。

    3.4K30

    MySQL备份与恢复

    增量备份:只有在那些在上次完全备份或增量备份后被修改的文件才会被备份,以上次完整备份或上次增量备份的时间为时间点,仅仅备份这之间的数据变化,因而备份的数据量也小,占用空间小,备份速度快,但恢复时,需要从上一次的完整备份开始到最后一次增量备份之间的所有增量依次恢复...| | performance_schema | | test | +--------------------+ MySQL 增量备份与恢复: 与完全备份不同...,增量备份没有重复数据,备份量不大,时间段,但其恢复比较麻烦,需要上次完全备份及完全备份之后的所有增量备份之后才能恢复,而且要对所有增量备份逐个反推恢复。...MySQL没有提供直接的增量备份办法,所以一般是通过MySQL提供的二进制日志来间接实现增量备份。...谨记,所有类型的增量恢复之前,都必须先执行最近一次的完全恢复。 谨记,所有类型的增量恢复之前,都必须先执行最近一次的完全恢复。

    4.9K20

    MySQL备份与恢复

    MySQL备份与恢复 1、数据备份概述 备份是数据安全的最后一道防线,对于任何数据丢失的场景,备份虽然不一定能恢复百分之百的数据(取决于备份周期),但至少能将损失降到最低。...它比最初的完全备份小,因为只包含自上次完全备份以来所改变的数据库。它的优点是存储和恢复速度快。 增量备份:只有那些在上次完全备份或者增量备份后被修改的文件才会被备份。...) 准备选项 --incremental-dir 指定增量备份,与全备合并 还原选项 --copy-back 做数据恢复时将备份数据文件拷贝到MySQL服务器的datadir。...lib/mysql/ systemctl restart mariadb.service 增量备份与恢复: # 全量备份,增量备份前需要先进行一次全量备份 mariabackup --backup -...,按照增量备份顺序依次将增量备份与全备合并,记得加--apply-log-only选项,最后一次增量备份不需要添加该选项 # 恢复数据(保证要还原的数据库服务器的data目录为空) rm -rf /var

    5.1K20

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

    设计场景 1)增量备份在周一到周六凌晨3点,复制mysql-bin.00000*到指定目录; 2)全量备份则使用mysqldump将整个数据库导出,每周日凌晨3点执行,并会删除上周留下的mysq-bin....00000*,然后对mysql的备份操作会保留在bak.log文件中。...#增量日志文件目录 (2)修改所属的用户/组:(不修改,mysql无法重启) #chown -R mysql.mysql mysql-bin (3)修改mysql配置文件,执行: #vim /etc/my.cnf...backup目录,新建daily目录:mkdir backup 切换到/home/mysql目录,执行: #vim Mysql-FullyBak.sh 编写增量备份脚本 切换到/home/mysql目录...0 3 * * 0 /bin/bash -x /home/mysql/Mysql-FullyBak.sh >/dev/null 2>&1#周一到周六凌晨3:00做增量备份0 3 * * 1-6 /bin

    5.6K30

    MySQL 备份恢复(三)

    前面两篇已经介绍了 MySQL 备份相关的原理与方法,要是还没有来得及看的可以戳此查看『MySQL 备份恢复(二)』,那么今天就接着上一篇的内容继续谈谈备份恢复相关内容之 mydumper 的使用。...DML 语句 ④保证备份数据的一致性 ⑤支持文件压缩 ⑥支持导出 binlog ⑦支持多线程恢复 ⑧支持以守护进程模式工作,定时快照和连续二进制日志 ⑨支持将备份文件切块 mydumper 备份机制与流程...-d, --directory 备份文件的文件夹 -o, --overwrite-tables 如果要恢复的表存在,则先drop掉该表,使用该参数...--queries-per-transaction 每次事物执行的查询数量,默认是1000 -V, --version 显示版本 mydumper 实操备份恢复...t 并压缩 mydumper -u root -p root -B testdb –T t –c -o /tmp/backup/mydumper/ 注意:建议备份恢复的时候加参数-v 3,显示详细的日志

    2.1K20

    mysql备份与恢复

    MySQL备份与恢复 1 备份与恢复概述 对于DBA来说,备份和恢复是一项最基本的操作,在服务器宕机、磁盘损坏、RAID卡损坏等意外情况下,要保证数据不丢失或者丢失量在可接受范围内,每个DBA应该时刻关注所负责的数据库备份情况...这类工具,它的缺点是备份的文件可能会比较大、恢复时候的跨平台性较差。...按照备份数据库的内容来分,又可以分为完全备份、增量备份和日志备份,完全备份指的是对数据库进行一个完整的备份,增量备份指的是在上次完全备份的基础上,对更改的数据进行备份,而日志备份指的是对MySQL数据库日志的备份...,通过日志重做来完成数据库的恢复工作。...方法导出的文件可以使用load data infile来进行恢复,这个语法必须拥有file权限,时间关系,后续再细说。

    2.9K10

    mysql备份与恢复

    17 --master-data:在备份文件中写入备份时的binlog文件,在恢复进,增量数据从这个文件之后的日志开始恢复。...为了正确恢复,该选项应该用于导出mysql数据库和依赖mysql数据库数据的任何时候。 20 --force在导出过程中忽略出现的SQL错误。...student;" b、恢复数据 mysql -uroot -p'123456' mytest < /mnt/mytest_bak.sql c、查看数据 mysql -uroot -p'123456...(2)恢复操作 a、删除mytest库 mysql -uroot -p'123456' -e "drop database mytest;" b、恢复数据 (1)使用不带参数的导出文件导入(导入时不指定要恢复的数据库...分库备份的意义是在所有库都备份成一个备份文件时,恢复其中一个库的数据是比较麻烦的,所以分库备份,利于恢复。

    3.4K41
    领券