10、mysql增量恢复实战
10.1、实验数据:
mysql> select * from test;
+----+------+------+
| id | name | age |
+----+------+------+
| 1 | lc | 20 |
| 2 | lbd | 21 |
+----+------+------+
5 rows in set (0.00 sec)
10.2、备份库:
mysqldump -uroot -p123456 --single-transaction -F --master-data=1 -R -B lc >/tmp/lc_bak.sql
10.3、对库中的数据进行修改:
mysql> update lc.test set name='lc2' where id=2;
mysql> select * from test;
+----+------+------+
| id | name | age |
+----+------+------+
| 1 | lc | 20 |
| 2 | lc2 | 21 |
+----+------+------+
10.4、误操作导致库丢失:
drop database lc;
10.5、恢复数据库:
1、停库操作(推荐),如果不锁库会导致数据一致性有问题;
1)关闭网络的方法:
[mysqld]
skip-networking
#开启该选项可以彻底关闭 MySQL 的 TCP/IP 连接方式;
2)重启mysql;
/data/3306/mysql restart
2、mysqladmin -uroot -p123456 flush-log #刷新binlog日志;
mysql -uroot -p123456 lc </tmp/lc_bak.sql
mysql> select * from test;
+----+------+------+
| id | name | age |
+----+------+------+
| 1 | lc | 20 |
| 2 | lbd | 21 |
+----+------+------+
10.6、增量恢复:
1、查看lc_bak.sql内容找到binlog的备份时的pos点:
CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=107;
2、导出lc库的数据:
只导出lc对应的库的binlog日志,使用-d参数,防止还原时还原所有的库,数据重复而报错,导致恢复无法进行;
mysqlbinlog -d lc /application/mysql/data/mysql-bin.000002 >/tmp/lc_add.sql
3、恢复:
mysql -uroot -p123456 lc </tmp/lc_add.sql
4、数据查看:
mysql> select * from test;
+----+------+------+
| id | name | age |
+----+------+------+
| 1 | lc | 20 |
| 2 | lc2 | 21 |
+----+------+------+
10.7、知识点补充:
指定恢复的库和恢复的位置生成sql文件:
[root@db01 data]# mysqlbinlog /application/mysql/data/mysql-bin.000014 -d lc --start-position=107 --stop-position=351 -r /tmp/lc_bin.log
#--start-position=107 --stop-position=351 :按照位置点取sql语句:
#--start-datetime='2019-2-26 13:25:28' --stop-datetime='2019-2-26 19:55:32' :按照时间点取出sql语句,是一个时间范围,比较模糊,可能一秒钟有多条的修改的语句;
#使用该方法可以跳过故障点,按要求进行恢复数据库;
#如果不给开始和结尾,开始点是binlog文件的开头,结尾点是binlog文件的结尾;
#如果只给了开头不给结尾,则结尾点是binlog文件的结尾处;
10、mysql增量恢复实战的更多相关文章
- Mysql增量恢复
mysqldump增量恢复何时需要使用备份的数据? 备份最牛逼的层次,就是永远都用不上备份.--老男孩 不管是逻辑备份还是物理备份,备份的数据什么时候需要用?===================== ...
- mysql增量恢复的一个实例操作
通过防火墙禁止web等应用向主库写数据或者锁表,让主库暂时停止更新,然后进行恢复 模拟整个场景 1.登录数据库 [root@promote 3306]# mysql -uroot -S /data/3 ...
- Mysql备份恢复方案解析
1.全量备份和增量备份 1.1全量备份 就是对现有的数据进行全部备份,之前做的备份均可舍弃,以最新的全备为基点. a.全备所有数据库 Innodb引擎: [root@leader mysql]#mys ...
- MYSQL增量备份与恢复
vim /etc/my.cnf在[mysqld]下添加max_binlog_size = 1024000 //二进制日志最大1M 要进行mysql的增量备份,首先要开启二进制日志功能方法一:在/etc ...
- 【转】mysql增量备份恢复实战企业案例
来源地址:http://seanlook.com/2014/12/05/mysql_incremental_backup_example/ 小量的数据库可以每天进行完整备份,因为这也用不了多少时间,但 ...
- innobackupex做MySQL增量备份及恢复【转】
创建备份用户 mysql> grant process,reload,lock tables,replication client on *.* to 'backup'@'localhost' ...
- (转)通过MySQL复制线程SQL_Thread加快增量恢复binlog
数据回档常常是使用全量备份+binlog增量实现的.而数据量很大的情况下,增量恢复binlog一直是一个苦恼的问题,因为恢复binlog速度十分慢,并且容易出错. 恢复binlog文件一般有两种方法: ...
- 十、linux-mysql下的mysql数据库增量恢复
1.全量备份 全量数据就是数据库中所有的数据,全量备份就是把数据库中所有的数据进行备份. 备份所有库: mysqldump -uroot -ppoldboy -S /data/3306/mysql.s ...
- 9.11、mysql增量备份和增量恢复介绍
1.增量备份: 增量数据是从上次全量备份之后,更新的新数据,对于mysql来说,binlog日志就是mysql的增量数据: (1)按天进行备份: 周一00点全量备份 周二00点全量备份 ...... ...
随机推荐
- S3待机 S4休眠
https://hceng.cn/2018/01/18/Linux%E7%94%B5%E6%BA%90%E7%AE%A1%E7%90%86/ 1.1系统睡眠模型Suspend On (on) S0 - ...
- suse11sp3、suse12 安装 zabbix-agent
1.添加repo源 suse11SP3zypper addrepo http://download.opensuse.org/repositories/server:/monitoring/SLE_1 ...
- 实例:使用playbook实现httpd安装、配置、以及虚拟主机的配置
一.安装环境配置 1.在控制节点给受控主机配置本地仓库文件 [root@ansible ~]# vim /etc/yum.repos.d/dvd.repo [AppStream] name=appst ...
- 国产龙芯3A3000处理器评测:与英特尔差距明显
国产龙芯3A3000处理器评测:与英特尔差距明显 国产龙芯3A3000处理器评测:与英特尔差距明显 新浪财经APP缩小字体放大字体收藏微博微信分享579 新酷产品第一时间免费试玩,还有众多优质达人分享 ...
- Java lambda 表达式详解(JDK 8 新特性)
什么是 lambda 表达式 lambda 表达式(拉姆达表达式)是 JAVA 8 中提供的一种新的特性,它使 Java 也能进行简单的"函数式编程". lambda 表达式的本质 ...
- C语言编程 菜鸟练习100题(01-10)
[练习1]输出 "Hello, World!" 0. 题目: 输出 "Hello, World!" 1. 分析: 使用 printf() 输出 "He ...
- mysql数据库-备份与还原实操
目录 备份工具 1 基于 LVM 的快照备份(几乎热备) 2 数据库冷备份和还原 3 mysqldump备份工具 3.1 实战备份策略 3.1.1 全备份 3.1.2 分库分表备份 3.2 mysql ...
- GO学习-(23) Go语言操作MySQL + 强大的sqlx
Go语言操作MySQL MySQL是业界常用的关系型数据库,本文介绍了Go语言如何操作MySQL数据库. Go操作MySQL 连接 Go语言中的database/sql包提供了保证SQL或类SQL数据 ...
- openresty 学习笔记二:获取请求数据
openresty 学习笔记二:获取请求数据 openresty 获取POST或者GET的请求参数.这个是要用openresty 做接口必须要做的事情.这里分几种类型:GET,POST(urlenco ...
- THINKPHP_(7)_THINKPHP6的controller模型接收前端页面通过ajax返回的数据,会因为一个div而失败
这个随笔比较短. 同样的前端页面代码,修改了一下,后端模型接收不到数据. 利用beyond compare软件比对两个前端文件, 发现多了一个</div>标签. 多了一个</div& ...