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

mysql定时增量备份脚本

基础概念

MySQL定时增量备份是指定期对MySQL数据库进行备份,只备份自上次备份以来发生变化的数据。这种备份方式可以减少备份所需的时间和存储空间,同时能够快速恢复数据。

相关优势

  1. 节省存储空间:只备份增量数据,减少存储需求。
  2. 缩短备份时间:备份的数据量小,备份速度快。
  3. 快速恢复:可以快速恢复到某个特定时间点的数据。

类型

  1. 基于日志的增量备份:利用MySQL的binlog(二进制日志)进行增量备份。
  2. 基于快照的增量备份:利用文件系统快照技术进行增量备份。

应用场景

适用于数据量较大、更新频繁的数据库系统,特别是在需要快速恢复数据和节省存储空间的情况下。

示例脚本

以下是一个基于binlog的MySQL定时增量备份脚本示例:

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

# 配置参数
DB_USER="your_db_user"
DB_PASS="your_db_password"
DB_NAME="your_db_name"
BACKUP_DIR="/path/to/backup/directory"
LOG_FILE="/path/to/backup/logfile.log"

# 获取当前日期和时间
DATE=$(date +%Y%m%d%H%M%S)

# 创建备份目录
mkdir -p $BACKUP_DIR

# 执行增量备份
mysqldump --user=$DB_USER --password=$DB_PASS --single-transaction --flush-logs --master-data=2 $DB_NAME > $BACKUP_DIR/incremental_backup_$DATE.sql

# 记录备份日志
echo "Incremental backup completed at $DATE" >> $LOG_FILE

# 清理旧的binlog文件(可选)
find $BACKUP_DIR -name "incremental_backup_*.sql" -mtime +7 -exec rm {} \;

解决常见问题

  1. 备份失败
    • 检查MySQL服务是否正常运行。
    • 确保备份目录有写权限。
    • 检查数据库连接参数是否正确。
  • 备份数据不完整
    • 确保在执行备份时没有其他高并发操作影响数据一致性。
    • 使用--single-transaction选项确保备份过程中数据库处于一致状态。
  • 备份文件过大
    • 调整备份策略,例如增加增量备份的频率。
    • 使用压缩工具对备份文件进行压缩。

参考链接

通过以上脚本和配置,可以实现MySQL的定时增量备份,并解决一些常见问题。

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

相关·内容

  • linux mysql定时备份脚本记录

    备份是容灾的基础,是指为防止系统出现操作失误或系统故障导致数据丢失,而将全部或部分数据集合从应用主机的硬盘或阵列复制到其它的存储介质的过程。...而对于一些网站、系统来说,数据库就是一切,所以做好数据库的备份是至关重要的! ---- 1. 创建备份 备份脚本: #!.../bin/bash date_str=$(date +%Y%m%d-%T) cd /bf/mysql_back mysqldump -h localhost -u root --password=PASSWORD... -R -E -e \databaseName \   | gzip > /bf/mysql_back/database_$date_str.sql.gz 2.执行定时任务 利用crontab定时执行上述脚本...crontab -e 每周一凌晨执行备份 05 02 * * 1 /home/mysqls_backup/mysqlbackup.sh 查看crontab列表 crontab -l 即时生效 /etc

    2K20

    使用脚本定时备份 MySQL 数据库

    然后直接运行脚本,看下能否完成备份,同时检查备份文件能否使用。...在检查备份时,可能会报 [Err] 2006 - MySQL server has gone away 这是应为可能是 sql 语句过长即 sql 文件过大,超过 MySQL 通信缓存区最大长度。...1.2 Windows 备份远程数据库 ☞ 编写脚本   Windows 备份远程数据库的过程跟 Linux 备份数据库的过程类似,是不过一个是 bat 脚本,一个是 sh 脚本。...替换下面的 MySQL 安装目录,用户名,密码,远程IP,远程端口,数据库名以及存放备份文件的目录。...-%date:~8,2%.sql" @echo on ☞ 添加定时任务   在计算机关机中选择任务计划程序,创建一个任务,定时触发执行写好的脚本即可。

    3.7K40

    MySQL实时增量备份

    支持整体备份和增量备份     组件一xtrabackup:C程序,支持InnoDB和XtraDB     组件二innobackupex:以Perl脚本封装xtrabackup,还支持MyISAM.../var/lib/mysql/ --target-dir=/backup/mysql/ 2)确认备份好的文件数据: [root@loclahost~]# ls /backup/mysql/ 3)做一个增量备份.../mysql/ 确认备份好的文件数据: [root@localhost~]# ls /backup/inc01/ 对比完整备份、增量备份的大小: [root@localhost~]# du -sh /backup...mysql/用来重建MySQL服务器,但这种情况下需提前合并相关增量备份的数据: 先准备完整备份目录,添加--apply-log-only仅应用日志: [root@loclahost ~]# xtrabackup..._56 --prepare --target-dir=/backup/mysql --apply-log-only 然后整合增量备份的数据,通过--incremental-dir选项指定增量位置: [

    4K40

    xtra+binlog增量备份脚本(上)

    一.备份原理 innobackupex原理 首先会启动一个xtrabackup_log后台检测的进程,实时检测mysql redo的变化,一旦发现redo有新的日志写入,立刻将日志写入到日志文件xtrabackup_log...文件 并且在这一时刻获得binary log 的位置 将表进行解锁unlock tables 停止xtrabackup_log进程 binlog原理 MySQL的二进制日志binlog可以说是MySQL...mysqldump备份时会查询所有的数据,这可能会把内存中的热点数据刷掉 innobackupex优点:物理备份可以绕过MySQL Server层,加上本身就是文件系统级别的备份,备份速度块,恢复速度快...,可以在线备份,支持并发备份,支持加密传输,支持备份限速 innobackupex缺点:要提取部分库表数据比较麻烦,不能按照基于时间点来恢复数据,并且不能远程备份,只能本地备份,增量备份的恢复也比较麻烦...如果使用innobackupex的全备+binlog增量备份就可以解决基于时间点恢复的问题 备份策略 根据需求,使用innobackupex全备份+innobackupex增量备份+binlog方式进行备份

    86600

    xtra+binlog增量备份脚本(下)

    四.容灾测试 写入测试数据 创建脚本,脚本将创建一个single库,s1表,持续写入数据。 vim /root/bin/mysql_test.sh #!...s1;" 2.进行全备份,返回ok正确 cd /root/bin bash mybak-all.sh 3.模拟第一天晚上,因为在持续写入数据,等一会再进行增量备份,并备份binlog bash mybak-section.sh...mybak-section-2018-12-12-15-07.tar.gz tar -xf mybak-section-2018-12-12-15-15.tar.gz 15.进入第二个包,它是在最后一次增量备份后才执行的...-uroot -p'123456' -e "use single;select count(*) from s1;" 五.重写测试 进入到脚本目录 cd /root/bin 执行重写脚本 bash mybak-rewrite.sh...可以看到原先目录只有一个全备份 ls /bak/mysql-xback/ 原先的全备份和增量备份的打包 ls -lh /bak/xback/

    51200
    领券