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日

相关文章

  • springboot项目启动后执行方法的三种方式

    让我们开始讲解“springboot项目启动后执行方法的三种方式”。 1. CommandLineRunner 和 ApplicationRunner 接口 CommandLineRunner 和 ApplicationRunner 接口可以让我们在 Spring Boot 项目启动后执行一些特定的任务,这两个接口都只有一个方法 run。区别在于,Comma…

    database 2023年5月18日
    00
  • 浅谈mysql的子查询联合与in的效率

    浅谈mysql的子查询联合与in的效率 在MySQL中,我们经常使用子查询(Subquery)联合或In运算符来实现一些查询操作。但在使用时,我们要注意他们的效率问题。本文就对子查询联合与In运算符的效率进行分析。 子查询联合 子查询联合指的是在一个SELECT语句中,使用多个子查询语句,通过UNION或UNION ALL运算符进行合并。这种方式需要进行多次…

    database 2023年5月22日
    00
  • 安装redis执行make时出错及解决方案

    前言:安装过redis,在非正常的情况下将redis的安装包直接删除了,再次安装报错: cd src && make all make[1]: Entering directory ‘/xx/xx/redis-x.x.x/src’          CC adlist.o /bin/sh: cc: command not found make…

    Redis 2023年4月12日
    00
  • MongoDB 和 MariaDB 的区别

    MongoDB 和 MariaDB 都是现代化的数据库解决方案,但在很多方面它们有所不同。下面是 MongoDB 和 MariaDB 的一些区别: 1. 数据存储方式 MariaDB 使用传统的关系型数据库存储方式,也就是使用表格来存储数据。而 MongoDB 采用的是文档存储方式,数据以文档的形式存储,这些文档类似于 JSON 或 BSON 格式。文档中会…

    database 2023年3月27日
    00
  • thinkPHP5实现数据库添加内容的方法

    下面是thinkPHP5实现数据库添加内容的方法的完整攻略: 1. 创建数据库 首先需要在数据库中创建一个表来存储数据。可以使用MySQL等数据库管理工具来创建表,也可以使用thinkPHP5提供的命令行工具来创建。这里以命令行工具为例,假设我们要创建一张名为users的用户表,包含id、name、age三个字段,那么可以执行如下命令: php think …

    database 2023年5月18日
    00
  • Redis – zset的应用场景

    夹胡碰关注 0.0922021.01.03 21:34:39字数 182阅读 1,123 因为Rediszset底层的数据结构是skipList,最底层链表有序,所有可以有以下使用场景: 1. 延时队列 score作为时间戳,自动按照时间最近的进行排序,启一个线程持续poll并设置park时间,完成延迟队列的设计,可参考Executors.newSchedu…

    Redis 2023年4月11日
    00
  • MySQL explain根据查询计划去优化SQL语句

    当我们执行 MySQL 数据库中一条SELECT语句时,MySQL 根据查询语句的结构和条件,生成一个查询计划,然后根据该计划来执行查询操作。通过执行 explain 命令,我们可以获取这个查询计划,通过这个查询计划,我们可以比较容易地找出 SQL 查询语句存在的性能瓶颈,从而进一步优化 SQL 语句,提高查询效率。 下面是根据查询计划优化SQL语句的完整攻…

    database 2023年5月19日
    00
  • linux中mysql密码修改

    这个方式是你可以在知道密码的情况下进行密码修改,也可以在不知道密码的情况下进行密码修改 重置密码第一步: #vim /etc/my.cnf(注:windows下面修改的是my.ini) 在文档内搜索mysqld定位到【mysqld】文本段 在【mysqld】后面的任意一行添加“skip-grant-tables”用来跳过密码验证的过程。 第二部:重启mysq…

    MySQL 2023年4月12日
    00
合作推广
合作推广
分享本页
返回顶部