【MySQL】全量+增量的备份/恢复
生产环境中,有时需要做MySQL的备份和恢复工作。因MySQL是在运行过程中的,做全量备份需要时间,全量备份完成后又有数据变动,此时需要增量备份辅助。如果想恢复数据到一个空库(例如数据迁移或者上云等更换MySQL数据库的场景),基于全量备份+增量备份的数据进行恢复,可以更接近于原本的数据。
工作中曾经使用过的2种方法:
1.基于dump全量备份.sql+binlog生成增量备份sql,进行全量+增量的备份/恢复操作。
- 备份过程:
(1)dump命令,生成全量备份sql文件。

(2)查看全量备份文件.sql,注意这个信息:

(3)全量备份之后,MySQL中又有增删改操作。例如:再create一个表,并插入数据。

(4)增量备份:执行flush logs,会生成最新的增量binlog。

恢复过程:
(1)dump出来的全量备份文件.sql 和 flush出来的增量binlog 都scp拷贝到要恢复的机器上。
(2)恢复dump全量备份:mysql -uroot -p密码 数据库名 < 全量备份.sql
(3)基于binlog生成增量备份sql:mysqlbinlog --start-position=337 --database=数据库名 mysql-bin.000002 > 增量备份.sql
(4)执行恢复该增量备份sql:mysql -uroot -p密码 数据库名 < 增量备份.sql
2.基于Percona公司的xtrabackup工具,进行全量+增量的备份/恢复操作。
(1)全量备份
innobackupex --user=用户名 --password=密码 全量备份文件存放目录。
同样,期间有些增量操作,建表,增删数据等
(2)增量备份
innobackupex --user=用户名 --password=密码 --incremental 增量备份文件存放目录 --incremental-basedir=依赖的上一次全量备份或增量备份
(3)恢复日志的准备
- 增量恢复日志的准备
innobackupex --apply-log --redo-only 全量备份文件存放目录
innobackupex --apply-log --redo-only 全量备份文件存放目录 --incremental-dir=增量备份文件存放目录
- 全量恢复日志的准备
innobackupex --apply-log 全量备份文件存放目录
(4)恢复数据
关闭要恢复的数据库
/etc/init.d/mysqld stop
mv data data_old
mv undo undo_old
mv undo_log undo_log_old
mkdir -p data undo_log
innobackupex --move-back 全量备份文件存放目录
chown mysql:mysql -R data/
chown mysql:mysql -R undo_log/
/etc/init.d/mysqld start
【MySQL】全量+增量的备份/恢复的更多相关文章
- MySQL自动化(全量+增量)备份脚本
文章转自:http://www.it-hack.cn/forum.php?mod=viewthread&tid=220&extra=page%3D1 一.MySQL的日常备份方案: 全 ...
- mysql全量+增量备份脚本
cat xtrabackup_mysql.sh #!/bin/bash #title :xtrabackup_mysql.sh #description :backup mysql by using ...
- Mysql备份系列(4)--lvm-snapshot备份mysql数据(全量+增量)操作记录
Mysql最常用的三种备份工具分别是mysqldump.Xtrabackup(innobackupex工具).lvm-snapshot快照.前面分别介绍了:Mysql备份系列(1)--备份方案总结性梳 ...
- Mysql备份系列(2)--mysqldump备份(全量+增量)方案操作记录
在日常运维工作中,对mysql数据库的备份是万分重要的,以防在数据库表丢失或损坏情况出现,可以及时恢复数据. 线上数据库备份场景:每周日执行一次全量备份,然后每天下午1点执行MySQLdump增量备份 ...
- mysql全量和增量备份详解(带脚本)
在日常运维工作中,对mysql数据库的备份是万分重要的,以防在数据库表丢失或损坏情况出现,可以及时恢复数据. 下面对这种备份方案详细说明下:1.MySQLdump增量备份配置执行增量备份的前提条件是M ...
- liunx系统mysql全量备份和增量备份
前提 在互联网项目中最终还是读数据进行操作,都离不开曾删改查,那么数据是重中之重,数据库的备份就显得格外重要. 但是每次都直接导出整个数据库的sql文件,显然是不现实的.对数据库的性能影响比较 ...
- mysql全量备份与增量备份
mysql全量备份与增量备份 1.全量备份 全量备份就是把数据库中所有的数据进行备份. 备份所有库: mysqldump -uroot -p456 -S /data/3306/mysql.sock ...
- Elasticsearch 索引的全量/增量更新
Elasticsearch 索引的全量/增量更新 当你的es 索引数据从mysql 全量导入之后,如何根据其他客户端改变索引数据源带来的变动来更新 es 索引数据呢. 首先用 Python 全量生成 ...
- Mysql备份系列(3)--innobackupex备份mysql大数据(全量+增量)操作记录
在日常的linux运维工作中,大数据量备份与还原,始终是个难点.关于mysql的备份和恢复,比较传统的是用mysqldump工具,今天这里推荐另一个备份工具innobackupex.innobacku ...
随机推荐
- Maximum likelihood from incomplete data via the EM algorithm (1977)
Maximum likelihood from incomplete data via the EM algorithm (1977)
- Nothing but the key 属性全部依赖于主键 third norm form
全依赖 Designs that Violate 1NF CustomerCustomer ID First Name Surname Telephone Number123 Pooja Singh ...
- 组件的详细说明和生命周期ComponentSpecs and Lifecycle
render ReactComponent render() render() 方法是必须的. 当调用的时候,会检测 this.props 和 this.state,返回一个单子级组件.该子级组件可以 ...
- TCP/IP-ICMP-Ping-Traceroute
TCP/IP-ICMP 作者:Danbo 2015-8-22 I C M P经常被认为是I P层的一个组成部分.它传递差错报文以及其他需要注意的信息.I C M P报文通常被I P层或更高层协议( T ...
- 在js里UTF-8与GB2312的互转
js的函数如下: function GB2312UTF8() { this.Dig2Dec = function(s) { var retV = 0; if (s.length == 4) { for ...
- ubuntu166.04之Caffe安装
写在前面:之前一直在搞keras,最近由于某些需求,需要学习caffe,在此记录caffe的安装记录.默认已经安装了cuda 如果是从其他的深度学习平台迁移到Caffe,那么按照这个教程来就可以了. ...
- ZIP伪加密(deprecated)
ZIP伪加密 经过伪加密的apk,改成zip格式打开会发现里面的文件都经过了加密. APK实际上是Zip压缩文件,但是Android系统在解析APK文件时,和传统的解压压缩软件在解析Zip文件时存在差 ...
- python与c#的交互模块pythonnet
今天总结一下python与c#的交互模块pythonnet,其实微软也是有相应的解释器的,就是Ironpython,可是毕竟Ironpython还有很多东西没有从python那边继承过来,所以有时候用 ...
- bzoj2730矿场搭建——点双连通分量
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2730 首先一遍tarjan找出割点,将图缩点,这些大点中如果有只包含一个割点的,那么如果这个 ...
- PHP mysql_fetch_array与mysql_fetch_row的区别
如果你的表里面有字段a,b,c那么你用mysql_fetch_row() 就返回array(1=>a的值,2=>b的值,3=>c的值)这个时候你读数组的话,只能这样写$array[1 ...