关键技术,数据库产生的二进制文件,在主库就是binlog在从库就是relay-log,用最新的物理备份可以新启动个新实例,可以模拟个从库,把主库的binlog复制到新的数据库实例上,利用主从复制和物理备份可以恢复到误操作前的数据
具体操作命令如下:
环境:
192.168.214.89 生产库
192.168.214.90 新数据库
1、在192.168.214.89上物理备份
innobackupex --defaults-file=/application/mysql56/etc/my.cnf --no-timestamp --user=root --password=123456 --host=192.168.214.89 --port=5621 --parallel=5 /data0/bak/full56
2、在192.168.214.89上多创建几个表,模拟业务增量
mysql> use employees;
mysql> create table employees_test as select * from employees;
Query OK, 300024 rows affected (7.18 sec)
Records: 300024 Duplicates: 0 Warnings: 0
mysql> insert into employees_test select * from employees_test;
Query OK, 300024 rows affected (5.19 sec)
Records: 300024 Duplicates: 0 Warnings: 0
mysql> insert into employees_test select * from employees_test;
Query OK, 600048 rows affected (7.97 sec)
Records: 600048 Duplicates: 0 Warnings: 0
#模拟binlog日志切换
mysql> flush logs;
Query OK, 0 rows affected (0.80 sec)
mysql> insert into employees_test select * from employees_test;
Query OK, 1200096 rows affected (25.22 sec)
Records: 1200096 Duplicates: 0 Warnings: 0
mysql> create table employees_test1 as select * from employees_test;
Query OK, 2400192 rows affected (59.35 sec)
Records: 2400192 Duplicates: 0 Warnings: 0
mysql> create table employees_test2 as select * from employees;
Query OK, 300024 rows affected (9.20 sec)
Records: 300024 Duplicates: 0 Warnings: 0
mysql> create table employees_test3 as select * from employees;
Query OK, 300024 rows affected (10.78 sec)
Records: 300024 Duplicates: 0 Warnings: 0
mysql> create table employees_test4 as select * from employees;
Query OK, 300024 rows affected (11.17 sec)
Records: 300024 Duplicates: 0 Warnings: 0
mysql> flush logs;
Query OK, 0 rows affected (0.49 sec)
mysql> create table employees_test5 as select * from employees;
Query OK, 300024 rows affected (10.67 sec)
Records: 300024 Duplicates: 0 Warnings: 0
mysql> flush logs;
Query OK, 0 rows affected (0.18 sec)
mysql> create table employees_test6 as select * from employees;
Query OK, 300024 rows affected (9.42 sec)
Records: 300024 Duplicates: 0 Warnings: 0
mysql> flush logs;
Query OK, 0 rows affected (0.31 sec)
mysql> create table employees_test7 as select * from employees;
Query OK, 300024 rows affected (8.83 sec)
Records: 300024 Duplicates: 0 Warnings: 0
mysql> create table employees_test8 as select * from employees;
Query OK, 300024 rows affected (9.83 sec)
Records: 300024 Duplicates: 0 Warnings: 0
查看数据库一共有多少个表
mysql> show tables;
+---------------------+
| Tables_in_employees |
+---------------------+
| departments |
| dept_emp |
| dept_manager |
| employees |
| employees_test |
| employees_test1 |
| employees_test2 |
| employees_test3 |
| employees_test4 |
| employees_test5 |
| employees_test6 |
| employees_test7 |
| employees_test8 |
| salaries |
| titles |
+---------------------+
15 rows in set (0.00 sec)
mysql> drop database employees;
Query OK, 15 rows affected (4.00 sec)
为了查找方便,误操作后切换日志
mysql> flush logs;
Query OK, 0 rows affected (0.35 sec)
3、恢复备份文件
innobackupex --defaults-file=/application/mysql56/etc/my.cnf --parallel=5 --apply-log /data0/bak/full56
4、在192.168.214.90上新安装个MySQL实例,启动新的MySQL实例,看启动是否成功,有异常的话,看错误日志解决,关闭MySQL数据库
5、把89恢复完的备份文件scp到90新安装的MySQL实例的数据目录下,启动数据库,让90成为一个从库
# cd /data0/bak/full56
# chown mysql:mysql * -R
mysql> CHANGE MASTER TO MASTER_HOST='192.168.1.88'; # MASTER_HOST可以随便指定
完了关闭数据库
6、把89的binlog文件scp到90新安装的MySQL实例的数据目录下,删除相关的文件,启动数据库
# scp mysql-bin.* 192.168.214.90:/data0/mysql/mysql56/var
# rm -rf mysql-bin.index
# rename mysql-bin relay-log mysql-bin.*
# ls ./relay-log.0* > relay-log.index
7、在主库上解析误操作前的binlog信息
# /application/mysql56/bin/mysqlbinlog mysql-bin.000042 > /tmp/42.sql
vi /tmp/42.sql
。。。。。。。。。。。。。。。。。。
# at 16494555
#181026 9:28:38 server id 19289 end_log_pos 16494586 CRC32 0xedfa848b Xid = 11451753
COMMIT/*!*/;
# at 16494586
#181026 9:29:55 server id 19289 end_log_pos 16494693 CRC32 0x8c072efe Query thread_id=3816657 exec_time=4 error
_code=0
SET TIMESTAMP=1540517395/*!*/;
drop database employees
/*!*/;
。。。。。。。。。。。。。。。。。
7、查看备份时候的binlog信息
# catxtrabackup_binlog_info
mysql-bin.000039 32987250
8、在90上做恢复
mysql> change master to relay_log_file='relay-log.000039',relay_log_pos=32987250;
Query OK, 0 rows affected (0.05 sec)
mysql> START SLAVE until RELAY_LOG_FILE = 'relay-log.000042', RELAY_LOG_POS = 16494555;
Query OK, 0 rows affected (0.04 sec)
查看验证表是否恢复正确
mysql> use employees;
Database changed
mysql> show tables;
+---------------------+
| Tables_in_employees |
+---------------------+
| departments |
| dept_emp |
| dept_manager |
| employees |
| employees_test |
| employees_test1 |
| employees_test2 |
| employees_test3 |
| employees_test4 |
| employees_test5 |
| employees_test6 |
| employees_test7 |
| employees_test8 |
| salaries |
| titles |
+---------------------+
15 rows in set (0.00 sec)
再把employees数据库备份出来导入到192.168.214.89上
|
检测语言
世界语
中文简体
中文繁体
丹麦语
乌克兰语
乌兹别克语
乌尔都语
亚美尼亚语
伊博语
俄语
保加利亚语
信德语
修纳语
僧伽罗语
克罗地亚语
冰岛语
加利西亚语
加泰罗尼亚语
匈牙利语
南非祖鲁语
卡纳达语
卢森堡语
印地语
印尼巽他语
印尼爪哇语
印尼语
古吉拉特语
吉尔吉斯语
哈萨克语
土耳其语
塔吉克语
塞尔维亚语
塞索托语
夏威夷语
威尔士语
孟加拉语
宿务语
尼泊尔语
巴斯克语
布尔语(南非荷兰语)
希伯来语
希腊语
库尔德语
弗里西语
德语
意大利语
意第绪语
拉丁语
拉脱维亚语
挪威语
捷克语
斯洛伐克语
斯洛文尼亚语
斯瓦希里语
旁遮普语
日语
普什图语
格鲁吉亚语
毛利语
法语
波兰语
波斯尼亚语
波斯语
泰卢固语
泰米尔语
泰语
海地克里奥尔语
爱尔兰语
爱沙尼亚语
瑞典语
白俄罗斯语
科萨
科西嘉语
立陶宛语
索马里语
约鲁巴语
缅甸语
罗马尼亚语
老挝语
芬兰语
苏格兰盖尔语
苗语
英语
荷兰语
菲律宾语
萨摩亚语
葡萄牙语
蒙古语
西班牙语
豪萨语
越南语
阿塞拜疆语
阿姆哈拉语
阿尔巴尼亚语
阿拉伯语
韩语
马其顿语
马尔加什语
马拉地语
马拉雅拉姆语
马来语
马耳他语
高棉语
齐切瓦语
|
|
世界语
中文简体
中文繁体
丹麦语
乌克兰语
乌兹别克语
乌尔都语
亚美尼亚语
伊博语
俄语
保加利亚语
信德语
修纳语
僧伽罗语
克罗地亚语
冰岛语
加利西亚语
加泰罗尼亚语
匈牙利语
南非祖鲁语
卡纳达语
卢森堡语
印地语
印尼巽他语
印尼爪哇语
印尼语
古吉拉特语
吉尔吉斯语
哈萨克语
土耳其语
塔吉克语
塞尔维亚语
塞索托语
夏威夷语
威尔士语
孟加拉语
宿务语
尼泊尔语
巴斯克语
布尔语(南非荷兰语)
希伯来语
希腊语
库尔德语
弗里西语
德语
意大利语
意第绪语
拉丁语
拉脱维亚语
挪威语
捷克语
斯洛伐克语
斯洛文尼亚语
斯瓦希里语
旁遮普语
日语
普什图语
格鲁吉亚语
毛利语
法语
波兰语
波斯尼亚语
波斯语
泰卢固语
泰米尔语
泰语
海地克里奥尔语
爱尔兰语
爱沙尼亚语
瑞典语
白俄罗斯语
科萨
科西嘉语
立陶宛语
索马里语
约鲁巴语
缅甸语
罗马尼亚语
老挝语
芬兰语
苏格兰盖尔语
苗语
英语
荷兰语
菲律宾语
萨摩亚语
葡萄牙语
蒙古语
西班牙语
豪萨语
越南语
阿塞拜疆语
阿姆哈拉语
阿尔巴尼亚语
阿拉伯语
韩语
马其顿语
马尔加什语
马拉地语
马拉雅拉姆语
马来语
马耳他语
高棉语
齐切瓦语
|
|
|
|
|
|
文本转语音功能仅限200个字符
- 烂泥:通过binlog恢复mysql数据库
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 在上一篇文章,我们讲解了有关mysql的binlog日志的基础知识.这篇文章,我们来讲解如何通过mysql的binlog日志来恢复数据库. 在使用bin ...
- 一个简单的binlog恢复测试
日常的数据备份及恢复测试,是DBA工作重中之重的事情,所以要做好备份及测试,日常的备份常见有mysqldump+binlog备份.xtrabackup+binlog备份,无论那一种,几乎都少不了对bi ...
- 从xtrabackup备份恢复单表
目前对MySQL比较流行的备份方式有两种,一种上是使用自带的mysqldump,另一种是xtrabackup,对于数据时大的环境,普遍使用了xtrabackup+binlog进行全量或者增量备份,那么 ...
- 从xtrabackup备份恢复单表【转】
目前对MySQL比较流行的备份方式有两种,一种上是使用自带的mysqldump,另一种是xtrabackup,对于数据时大的环境,普遍使用了xtrabackup+binlog进行全量或者增量备份,那么 ...
- 烂泥:通过binlog恢复mysql备份之前的数据
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 上一篇文章,我们讲解了如何通过mysql的binlog日志恢复mysql数据库,文章连接为<烂泥:通过binlog恢复mysql数据库>.其 ...
- rman恢复误删除的一张表(不完全恢复)
恢复误删除的一张表可以使用很多方法,如日志挖掘.闪回等,rman恢复(不完全恢复)肯定不是最好的,也不建议用, 现在我们只是演示一下这种恢复. 1 RMAN备份数据库 2创建测试表 3查看此时的SCN ...
- MySQL的binlog恢复(Windows下)
前言 在最近的工作中,由于自己粗(zuo)心(si)误update操作导致几百行的数据出现错误,在心急如焚的同时(那时候我竟然不知道除了备份之后还有binlog日志恢复)立马查资料学习binlog的恢 ...
- Mysql使用binlog恢复数据解决误操作问题的两种方法
为保证没有其他参数配置影响,重新安装配置了一台最小化安装的CentOS7虚拟机 1. 基础知识
安装mysql5.6数据库Mysql binlog初步理解 2. 配置mysql 开启binlog.修 ...
- mysql利用binlog恢复数据详细例子
模拟数据恢复的案例 有些时候脑瓜就会短路,难免会出错 场景:在生产环境中,我们搭建了mysql主从,备份操作都是在从备份数据库上 前提:有最近一天或者最近的全备 或者最近一天相关数据库的备份 最重要的 ...
随机推荐
- Hdu 5285 wyh2000 and pupil (bfs染色判断奇环) (二分图匹配)
题目链接: BestCoder Round #48 ($) 1002 题目描述: n个小朋友要被分成两班,但是有些小朋友之间是不认得的,所以规定不能把不认识的小朋友分在一个班级里面,并且一班的人数要比 ...
- 用Movie显示gif(2)GifView
1,类 import android.annotation.SuppressLint; import android.content.Context; import android.content.r ...
- IIS网站部署步骤以及常见异常解决方案
一. 简述 如果VS调试代码每次都使用浏览器打开,修改脚本和样式等还可以刷新页面显示最新修改,但是修改后台代码的话就需要停止调试再重新使用浏览器打开才能显示后台的最新修改,就比较麻烦.这里推荐附加到I ...
- Spring.Net学习笔记(3)-创建对象
一.开发环境 编译器:VS2013 .Net版本:.net framework4.5 二.涉及程序集 Spring.Core.dll:1.3 Common.Logging 三.开发过程 1.项目结构 ...
- Mysql动态查询
if条件查询 格式: <if test=”条件判断”> 添加到sql的语句 </if> where标签 简化SQL语句中WHERE条件判断 智能处理and和or 如果使用几个i ...
- LN : leetcode 241 Different Ways to Add Parentheses
lc 241 Different Ways to Add Parentheses 241 Different Ways to Add Parentheses Given a string of num ...
- CF861B Which floor?
思路: 暴力枚举. 实现: #include <bits/stdc++.h> using namespace std; int n, m, x, y; bool check(int x, ...
- WEB前端响应式布局之BootStarp使用
1.Bootstrap简介:1. 概念: 一个前端开发的框架,Bootstrap,来自 Twitter,是目前很受欢迎的前端框架.Bootstrap 是基于 HTML.CSS.JavaScript 的 ...
- CAD梦想看图6.0安卓版 20181022更新
下载地址: http://www.mxdraw.com/ndetail_10109.html 1. 保存上次的文件浏览位置和绘制颜色 2. 调整工具条按钮位置和文字 3. 增加测量距离和面积时的捕捉功 ...
- 去重 取最大的一条sql
select T.BILL_CODE,t.SCAN_TYPE,t.PIECE,SCAN_SITE,SCAN_MAN, row_number() over(partition by t.bill_cod ...