【转】【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 ...
随机推荐
- android 加载自定义图片并在图片上绘图
来源:毕设 关键词:Bitmap Canvas //毕设中需要自定义室内地图,并且在地图上绘制轨迹 //此处是一个测试Demo,实现图片的加载和记录手指在屏幕上的运动轨迹 图片的载入 使用系统提供的内 ...
- C#实现函数默认值和C#4.0实现默认值
static void Main(string[] args) { SayHello(); SayHello("侯志强"); Console.ReadKey(); } C#.0实现 ...
- npm常用命令小结
目录(更新于2016.09.23): 1.认识和使用NPM 2.npm包安装模式 3.npm包管理(package的安装.卸载.升级.查看.搜索.发布,其他等) npm install [-g] 本地 ...
- Sublime Text 收藏笔记
Sublime Text:初学者不知道的那些事 转载自: http://blog.jobbole.com/23949/
- ADO.Net(四)——扩展属性和配置文件应用
一.扩展属性 处理:有外键关系时将代号化信息处理成原始文字,让用户可看懂的(粗略解释) 利用扩展属性 如:Info表中的民族列显示的是民族代号处理成Nation表中的民族名称 需要在Info类里面扩展 ...
- Apache的Order Allow,Deny 详解
Allow和Deny可以用于apache的conf文件或者.htaccess文件中(配合Directory, Location, Files等),用来控制目录和文件的访问授权. 所以,最常用的是: O ...
- php配置php-fpm启动参数及配置详解
约定几个目录 /usr/local/php/sbin/php-fpm/usr/local/php/etc/php-fpm.conf/usr/local/php/etc/php.ini一,php-fpm ...
- 电话薄设计--java
package com.hanqi.telbook; import java.util.Scanner; public class Menu { //主菜单 public void mainMenu( ...
- coursera机器学习笔记-建议,系统设计
#对coursera上Andrew Ng老师开的机器学习课程的笔记和心得: #注:此笔记是我自己认为本节课里比较重要.难理解或容易忘记的内容并做了些补充,并非是课堂详细笔记和要点: #标记为<补 ...
- linux 配合仅主机模式