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点全量备份 ...... ...
随机推荐
- windows下安装python 且 安装pip
1.安装python 第一步,windows下面的Python安装一般是通过软件安装包安装而不是命令行,所以我们首先要在Python的官方主页上面下载最新的Python安装包. 下载地址是:http ...
- echo "This is line $LINENO"返回行号
echo "This is line $LINENO"返回行号 LINENO 变量LINENO返回它在脚本里面的行号. #!/bin/bash echo "This is ...
- python发送钉钉消息
import requests import time import hashlib import hmac import base64 import re def SendMessage(messa ...
- bug修复
bug严重级别 bug个数 bug修复率 上个版本的bug修复率 和arm对比 arm已修复
- C语言程序设计#成绩查询系统
学生成绩管理系统 [注释]:请点赞,好人一生平[yi]安[wo]. #codeblocks程序下编写 #include<stdio.h>#include<stdlib.h>// ...
- Modbus RTU CRC校验码计算方法
在CRC计算时只用8个数据位,起始位及停止位,如有奇偶校验位也包括奇偶校验位,都不参与CRC计算. CRC计算方法是: 1. 加载一值为0XFFFF的16位寄存器,此寄存器为CRC寄存器. 2. ...
- 行业资讯 | Android WebView 致安卓应用闪退,mPaaS 助你规避这波 Bug
根据外媒 9to5 Google 报道,3 月 23 日几个小时内,大量安卓用户遇到一些安卓应用连续闪退的情况,有人发现卸载安卓系统 WebView 就可以停止闪退.目前,谷歌已经发布了应用崩溃问题的 ...
- Python3.x 基础练习题100例(71-80)
练习71: 题目: 编写input()和output()函数输入,输出5个学生的数据记录. 程序: N = 5 # stu # num : string # name : string # score ...
- 用virtualenv建立Python独立开发环境
1.用pip安装virtualenv sudo apt-get install python-virtualenv 2.1 创建python2的虚拟环境,进入要创建虚拟环境的目录下,我是放在/home ...
- 如何查看Oracle SID即instance_name 和 dbname区别
SID 和 instance_name是一个实例名字db_name 是数据库名字搞清两个概念,数据库和实例 实例:实例是数据库启动时初始化的一组进程和内存结构 数据库:数据库则指的是用户存储数据的一 ...