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日

相关文章

  • mysqldump备份还原和mysqldump导入导出语句大全详解

    mysqldump备份还原和mysqldump导入导出语句大全详解 1. mysqldump备份 1.1 备份单个数据库 使用以下命令备份单个数据库: mysqldump -h localhost -u root -p database_name > backup_file.sql 其中,localhost代表MySQL服务器的地址,root是数据库用…

    database 2023年5月22日
    00
  • redis增删改查

    一、启动   1、服务端启动     redis-server   2、客户端启动     (1)redis-cli  不支持中文     (2)redis-cli –raw  支持中文   3、运行测试命令     ping     返回PONG则代表连通 二、切换数据库   1、切换数据库     select n     redis一共有15个数据库…

    Redis 2023年4月12日
    00
  • Java多线程事务回滚@Transactional失效处理方案

    Java多线程事务回滚@Transactional失效处理方案攻略 背景 在Java的开发中,我们经常需要处理多线程事务的情况。当某个事务遇到异常需要回滚时,可是@Transactional注解却无法生效,造成数据不一致的风险。本文将介绍一些处理方案,以帮助你在多线程事务中处理好回滚问题。 解决方案 方案一:手动控制事务 对于无法通过@Transaction…

    database 2023年5月21日
    00
  • MySql8.0 安装重要的两步。

    1.去官网下载mysql社区版 windows安装包。https://dev.mysql.com/downloads/windows/installer/8.0.html   https://dev.mysql.com/downloads/         2.在安装包 安装的过程中,有一步就是启动mysql 会失败:             然后修改服务后…

    MySQL 2023年4月13日
    00
  • redis requires ruby version2.2.2的解决方案

    针对“redis requires ruby version2.2.2”的解决方案,以下是完整攻略及两条示例说明: 问题描述 当我们在使用 Redis 的某些功能时,可能会出现以下错误提示: redis requires Ruby version 2.2.2 or newer. 这是因为 Redis 在某些操作时需要运行在指定版本的 Ruby 环境下,而当前…

    database 2023年5月22日
    00
  • Go实现简单的数据库表转结构体详解

    Go实现简单的数据库表转结构体详解 简介 在Go开发中,我们经常需要与数据库打交道。当我们拿到一张数据库表的时候,如何快速地将其转换为对应的struct呢?这里介绍一个简单的方法,通过使用第三方工具实现表结构的转换。 工具介绍 xo是一个功能强大且易于使用的Go ORM和代码生成工具。它可以通过连接到现有数据库并运行一组命令来生成Go语言代码,其中包括 st…

    database 2023年5月22日
    00
  • SQL 创建分隔列表

    我们来详细讲解SQL如何创建分隔列表。创建分隔列表可以将多个值用某个分隔符隔开,例如将多个标签用逗号分隔开来。我们可以用如下的SQL代码实现: SELECT GROUP_CONCAT(tag_name SEPARATOR ‘, ‘) AS tags FROM tags; 上述代码中,我们首先使用了GROUP_CONCAT函数,这个函数可以将多个值合并成一个字…

    database 2023年3月27日
    00
  • Mysql深入了解联表查询的特点

    Mysql联表查询是指查询不止一个表格并将它们联接起来的查询。本文将为您介绍Mysql深入了解联表查询的特点。 联表查询的语法 在Mysql中,进行联表查询的语法如下: SELECT column_name(s) FROM table1 JOIN table2 ON table1.column_name = table2.column_name WHERE …

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