首页 > 数据库 >mysql增量备份

mysql增量备份

时间:2023-10-23 11:56:21浏览次数:39  
标签:二进制 备份 增量 mysql MySQL 日志

一、备份计划
以下是MySQL数据库增量备份的一般计划:

创建完整备份:在自动备份计划开始前,先创建一次完整备份。这个备份将包含所有数据和表结构。
保存增量备份:在每次备份计划完成后,保存增量备份。这个备份将包含从完整备份之后的所有更改操作。
定期清理备份:为了节约磁盘空间,定期清理过期的备份。通常,只保留最近的几个完整备份和增量备份。
确保备份的可恢复性:请确保每个备份都可以成功还原数据库。可以测试还原备份的过程,以确保备份可靠。
自动化备份:将备份计划自动化,以确保数据库始终有可用的备份。可以使用MySQL自带的定时任务或第三方备份工具来实现自动备份。
定期监控备份:定期检查备份是否成功,并确保备份文件存在于指定的位置。

二、备份方案
MySQL增量备份可以通过使用MySQL日志进行增量备份,MySQL的日志有三种类型:二进制日志、事务日志和错误日志。其中二进制日志是MySQL的主要日志,它包含了MySQL的所有数据变化操作,以二进制格式保存在磁盘上。通过备份二进制日志,可以实现MySQL的增量备份。

下面是MySQL增量备份的步骤:

1.开启MySQL的二进制日志功能:

在MySQL配置文件my.cnf中设置以下参数:
[mysql]
log-bin=mysql-bin
server-id=1

其中log-bin参数指定二进制日志的文件名前缀,server-id参数指定MySQL实例的唯一标识。


2.创建一个备份用户:

CREATE USER 'backup'@'localhost' IDENTIFIED BY 'your_password';
GRANT REPLICATION CLIENT, REPLICATION SLAVE, PROCESS, SUPER, RELOAD ON *.* TO 'backup'@'localhost';

其中backup是备份用户的名字,your_password是备份用户的密码。这个用户需要具有以下权限:REPLICATION CLIENT、REPLICATION SLAVE、PROCESS、SUPER和RELOAD。

3.备份全量数据:

使用mysqldump命令备份MySQL的全量数据到一个文件中:

mysqldump -u root -P 3306 -h 127.0.0.1 -p123456 ks_flask > ks_flask.sql

其中localhost是MySQL所在的主机名或IP地址,backup是备份用户的用户名,your_database是需要备份的数据库名。

4.备份当前的二进制日志文件位置: 

在执行首次全量备份后,记录当前的二进制日志文件名和位置,以便之后在备份时只捕获新的数据。

SHOW MASTER STATUS;

这会返回当前的二进制日志文件名(File)和位置(Position)。你可以记录这些值以备份。


5.执行增量备份: 

使用 mysqlbinlog 命令执行增量备份,包括 --start-datetime 和 --stop-datetime 参数来指定时间范围,以及 --start-position 参数来指定上次备份结束的二进制日志位置。

mysqlbinlog --start-datetime='2023-10-23 00:00:00' --stop-datetime='2023-10-23 23:59:59' --start-position=[上次备份结束的位置] mysql-bin.000001 > incr_backup_2023-10-23.sql

其中 [上次备份结束的位置] 是你上次备份结束时记录的二进制日志位置。

6.记录新的二进制日志文件位置: 
在执行增量备份后,使用 SHOW MASTER STATUS 查询来记录新的二进制日志文件名和位置。这将成为下次增量备份的起始位置。
SHOW MASTER STATUS;

7.定期执行增量备份: 根据你的需求,每天定期执行增量备份,确保备份包含了上一天的更改。在自动化备份过程中,你可以编写脚本来定期记录和更新二进制日志的位置,以便顺利执行增量备份。这确保了备份文件的持续完整性。

当 mysql-bin.00001 文件发生变化时,你只需在第4步中再次记录新的二进制日志文件名和位置,然后在第3步中使用新的起始位置来继续增量备份。这将捕获从上次备份结束到当前的新更改。

8.还原备份数据:

将全量备份和增量备份合并并还原到MySQL中:

mysql -hlocalhost -uroot -p your_database < ks_flask.sql
mysql -hlocalhost -uroot -p your_database < incr_backup_2023-10-23.sql 

其中localhost是MySQL所在的主机名或IP地址,root是MySQL管理员的用户名,your_database是需要还原的数据库名。

如果有多个增量备份,则需要依次按照备份时间,进行多次增量备份还原。

三、备份时间安排

每周进行一次全量备份,保存到NAS
每天进行一次增量备份,保存到NAS
定期检查备份的可用性和完整性,确保备份可以成功恢复数据。

 

标签:二进制,备份,增量,mysql,MySQL,日志
From: https://www.cnblogs.com/Leonardo-li/p/17782078.html

相关文章

  • mysql导入.cvs
    workbench新建1张表,没有import按钮,原因是没有设置主键将一个字段设置为主键后,即可导入数据将要导入的数据文件改为utf-8的格式,使用记事本打开查看选择文件选择数据库表查看字段与数据是否对应开始导入......
  • mysql case when then else 语法
    update`badges`set`cat_point`=CASEWHENlevel>=1THENPOW(2,`level`-1)ELSE0ENDwherenamenotlike'%Steam%'; if level>=1:  cat_point=POW(2,`level`-1)else:  cat_point=0......
  • MYSQL语句
    MySQL常用基础语句cmd登录mysql-hlocalhost-uroot-pSHOW语句返回可用数据库列表showdatabases;返回当前选择数据库内可用表的列表showtables;显示表中的所有列(xxx:表名)showcolumnsfromxxx;ordescribexxx;显示服务器状态信息showstatus;显示创建特定......
  • MYSQL
    什么是事务事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消。也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个都不做。事务的结束有两种,当事务中的所以步骤全部成功执行时,事务提交。如果其中一个步骤失败,......
  • MySQL分享
    本次分享主要涉及InnoDB如何在磁盘上保存数据InnoDB表空间结构:介绍了InnoDB表文件中的一些组件,比如段、区、页、行记录。除了告诉你怎样存之外,更重要的是希望解释为什么要这样索引页结构:数据以及索引都存在于索引页中,介绍索引页如何组织,当数据删除、更新时会发生啥索引分裂、......
  • MySQL存储引擎
    showengines;查看支持的存储引擎。mysql表的存储引擎:InnoDBmyISAMMemoryMRG_MYISAMarchivefederated,CSV,BLACKHOLE1、InnoDB支持事务和外键:InnoDB具有事务,支持4个事务隔离级别,回滚,崩溃修复能力和多版本并发的事务安全,包括ACID。如果应用中需要执行大量的INSER......
  • mysql8解决null, message from server: “Host is not allowed to connect to this My
    1.登录mysql(注意:账号密码不包括,-u和-p)mysql-uroot-proot2.切换到mysql库:usemysql;3.查询root用户的host值:selectuser,hostfromuser;如果host的值是localhost,说明只支持本地连接,不能远程登录。4.更改host的值为%:updateusersethost='%'whereuser='root';5.刷......
  • MySQL中有哪几种锁,列举一下;意向锁是什么?
    一、MySQL中有哪几种锁如果按锁粒度划分,有以下3种:表锁:开销小,加锁快;锁定力度大,发生锁冲突概率高,并发度最低;不会出现死锁。行锁:开销大,加锁慢;会出现死锁;锁定粒度小,发生锁冲突的概率低,并发度高。页锁:开销和加锁速度介于表锁和行锁之间;会出现死锁;锁定粒度介于表锁和行锁之间,并发度......
  • 生产环境rman备份脚本
    概述 RMAN(RecoveryManager)是Oracle数据库的备份和恢复工具。它是Oracle提供的官方工具,专门用于管理数据库备份、还原和恢复操作。内容#!/bin/bash#source/home/orace/.bash_profileexportORACLE_SID=oa2exportDATE=`date+%F`exportBACK_DIR='/u01/oa_backup/'mkdi......
  • (windows)怎么将iTunes的备份放到其他磁盘
    正确修改itunes备份文件路径方法 1,删除C:\Users\你的用户名\AppData\Roaming\AppleComputer里的MobileSync文件夹2,在想存放iTunes备份的盘(如D、F盘)新建一个文件夹,命名为‘’MobileSync‘’3,按住键盘【Win+R】呼出“运行”菜单,输入“CMD”字符4,复制粘贴以下字符:mklink/j"C:......