mysql增量备份及断点恢复脚本实例

MySQL增量备份是在全量备份的基础上,备份每次更新、修改、新增的数据,以达到备份数据更加实时的目的。下面为大家介绍MySQL增量备份及断点恢复的脚本实例。

增量备份

概述

增量备份分为两个步骤:

  1. 导出全量备份;
  2. 将全量备份时间到现在更新的数据备份。

全量备份

在Linux系统下,使用mysqldump命令进行备份。命令如下:

# mysqldump -h主机名 -u用户名 -p密码 数据库名 > 备份文件名.sql
  • -h 后面跟的是主机名或IP地址,表示连接到哪个MySQL服务器;
  • -u 后面跟的是MySQL用户名;
  • -p 后面跟的是MySQL用户的密码;
  • 最后的 > 将备份文件保存到特定目录下。

增量备份

向日志文件中追加二进制日志,记录MySQL Server对数据的每个修改操作。将日志文件备份,并在下一次备份时,备份从上一个备份时间到现在的所有日志文件即可。

具体实现方式如下:

  1. 编辑 MySQL 配置文件 my.cnf,启用二进制日志,记录慢查询日志,在末尾加上以下几行:
log-bin=mysql-bin
expire_logs_days=7
log_slave_updates=1
log-slow-queries=/var/log/mysql/mysql-slow.log
long_query_time=1

其中 log-bin 表示启用二进制日志的文件名;expire_logs_days 表示日志文件过期时间为7天;log_slave_updates 表示允许从节点服务器写入主节点的二进制日志;log-slow-queries 表示日志文件的存放路径及文件名;long_query_time=1 表示记录执行时间超过1秒的慢查询到慢查询日志中。

  1. 按照时间顺序备份增量部分的二进制日志文件。命令如下:
# mysqlbinlog --start-datetime="起始时间" --stop-datetime="结束时间" "二进制日志文件" > 备份文件.sql

参数说明:

  • --start-datetime 指定备份的开始时间;
  • --stop-datetime 指定备份的结束时间;
  • "二进制日志文件" 是增量备份的日志文件名。

示例说明

下面是一个增量备份示例。假设我们在 2021 年 10 月 1 日进行了一次全量备份,并于 10 月 2 日开始进行增量备份,备份到当天 12 时。

# 完整备份
# mysqldump -uroot -p123456 mydb > /opt/db_backup/fullbk_2021-10-01.sql

# 增量备份
# 备份从1日0时到2日0时的日志
# mysqlbinlog --start-datetime="2021-10-01 00:00:00" --stop-datetime="2021-10-02 00:00:00" /var/lib/mysql/mysql-bin.000001 > /opt/db_backup/incremental_2021-10-02_00-00.sql

# 备份从2日0时到2日12时的日志
# mysqlbinlog --start-datetime="2021-10-02 00:00:00" --stop-datetime="2021-10-02 12:00:00" /var/lib/mysql/mysql-bin.000002 > /opt/db_backup/incremental_2021-10-02_12-00.sql

断点恢复

完整恢复:通过mysqldump命令将备份文件导入到MySQL中。

增量恢复:

  1. 将全量备份恢复到指定数据库。
  2. 逐个导入增量备份。

示例说明

下面是一个增量恢复的示例。假设我们有三个备份文件:fullbk_2021-10-01.sqlincremental_2021-10-02_00-00.sqlincremental_2021-10-02_12-00.sql

# 恢复全量备份
# mysql -u 用户名 -p 数据库名 < /opt/db_backup/fullbk_2021-10-01.sql

# 恢复增量备份1
# mysql -u 用户名 -p 数据库名 < /opt/db_backup/incremental_2021-10-02_00-00.sql

# 恢复增量备份2
# mysql -u 用户名 -p 数据库名 < /opt/db_backup/incremental_2021-10-02_12-00.sql

以上就是关于MySQL增量备份及断点恢复的完整攻略及示例说明。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:mysql增量备份及断点恢复脚本实例 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • Android Room的使用详解

    Android Room的使用详解攻略 什么是Android Room? Android Room是谷歌在Android SDK 2.2以上版本中提供的一个数据库持久层解决方案,它将SQLite数据库的功能集中到一个库中,以提供更容易使用的API并允许在编译时进行类型检查。同时,它还支持LiveData、RxJava和Kotlin协程等异步编程库的集成,可帮…

    database 2023年5月19日
    00
  • golang日志框架之logrus的使用

    好的。 一、介绍 logrus是一个Golang的优秀日志框架,可以同时输出不同的日志等级和格式,支持hook机制,可以方便地配合其他服务使用,例如日志远程推送、邮件提醒等。 在这篇文章中,我们将讨论如何使用logrus。我们将了解基本的概念、常用的用法,并讲解一些常用的hook机制。 二、安装 你可以使用如下命令安装logrus: go get githu…

    database 2023年5月22日
    00
  • MySQL查询缓存优化示例详析

    下面我将为你详细讲解“MySQL查询缓存优化示例详析”的完整攻略。 简介 MySQL查询缓存是一个很重要的特性,能够提高查询性能,但是由于其设计限制,会存在很多性能问题。本文将会详细介绍MySQL查询缓存的性能瓶颈以及如何进行优化。 MySQL查询缓存的性能瓶颈 MySQL查询缓存有以下几个性能瓶颈: 查询缓存是基于查询语句进行缓存的,如果两个查询语句不完全…

    database 2023年5月19日
    00
  • redis 哨兵集群原理及部署 Redis哨兵模式(sentinel)学习总结及部署记录(主从复制、读写分离、主从切换)

    复制粘贴自: https://www.cnblogs.com/kevingrace/p/9004460.html 请点击此链接查看原文. 仅供本人学习参考, 如有侵权, 请联系删除, 多谢! Redis的集群方案大致有三种:1)redis cluster集群方案;2)master/slave主从方案;3)哨兵模式来进行主从替换以及故障恢复。 一、sentin…

    Redis 2023年4月11日
    00
  • oracle—SQL技巧之(一)连续记录查询sql案例测试

    下面是详细讲解“oracle—SQL技巧之(一)连续记录查询sql案例测试”的完整攻略。 标题 文章标题是“oracle—SQL技巧之(一)连续记录查询sql案例测试”,它表明这篇文章是介绍我们如何使用SQL技巧在oracle数据库中查询连续记录的。 简介 在SQL查询中,有时我们需要查询连续的记录,例如查询某个时间范围内的销售记录等。本篇文章将会介绍如何使…

    database 2023年5月21日
    00
  • 数据库报错:Unknown column ‘xxx’ in ‘where clause’问题的解决过程

    当我们在使用数据库时,可能会遇到”Unknown column ‘xxx’ in ‘where clause'”这样的报错。这个错误通常意味着你的数据库表格中没有名为’xxx’的列,但是你在一个WHERE子句中引用了这个列。 如果出现这个问题,要尽快解决它,否则可能会导致数据库查询失败。以下是解决此问题的完整攻略: 理解报错信息首先,读取报错信息并理解它的意…

    database 2023年5月18日
    00
  • MySQL通用查询日志(General Query Log)

    MySQL通用查询日志(General Query Log)是用于记录MySQL服务器上所有执行的查询操作的一个日志文件。它可以帮助管理员更好地了解MySQL服务器的性能和运行状态,为优化和监控MySQL服务器提供重要信息。 MySQL通用查询日志可以包含以下信息: 执行时间:记录查询执行的开始时间和结束时间,可以帮助管理员了解查询的执行性能。 用户名和主机…

    MySQL 2023年3月10日
    00
  • SQL Server数据库连接查询和子查询实战案例

    SQL Server数据库连接查询和子查询实战案例 SQL Server中,连接查询和子查询都是常用的查询方式,可以在多个表之间进行复杂的数据查询和筛选。本文将介绍连接查询和子查询的使用方法,并且通过两个实例来演示其在实际场景中的应用。 连接查询 在多个表之间进行查询时,连接查询是一种非常常见的方式,其通过将多个表中的数据进行匹配,然后将符合条件的数据输出到…

    database 2023年5月21日
    00
合作推广
合作推广
分享本页
返回顶部