【转】【MySQL】mysql 通过bin-log恢复数据方法详解
具体的操作是通过mysqlbinlog这个指令来完成的
/mysql/bin/mysqlbinlog --database=fox --start-date="2013-01-22 5:00:00" --stop-date="2013-01-22 9:00:00" /mysql/data/mysql-bin.000001 | /mysql/bin/mysql -u root -p123456 -f
具体的参数看下名字就能明白
database:指定具体的数据库
start-date:开始时间
stop-date:结束时间
/mysql/data/mysql-bin.000001:
指定的日志文件
如果你没有备份数据的话,你就必须通过日志文件一个一个还原,记得顺序不能乱。如果你没有备份数据,日志又被部分删除的话,那么就悲剧了。因此,还原只是一种方法,最重要的还是定期备份数据。只要备份数据在,日志文件在,东西都可以解决。
同时记录一些操作日志的方法
查看所有日志:
show master logs;
当前使用的binlog文件
show binlog events g;
产生一个新的binlog日志文件
flush logs;
删除所有二进制日志,并从新开始记录
flush logs;
reset master;
这里突然有一种想法,是否每次备份完数据以后就把之前的日志清理下,这样一旦发生问题,就可以从最近的日志开始还原。这个只是我的一种想法,有什么问题请指正。
同时大家如果希望不在错误操作delete这个可以在mysql启动的时候加入-U这个参数
启动MySQL的时候加上参数 -U
-U, –safe-updates Only allow UPDATE and DELETE that uses keys.
他的作用是防止执行delete的时候没带有条件语句,如果没加上where则语句不执行。
一次完整的Mysqlbin-log日志恢复过程实例
1).创建一个表:
mysql>usetest;
mysql>createtable t1(id int);
mysql>showtables;
2).添加两行数据:
mysql>insertinto t1 values(1);
mysql>insertinto t1 values(2);
mysql>select *from t1;
3).备份现有数据(09:30):
#mysqldump -uroot-p123456 test -l -F > /tmp/test.sql
4).在备份完后再添加三行数据(记录):
mysql>insertinto t1 values(3);
mysql>insertinto t1 values(4);
mysql>insertinto t1 values(5);
5).此时突然数据库损损坏或者认为删除:
mysql>droptable t1;
6).用已备份的test.sql来恢复数据库:
#mysql -uroot-p123456 test < test.sql
7).从bin-log日志恢复:
#/usr/local/mysql/bin/mysqlbinlog–no-defaults mysql-bin.000006|more//查看bin-log日志,在我的虚力机上bin-log日志从mysql-bin.000005开始
#/usr/local/mysql/bin/mysqlbinlog--no-defaults --stop-position=”272” mysql-bin.000006 |/usr/local/mysql/bin/mysql -uroot -p123456 //恢复bin-log日志
如果你没有开启bin日志我们可参考正同方法开启
一、 Mysqlbin-log 日志
1.开启Mysqlbin-log 日志
#vi/etc/my.cnf
[client]
#password =your_password
port =3306
socket =/tmp/mysql.sock
default-character-set-utf8
.......
[mysqld]
port= 3306
socket= /var/lib/mysql/mysql.sock
log-slow-queries=mysql-slowlog
log-error=mysql.err
log=mysql.log
log-bin=mysql-bin//删除#符号
2.查看二进制文件(mysql-bin.******)
#cd/usr/local/mysql/bin/ && ls
3.查看mysqbinlog日志是否开启
mysql>showvariables like “%log-bin%;
4.与Mysqlbin-log有关的日志操作
mysql>flushlogs;//此时就会多一个最新的bin-log日志
mysql>showmaster status;//查看最后一个bin日志
mysql>resetmaster;//清空所有的bin-log日志
mysql>mysqlbinlog–no-defaults mysql-bin.******|more//查看bin-log日志
扫码关注微信公众号

原文地址:http://www.android100.org/html/201406/20/28082.html
【转】【MySQL】mysql 通过bin-log恢复数据方法详解的更多相关文章
- Mysql自增主键ID重新排序方法详解
Mysql数据库表的自增主键ID号乱了,需要重新排列. 原理:删除原有的自增ID,重新建立新的自增ID. 1,删除原有主键: ALTER TABLE `table_name` DROP `id`; 2 ...
- MySQL日志系统bin log、redo log和undo log
MySQL日志系统bin log.redo log和undo log 今人不见古时月,今月曾经照古人. 简介:日志是MySQL数据库的重要组成部分,记录着数据库运行期间各种状态信息,主要包括错误日 ...
- MySQL 5.7主从复制从零开始设置及全面详解——实现多线程并行同步,解决主从复制延迟问题!
MySQL 5.7主从复制从零开始设置及全面详解——实现多线程并行同步,解决主从复制延迟问题!2017年06月15日 19:59:44 蓝色-鸢尾 阅读数:2062版权声明:本文为博主原创文章,如需转 ...
- centos7.2环境nginx+mysql+php-fpm+svn配置walle自动化部署系统详解
centos7.2环境nginx+mysql+php-fpm+svn配置walle自动化部署系统详解 操作系统:centos 7.2 x86_64 安装walle系统服务端 1.以下安装,均在宿主机( ...
- ContentProvider数据访问详解
ContentProvider数据访问详解 Android官方指出的数据存储方式总共有五种:Shared Preferences.网络存储.文件存储.外储存储.SQLite,这些存储方式一般都只是在一 ...
- Java构造和解析Json数据的两种方法详解二
在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面接着介绍用org.json构造和解析Jso ...
- 【HANA系列】SAP HANA XS使用JavaScript数据交互详解
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA XS使用Jav ...
- JVM 运行时数据区详解
一.运行时数据区 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同数据区域. 1.有一些是随虚拟机的启动而创建,随虚拟机的退出而销毁,所有的线程共享这些数据区. 2.第二种则 ...
- Java构造和解析Json数据的两种方法详解二——org.json
转自:http://www.cnblogs.com/lanxuezaipiao/archive/2013/05/24/3096437.html 在www.json.org上公布了很多JAVA下的jso ...
随机推荐
- 【读书笔记】iOS网络-错误处理的经验法则
一,在接口契约中处理错误. 二,错误状态可能不正确. 设备模糊地确认操作是崇拜失败的.比如,移动应用发出HTTP请求以在两个账户间转账.请求被银行系统接收并正确地处理:然而,由于网络失败应答却丢失了, ...
- 配置Kotlin环境(DataBinding)
1.安装Kotlin插件 在plugin中搜索kotlin,安装两个kotlin插件,重新启动Android Studio.2.build.gradle(project level) buildscr ...
- 浅析Dagger2的使用
什么是Dagger2 Dagger是为Android和Java平台提供的一个完全静态的,在编译时进行依赖注入的框架,原来是由Square公司维护,现在由Google维护. 我们知道Dagger是一个依 ...
- ios 返回指定导航控制器
UINavigationController *navigationVC = self.navigationController; NSMutableArray *viewControllers = ...
- 开源游戏“2048”IOS移植版
简介: 这个游戏是我在今年(2014/05)课余时闲着无聊做的一个益智类小游戏,总共花了4个工作日才完成,为了游戏的效率,做了很多优化,目前在IE5以上浏览器能够流畅运行,运行时如果屏幕分辨率不兼容, ...
- Linux- Nginx简单的负载均衡(一)
这里先进行简单的nginx负载,安装nginx这里就不多说了,我们情景假设在已经安装好了nginx上: 1)查询nginx中的upstrea负载均衡模块 默认是有安装的.进入nginx源码目录中 . ...
- Sql Server之旅——第九站 看公司这些DBA们设计的这些复合索引
这一篇再说下索引的最后一个主题,索引覆盖,当然学习比较好的捷径是看看那些大师们设计的索引,看从中能提取些什么营养的东西,下面我们看 看数据库中一个核心的Orders表. 一:查看表的架构 <1& ...
- java 的常用设计模式--大话设计模式
设计模式:一个程序员对设计模式的理解:“不懂”为什么要把很简单的东西搞得那么复杂.后来随着软件开发经验的增加才开始明白我所看到的“复杂”恰恰就是设计模式的精髓所在,我所理解的“简单”就是一把钥匙开一把 ...
- DGbroker主备切换
1.检查DG是否正常 DGMGRL> show configuration; Configuration - dgc Protection Mode: MaxProtection Databas ...
- sqlite3 shell的使用
sqlite的安装 1. 首先是下载sqlite,可以该页面下载:http://www.sqlite.org/download.html 当前的最新版本为:sqlite-shell-win32-x86 ...