精华内容
下载资源
问答
  • SVN里恢复到一天的版本操作

    万次阅读 2016-07-06 10:38:16
    SVN除了日常的代码提交 更新之外 很少做一些其他高级的操作 曾经想把整个库的版本整体换的全部代码 竟然不知道怎么操作 …正好 文档人员有心 事隔许久 竟然主动告知我了 于是我当机立断 才有了现在...

    SVN除了日常的代码提交 更新之外 很少做一些其他高级的操作 曾经想把整个库的版本整体换到某天的全部代码 竟然不知道怎么操作 …正好 文档人员有心 事隔许久 竟然主动告知我了 于是我当机立断 才有了现在的奋笔疾书….呵呵 

    闲话少扯 言归正传

    第一步:对着你的项目 右键 –TortoiseSVN- Update to revision



    第二部 选择Show log

    根据时间 选择需要的版本号

    然后 返回到第一步的那个截图 在Revesion里填上这个版本好 Ok就行了 

    好了 这个简单 收工!

    ---------------------------------------------------------------------------------------------------------------------

    1. 在代码的编写过程中,难免有些错误需要修改,  
    2. 或者想从以前的文件进行代码修改,这样就涉及到版本的追踪,  
    3. 如果你以前提交时日志写的非常清楚,那版本追踪回滚起来就事半功倍、得心应手。  
    4. 下面介绍几种版本回滚的办法:  
    5. 1.推荐的一种方法是,直接export一个你需要的版本,然后用你export的版本覆盖你的最新的版本,  
    6. 这样你就可以不丢失你新建的文件,同时获得最新的SVN版本控制。  
    7. 操作步骤:TortoiseSVN→Show log→选中需要回滚的版本→右键→Export。之后将修改的文件覆盖到你的最新版本,commit即可。  
    8. 2. 若是你编辑了工程,在没有提交的前提下,你想放弃这些修改,你可以直接选择TortoiseSVN→revert就可以更新到工程的最新的版本。  
    9. 3. 若是你想退回到某一个版本,你就可以直接选择TortoiseSVN→update to reversion,这样我们就可以把我们的版本回退到你选中的版本去,  
    10. 这种情况下SVN并没有显示出有什么冲突,并且新建立的文件也还在,但是在这种情况下你并不能直接在你回退后的版本上进行编辑,  
    11. 因为SVN的版本控制还是在最新的主干上。我们需要update并解决冲突。  
    12.  4.你可以直接选择revert changes from this revision,  
    13. 这样的话你可以直接解决冲突并提交。不过这种方法的不足是,  
    14. 你新建的文件都没有了,整个工程都回退到之前的版本了。  
    15. 5.可以从日志中回滚到你需要的版本,从日志中选中你需要的版本,然后Update item to reversion就好了,这种情况下SVN并没有显示出有什么冲突,并且新建立的文件也还在,但是在这种情况下你并不能直接在你回退后的版本上进行编辑,因为SVN的版本控制还是在最新的主干上。我们需要update并解决冲突。 

    转载地址:http://blog.csdn.net/lanchengxiaoxiao/article/details/36377445

    展开全文
  • 微软官方免费数据恢复工具Windows File Recovery Windows File Recovery是由微软推出的款免费的文件数据恢复工具,这款工具可以用来恢复那些被删除的文件,或者从格式化或损坏的硬盘、储存卡中恢复文件

    官网

    https://www.microsoft.com/zh-cn/p/windows-file-recovery/9n26s50ln705?activetab=pivot:overviewtab

    适用Windows版本

    Windows 10 2004及更高版本

    官方文档

    https://support.microsoft.com/en-us/help/4538642/windows-10-restore-lost-files

    下载、安装与启动

    1. 打开Win10应用商店,(开始->Microsoft store)搜索“Windows File Recovery”。
      在这里插入图片描述

    2. 如果是首次安装,页面上还会出现一个“获取”按钮,如果之前已经安装过,那么这里会变为“安装/打开”。首次安装时请点击“获取”按钮
      在这里插入图片描述

    3. 从“开始”菜单中打开Windows File Recovery

    4. 如果UAC提示,请单击“ 是”以管理员身份运行。

    5. 最后点击面板上的“启动”按钮,启动Windows File Recovery,里接下来的操作都是dos命令行操作,不知道后续会不会有官方或第三方gui界面支持

    使用实例

    数据恢复是份精细活,所以最好核对好每个步骤再进行操作

    重要提示

    如果要增加恢复文件的可能性,请尽量避免使用设备。在Windows文件系统中,已删除文件使用的空间被标记为可用空间,这意味着文件数据仍然存在并可以恢复。但是,任何使用设备的人都可能创建文件,这些文件可能随时覆盖这部分可用空间。

    基本恢复步骤

    如何选择模式并判断文件系统

    以下信息可以帮助您确定拥有的文件系统以及使用的模式。
    文件系统
    Windows支持几种文件系统,具体取决于存储设备或操作系统。仅在签名模式下支持从非NTFS文件系统恢复文件。要查看自己设备文件系统,请在此电脑中对想查看的驱动器右键,然后选择“ 属性”在这里插入图片描述
    下表是一般情况下的各类文件系统

    文件系统 示例
    FAT和exFAT SD卡,闪存或U盘(<4GB)
    ReFS Windows Server和Windows Pro工作站版
    NTFS 计算机(HDD,SSD),外部硬盘驱动器,闪存或U盘(> 4GB)

    使用下表可以帮助您决定使用哪种模式。如果不确定,请从默认模式开始。

    文件系统 情况 推荐模式
    NTFS 最近删除 默认
    前几天删除 首先尝试段模式,然后再签名
    格式化磁盘后 首先尝试段模式,然后再签名
    损坏的磁盘 首先尝试段模式,然后再签名
    FAT,exFAT,ReFS 参见下表 签名
    文件扩展名 文件类型
    ASF wma, wmv, asf
    JPEG jpg, jpeg, jpe, jif, jfif, jfi
    MP3 mp3
    MPEG mpeg, mp4, mpg, m4a, m4v, m4b, m4r, mov, 3gp, qt
    PDF pdf
    PNG png
    ZIP zip, docx, xlsx, pptx, odt, ods, odp, odg, odi, odf, odc, odm, ott, otg, otp, ots, otc, oti, otf, oth

    常用参数

    下表总结了每个基本命令行参数和开关的用途。
    |参数或开关 | 描述 |支持模式|
    在“ cmd”窗口中, 以以下格式输入命令:
    winfr source-drive: destination-drive: [/switches]
    winfr [被删文件所在盘符] [恢复文件对应盘符] [/开关] 文件详细路径
    源驱动器和目标驱动器必须不同。从操作系统驱动器(通常为C:)恢复时,使用/ n <过滤器>和/ y:<类型<(s)>开关指定用户文件或文件夹。
    Microsoft自动在目标驱动器上为您创建一个名为Recovery_ <日期和时间>的恢复文件夹。
    可以使用三种模式来恢复文件:默认,段和签名。

    命令行语法

    参数或开关 描述 支持模式
    源驱动器: 指定丢失文件的存储设备。必须与目标驱动器不同。 所有
    目标驱动器: 指定放置恢复文件的存储设备和文件夹。必须与源驱动器不同。 所有
    / r 使用段模式,该模式检查文件记录段(FRS) 分割
    / n <过滤器> 使用文件名,文件路径或通配符扫描特定文件。例如:文件名:/ n myfile.docx c 文件路径:/ n / users / <用户名> / Documents / 通配符:/ nmyfile。*/ n * .docx/ n * <字符串> * 默认
    细分
    /X 使用签名模式,该模式检查文件类型并在所有文件系统上工作。
    / y:<类型> 扫描具有特定文件类型的文件。使用逗号分隔多个条目。有关扩展组和相应文件类型的列表,请参见“关于模式和文件系统”部分中的表“签名模式扩展组和文件类型”。 签名
    /# 显示签名模式扩展组以及每个组中的相应文件类型。 所有
    /? 为一般用户显示语法和开关的快速摘要。 所有
    /! 为一般用户显示语法和开关的快速摘要。 所有

    默认模式示例

    将C:驱动器中的指定文件(路径:\Users<username>\Documents\QuarterlyStatement.docx)恢复到E:驱动器上的恢复文件夹。
    winfr C: E: /n \Users\<username>\Documents\QuarterlyStatement.docx
    将JPEG和png照片从“图片”文件夹恢复到E:驱动器上的恢复文件夹。
    winfr C: E: /n \Users\<username>\Pictures\*.JPEG /n \Users\<username>\Pictures\*.PNG
    从C:驱动器将Documents文件夹恢复到E:驱动器上的恢复文件夹。
    winfr C: E: /n \Users\<username>\Documents\
    不要忘记文件夹末尾的反斜杠(\)。

    段模式示例(/ r)

    将PDF和Word文件从C:驱动器恢复到E:驱动器上的恢复文件夹。
    winfr C: E: /r /n *.pdf /n *.docx
    使用通配符恢复文件名中包含字符串“ invoice”的任何文件。
    winfr C: E: /r /n *invoice*

    签名模式示例(/ x)

    使用签名模式时,首先查看受支持的扩展组和相应的文件类型会很有帮助。
    winfr /#
    从C:驱动器将JPEG(jpg,jpeg,jpe,jif,jifif,jfi)和PNG照片恢复到E盘上的恢复文件夹。
    winfr C: E: /x /y:JPEG,PNG
    将C:驱动器中的ZIP文件(zip,docx,xl​​sx,ptpx等)恢复到E盘上的RecoveryTest文件夹。
    winfr C: E:\RecoveryTest /x /y:ZIP

    当提示您确认继续时,请输入Y以开始恢复操作。
    根据源驱动器的大小,这可能需要一段时间。
    要停止恢复过程,请按Ctrl + C。

    常见问题

    一些帮助使用正确的语法?

    这里有一些建议:
    始终在源路径和目标路径中使用驱动器号,不要忘记驱动器号后的冒号:,并确保源和目标之间存在空格。
    如果开关带有冒号,例如/ y :,请不要在冒号和其余值之间添加空格。
    如果仅指定文件夹名称,例如/ n \ Myfolder \,请在其末尾添加反斜杠(\)。
    如果文件或文件夹名称包含空格,请用引号引起来。例如:

    winfr C: E: /n "\Users\<username>\Documents\Quarterly Statement.docx"
    要停止恢复过程,请按Ctrl + C。

    在命令示例中是什么意思?

    在“文件资源管理器”地址栏中,输入C:\ users以查看计算机上潜在用户的列表。您的计算机上可能有多个用户,包括您,管理员和默认帐户。当您在文件路径中看到<用户名>时,它是计算机上当前用户名的占位符。

    为什么收到此消息:“源和目标不能引用相同的物理分区?”

    源驱动器和目标驱动器或分区路径不应相同。如果只有一个驱动器,请使用USB或外部硬盘驱动器作为目标路径。丢失数据后不要创建分区,因为这会减少成功恢复的机会。

    为什么恢复操作需要这么长时间?

    根据磁盘的大小,可能需要一段时间才能恢复文件,特别是如果你正在使用的签名模式。

    为什么要从操作系统驱动器中恢复其他文件?

    Windows在幕后不断地创建和删除文件。默认情况下,Windows File Recovery可以过滤掉这些文件,但是会漏掉一些文件。为避免这种情况,请在默认模式和段模式下使用/ n 开关,在签名模式下使用/ y:<type(s)>开关。

    什么是$ Recycle.Bin文件夹?

    对于默认模式和段模式,您可能还会看到从回收站恢复的丢失文件(回收站中的文件或已永久删除的文件),名称为$ files.xxx,并存储在名为$ RECYCLE.BIN的文件夹中。

    如果目标驱动器已满怎么办?

    如果您看到以下消息:“目标磁盘已满,请在继续之前释放空间:(R)继续,(S)kip文件或(A)bort”, 释放目标驱动器上的驱动器空间,然后选择选项之一。

    我无法恢复文件,现在怎么办?

    如果您使用默认模式或段模式,则在支持文件类型的情况下以签名模式重试。可用空间可能被覆盖,尤其是在固态硬盘(SSD)上。如果需要帮助,请与管理员联系。

    展开全文
  • 从删库跑路or恢复,记次MySQL数据库文件损坏恢复经历这是工作7年来出的最大次事故,去年给自己定的个目标今年写12篇有质量的文章反馈给互联网,都快过半年了篇还没有写,没想到第篇竟然是以这种方式书写...

    从删库到跑路or恢复,记一次MySQL数据库文件损坏恢复经历

    这是工作7年来出的最大一次事故,去年给自己定的一个目标今年写12篇有质量的文章反馈给互联网,都快过半年了一篇还没有写,没想到第一篇竟然是以这种方式书写的。 不知道这篇算不算是有质量,希望能帮到更多的人。

    作者:OSC李强来源:OSC李强的个人空间|2018-06-26 13:30

    技术沙龙 | 6月30日与多位专家探讨技术高速发展下如何应对运维新挑战!


    从删库到跑路or恢复,记一次MySQL数据库文件损坏恢复经历

    一、 前言

    2018年5月28日,北京晴有轻度沙尘暴。 坐上公交车走在上班的路上,想起老罗经常说起的一句话:想成盛田昭夫时代的索尼,想成乔布斯时代的苹果,于是继续研读着 《日本制造:盛田昭夫的日式经营学》。

    到了人大西门在西区食堂吃了个早餐,穿过人民大学很快就来到了公司。坐在工位上打开电脑登上QQ,不一会运营的CC的头像就开始闪动,“mooc平台登录不了”,“你看看”。又一会领导的头像开始闪动,“xxx说慕课平台不能登录了”。 额… 这事都惊动领导了?

    二、 排查问题

    打开chrome浏览器开始预览,等了好久代理服务器才反馈。

    1. Time out! 

    使用 SecureCRT 连接了一下服务器,首先重新启动了一下Nginx代理服务器。

    1. service nignx stop // 关闭Nginx服务  
    2. service nginx start // 开启Nginx服务 

    去前台刷新了几下没有恢复。 那就在重启一下php吧,于是就:

    1. service php-fpm stop // 关闭PHP服务  
    2. service php-fpm start // 开启PHP服务 

    又去前台试了试还是没有恢复。(有人会问为什么不直接用 service xxx restart 来重启各服务呢? 我也不知道为什么,个人爱好吧!)那只有一种可能数据库出问题了。

    打开 Navicat 连接了一下数据库,发现可以正常连接而且可以看到所有的表,随便打开了一张表能看到里面的数据,但是弹出了一个错误的提示。

    1. Got error 28 from storage engine 

    大概是这个错误提示,当时也没在意,心想反正提示错误了那就重启一下物理服务器吧,这里是物理服务器!!!随后执行了这个命令(为什么不直接重启MySQL服务呢? 事后想了想我也不知道为什么。 而且如果当时注意看看这个错误,是因为磁盘空间问题引起的,也许后面就不会有那么多惊心动魄了!)

    1. reboot // 重启物理服务器 

    执行完以后所有的服务都正常关闭了,只有Mysql数据库服务。

    1. Shutdown MySQL ………………………………………………. 

    引号已经5排了,实在是等不下去了。 断电!!!(MySQL没有安全关闭,直接断电会出问题的!!!)。

    三、 恢复进程

    等了一会,物理服务器启动起来了。一切的应用服务都正常启动了,只看到在启动MySQL数据库的时候出现了。

    1. The server quit without updating pid file (/var/lib/mysql/localhost.localdomain.pid) 

    等到全部服务加载完成以后手动又进行了一次MySQL数据库启动:

    1. service mysql start 

    依然报前面那样的错误,此时心里开始紧张了起来。 Google了一下这个错误,网上提供了几种解决的方案:

    1、 Mysql权限问题

    1. chown -R mysql:mysql /var/lib/mysql/*  
    2. chmod -R 660 /var/lib/mysql/* 

    2、 Mysql 服务已开启

    1. ps -ef|grep mysqld // 查看是否有mysqld进程  
    2. kill -9 进程号 // 强制杀死进程 

    3、 残余数据影响了Mysql服务的启动

      删除数据库目录(我的数据库目录为rpm安装默认目录:/var/lib/mysql)下的 mysql-bin.index 文件

    4、 Mysql配置文件(默认为:/etc/my.cnf)

      配置文件里面没有配置数据库目录,这个问题一般在刚安装MySQL时候会出现

    5、 skip-federated字段问题

      MySQL配置文件注释掉skip-federated字段

    6、 selinux的问题

      centos6.8以上默认会开启selinux服务,加强版军用级防火墙。为了查问题可以直接关掉

    1. /usr/sbin/setenforce 0 

    以上解决方案全部都已经使用过了,都没有解决问题,依然开启服务会报错。 此时的心开始凉了。

    回头看了看往期的备份,xxxx_20171208.sql。 都快2018年6月份了,我的上次备份竟然是17年12月份的,半年了!都半年没备份过了! (我视乎隐约的感觉前段时间是有备份的,备份的服务器硬盘好像被我清理了)。

    进入到数据库目录下,看到了除了上述说的 mysql-bin.index 文件以外还有其他的几个文件:mysql-bin.~rec~ 、 ib_logfile1、 ib_logfile0、 ibdata1 想了想是不是这几个也是一些残余文件,全部删了试试。 尝试把这几个文件转移到了其他的目录(使用的mv命令)模拟删除效果,同时还相当于备份。

    1. service mysql start 

    竟然MySQL数据库服务正常启动了! 心里的喜悦涌了上来,赶紧使用Navicat连接一下看看,能够正常连接,看到了数据库。 打开数据库以后所有的表都没有了! 此时心又酸了起来。 一转眼11:30了,时间过的可真快啊,同事叫着一起吃饭,此时的我已经全无吃饭的心情了。

    恢复表结构

    把刚才移走的几个文件又恢复到了原目录里,既然恢复MySQL进程现在没什么希望了,那就想办法恢复数据吧。 进入到数据库目录(/var/lib/mysql)下找到了我的数据库名字以目录的形式存放。 进去该目录以后发现里面都是以扩展名为:xxxx表.frm文件,这些不都是我的数据库表吗? 里面是不是就存放了所有的数据? 是不是直接拿这些文件就可以恢复数据呢?Google了一下,果然有这方面的文章,大致说: “frm可以恢复表结构,同时InnoDB数据库引擎和MyISAM数据库引擎恢复的方式不一样”。

    1、 InnoDB数据库引擎

    1. 在一个正常的MySQL数据库服务器(new_server)下建立数据库(new_db),该数据库的名称和异常服务器(old_server)数据库(old_db)保持一致。
    2. 在new_db数据库中建立一张表与old_db的表名称(t_user)一致。
    3. 将new_server服务器的MySQL数据库服务关闭。
    4. 从old_server服务器下old_db的数据库目录下复制t_user.frm文件到new_server服务器下new_db的数据库目录下替换t_user.frm文件。
    5. 开启new_server服务器的MySQL数据库服务。
    6. 使用连接工具连接new_server就可以看到new_db下的表及表结构。

    2、 MyISAM数据库引擎

      其他和InnoDB数据库引擎操作基本一致,只是在new_server服务器下new_db的数据库目录下创建两个空的文件:t_user.MYD 和 t_user.MYI。

    我使用的数据库为InnoDB引擎,无奈的我以上两种方法都使用了,没有恢复任何表结构更没有数据,也许可能是我操作有问题吧。 此时看到了目录下有一个文件: ibdata1 Google了一下,可以和xxx.frm配合使用,又一次将new_server服务器的MySQL数据库服务关闭。 直接把old_server服务器下old_db的数据库目录下复制ibdata1文件到new_server服务器下new_db的数据库目录下替换ibdata1文件。

    1. service mysql start 

    新的服务器也出现了这样的错误,导致错误的很大原因可能是ibdata1文件损坏引起的。

    今天北京的天气已经达到了35摄氏度,但此时我的心已经凉了一半了,虽然没有按时备份数据及服务器异常崩溃造成数据丢失比直接删库的责任小了点,但是也办法向公司交代,真的需要开始准备 “离职申请” 了吗?

    binlog日志

    打开微信

      我:你们公司用的是什么数据库,是MySQL吗

      好友LZ:是的

      我:公司的MySQL坏了,启动不了了; 数据没有备份; 有什么好办法把数据拿回来吗

      好友LZ:你们之前数据的binlog还有吗;通过这个应该可以恢复

      我:都有

      好友LZ:我也没弄过数据恢复,都是DBA搞,感觉应该可以的;你先查查看网上有没有解决方案,我这会在上线。

      我:嗯

    本来想说:“你能不能问问好友LZ你们DBA遇到过这种情况吗,帮忙给个方案”;最后还是没有好意思开出口。 不过binlog这个名字让我突然想起了数据库目录(/var/lib/mysql)下面几个较大的文件。

    这十几个文件就是binlog日志文件,每台服务器上面的个数应该不一样,这个文件只有每次重启MySQL服务或者刷新日志(MySQL命令:show master logs)的时候才会新增一个。看了一下我最近的几个文件,2018年1月16、 2018年3月18、 2018年4月18、 2018年5月28这几个时间点产生了新的文件,说明MySQL服务器这几个日期都进行过关闭又开启的操作。

    binlog使用:

      binlog文件简介(网上摘抄)

      MySQL的二进制日志可以说是MySQL最重要的日志了,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是事务安全型的。

      binlog作用(网上摘抄)

      MySQL Replication在Master端开启binlog,Mster把它的二进制日志传递给slaves来达到master-slave数据一致的目的。

      数据恢复,通过使用mysqlbinlog工具来使恢复数据。

    使用binlog恢复数据之前需要确定MySQL是否开启binlog日志:

    1. show variables like 'log_%'

    状态 OFF 为未开启,状态 ON 表示已开启。

    可以通过MySQL配置文件(默认路径:/etc/my.cnf)开启或关闭binlog日志。

    1. vi /etc/my.cnf 

    使用加上#可以关闭,去掉开启。 修改后需要重启MySQL服务(service mysql restart)才可以生效。

    恢复数据(binlog日志方式)

    初试mysqlbinlog工具

    看到上面的那么多mysql-bin文件,很显然使用centos6.5下rpm方式安装的MySQL默认是打开binlog日志的。 这时我们就需要用到MySQL的 mysqlbinlog 工具,想使用它首先需要确保已经安装MySQL服务,然后我们需要找到它的位置。

    1. find / -name mysql 

      2 表示为MySQL可执行文件的目录

      3 表示为MySQL的数据库目录

    那我们先简单的使用一下:

    1. cd /var/lib/mysql  
    2. mysqlbinlog mysql-bin.000001 > mysql-bin.000001.sql 

    很显然我在使用mysqlbinlog的时候是,直接执行的mysqlbinlog命令,前面并没有增加任何路径。 因为默认centos系统会将/usr/bin这个目录配置到环境标量中,若我们使用的是rpm方式安装的MySQL,默认是安装到/usr/bin目录下的。 可以直接在任何路径下使用/usr/bin目录里的文件。 执行完上面的语句后会发现在当前目录生成一个mysql-bin.000001.sql的文件, 打开文件可以看到很多sql语句。

    对于我当前的情况来看并不需要把所有的binlog都处理一遍,上面提到我上次的备份是在2017年12月8日的时候(xxxx_20171208.sql)因此我只需要从 mysql-bin.000009 这个binlog文件开始就可以了。

    首先我在另外一台服务器上面重新搭建了一个MySQL服务,把mysql-bin.000009以后的几个binlog都拷贝到了这台新的服务器上面去。(服务器出现任何问题,建议不要对该服务器做任何操作,换一台新的电脑或服务来处理,为了保护数据的完整性!)

    使用备份文件恢复数据

    在新的MySQL上面建了一个和以前一样名称的数据库。

      mysql -u数据库用户名 -p数据库密码 数据库名称 --default-character-set=utf8 < xxxx_20171208.sql

      例:mysql -uroot -proot xxxx --default-character-set=utf8 < xxxx_20171208.sql

    使用binlog恢复数据

    这时数据库有了,数据表及表结构也有了,那就开始恢复数据吧。 

    1. mysqlbinlog mysql-bin.000009 | mysql -uroot -proot 

    回车马上就出错了,遇到了两种错误,一种是PRIMARY的错误,一种是找不到记录的错误。 mysqlbinlog在执行mysql-bin.000009文件里的插入语句时出错了。 看了一下mysql-bin.000009文件的创建时间是2017年11月12日,我的备份文件是2017年12月8日,他们两个时间差了二十几天,执行上面恢复语句肯定会出现重复插入的问题,数据库里的某些表是由PRIMARY KEY的约束的,所以会导致PRIMARY错误。 这时我们需要用到mysqlbinlog的参数: start-datetime 和 end-datetime,顾名思义一个是开始时间一个是结束时间。

    1. mysqlbinlog --start-datetime="2017-12-08 10:00:00" mysql-bin.000009 | mysql -uroot -proot 

    看了一下我备份的xxxx_20171208.sql大致是2017年12月8日的10左右,没有添加 end-datetime 参数的话默认为该binglog文件下的最后一个时间点。 执行了以后报了一个找不到记录的异常。 应该是执行删除或更新语句的时候没有找到某条记录,时间还是不对。 于是我就查看了数据库的日志表,最后的时间是2017年12月8日9点32分41秒,又执行了一次。

    1. mysqlbinlog --start-datetime="2017-12-08 09:32:41" mysql-bin.000009 | mysql -uroot -proot 

    依然报错,那怎么办呢,难道这个方法不行?

    1. mysqlbinlog mysql-bin.000009 > mysql-bin.000009.sql 

    此时打开mysql-bin.000009.sql里面拥有大量的sql语句,发现好多条sql语句在这个时间点下。 看来使用参数来控制行不通。 还好mysqlbinlog工具给我们提供了另外两个参数start-position 和 end-position

    修改了一下命令:

    1. mysqlbinlog --start-position="123456" mysql-bin.000009 | mysql -uroot -proot 

    果然一切都正常了,执行这个命令需要很久,它要把你这段时间所有的增加、删除、更新都执行一遍。 这里可能还会遇到一个问题,我的这个MySQL服务器里面这有一个数据库,MySQL的binlog文件记录的是所有数据库的增加、删除、更新记录,那怎样只针对某个数据库来操作呢? 这时我们需要用到mysqlbinlog的database参数。

    1. mysqlbinlog --database=xxxx --start-position="123456" mysql-bin.000009 | mysql -uroot -proot 

    半年的数据,就这么一个一个的binlog文件进行处理的,从晚上6点到夜里的12点完成所有文件的恢复,数据量不是很大,服务器的性能也不是太高,中间出了点问题,不过都是服务器中断的问题。 最后把所有的数据全部恢复了回来,这心惊肉跳的一天!

    这是工作7年来出的最大一次事故,去年给自己定的一个目标今年写12篇有质量的文章反馈给互联网,都快过半年了一篇还没有写,没想到第一篇竟然是以这种方式书写的。 不知道这篇算不算是有质量,希望能帮到更多的人。

    总结

    遇到问题不要盲目,保持清醒的头脑,找清问题,整理好思路才能更有效的解决问题。 对于数据平时不要怕麻烦,注意备份。

    备注

    我的服务器及各软件的版本

    • 操作系统:** centos6.5
    • MySQL:** 5.5.49
    • 安装MySQL方式:** rpm
    展开全文
  • GIT仓库如何恢复到前一次提交

    万次阅读 2017-01-12 14:27:54
    通过使用Git版本恢复命令reset,可以回退版本。 reset命令有3种方式: git reset –mixed:此为...git reset –soft:回退某个版本,只回退了commit的信息,不会恢复到index file级。如果还要提交,直接commit即可

    通过使用Git版本恢复命令reset,可以回退版本。

    reset命令有3种方式:

    git reset –mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息  

    git reset –soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可  

    git reset –hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容    

    以下是一些reset的示例:

    #回退所有内容到上一个版本    

    git  reset  HEAD^      

    #回退a.py这个文件的版本到上一个版本      

    git  reset  HEAD^  a.py      

    #向前回退到第3个版本      

    git  reset  –soft  HEAD~3      

    #将本地的状态回退到和远程的一样      

    git  reset  –hard  origin/master      

    #回退到某个版本      

    git  reset  057d      

    #回退到上一次提交的状态,按照某一次的commit完全反向的进行一次commit      

    git  revert  HEAD 

    如果我们某次修改了某些内容,并且已经commit到本地仓库,而且已经push到远程仓库了

    这种情况下,我们想把本地和远程仓库都回退到某个版本,该怎么做呢?

    前面讲到的git reset只是在本地仓库中回退版本,而远程仓库的版本不会变化

    这样,即时本地reset了,但如果再git pull,那么,远程仓库的内容又会和本地之前版本的内容进行merge

    这并不是我们想要的东西,这时可以有2种办法来解决这个问题:

    直接在远程server的仓库目录下,执行git reset –soft 10efa来回退。注意:在远程不能使用mixed或hard参数

    在本地直接把远程的master分支给删除,然后再把reset后的分支内容给push上去,如下:

    #新建old_master分支做备份    

    git  branch  old_master    

    #push到远程    

    git  push  origin  old_master:old_master   

    #本地仓库回退到某个版本  

    git  reset  –hard  bae168 

    #删除远程的master分支

    git  push  origin  :master 

    #重新创建master分支 

    git  push  origin  master



    关于git删除远程分支

    一不小心把本地的临时分支push到server上去了,想要删除。
    一开始用

    git branch -r -d origin/branch-name

    不成功,发现只是删除的本地对该远程分支的track,正确的方法应该是这样:

    git push origin :branch-name

    冒号前面的空格不能少,原理是把一个空分支push到server上,相当于删除该分支。

    展开全文
  • myeclipse恢复文件到某个时间节点

    千次阅读 2016-05-04 06:55:54
    MyEclipse 文件意外地覆盖但要恢复到较早版本的项目中的文件,怎么办? 在开发中,经常遇到我们自己写的代码未提交svn上的时候,又执行了更新操作,我们自己的代码覆盖的情况,这种情况,如果需要恢复我们...
  • Oracle dmp文件损坏恢复案例

    千次阅读 2014-06-17 11:39:16
    前一段时间帮一个朋友的朋友恢复了一个损坏的dmp文件,大概100多个G,记录一下恢复过程并简单总结一下
  • 如何恢复断电造成的丢失文件

    千次阅读 2014-04-11 11:53:30
    天气一天天晴朗,温度也越来越高,又要了经常停电的苦逼日子了。在我们这个小县城,停电是常见的事,夏天停电那更是家常便饭,没办法,线路老化,集体更改就又要很大一笔钱,老公房了。用电脑都要小心翼翼的。不仅...
  • Idea误删除文件恢复问题

    千次阅读 2016-11-17 16:00:46
    自己的本地css出现错误,所以想删除自己的本地文件在更新代码管理库的,谁知道删除以后无法通过代码更新恢复,导致项目组的同事下载更新代码后大家css的代码都有问题,都缺失了那个文件。后来大牛帮忙恢复的。...
  • Eclipse恢复删除的文件

    千次阅读 2008-07-09 12:59:00
    经常有人误删掉Eclise下的代码文件,Eclipse提供了即时保存的功能,本地有个Local hository,通过它不仅可以恢复到前的版本上,还可以恢复误删掉得文件。在你的工程任意处点击右键就会有Restore from local ...
  • 情况:在Eclipse中删除掉某些文件后,发现误删了需要恢复回来的情况。 举例如下: 1、*.demo包中存在三个文件。 2、删除FirePush、Gen两个文件 3、恢复刚刚删除的那两个文件,首先右击文件...
  • oracle 只有数据文件时的恢复

    千次阅读 2012-08-17 15:23:18
    兄弟刚用ORACLE,因为IP地址变了下,玩了半天,只剩下数据文件了,网上查了一天资料,终于搞定,成功数据文件恢复到新的数据库中。(主要 是以前没玩过,花了我一天半的时间,哎,书用时方恨少啊) ...
  • eclipse与myeclipse恢复已删除的文件和代码 今天写了1300多行代码,被不小心删除了顿时感觉手足无措,后来用myeclipse的历史...在开发中,不小心将一个写着有数1000行代码的类删除了,本能下去按了ctrl+z
  • 天一不小心把Eclipse上的文件和代码删了,顿时心灰意冷
  • Linux杂项(001) - ext4magic文件恢复

    千次阅读 2018-11-19 15:59:57
    我看了下文件系统。ext4 文件系统。就想到了个软件,ext4magic 那么就安装吧。百度波。编译的时候 configure: error: You must install the develop packages "ext2fs , blkid , e2p , uuid" to build...
  • XFS文件系统数据恢复实战

    千次阅读 2009-07-12 11:57:00
    转自:... 恢复个XFS文件系统损坏的RAID1。 客户描述:系统重启突然,进入系统发现文件系统无法挂载。使用mount命令提示 mount: wrong fs type, bad option, bad su
  • 关于恢复硬盘被删除文件

    千次阅读 2007-10-13 17:32:00
    被我误删掉的 home directory 下的几千个文件,经过本人数的连续奋战,现绝大部分已恢复,算是奇迹也不是奇迹。 删掉文件其实只是指向数据块的索引点 (information nodes) 释放,只要不被覆盖,数据其实...
  • lsof 01命令恢复误删除文件

    万次阅读 2017-08-02 10:55:35
    前提文件属于在内存中运行状态,下面以apache 日志文件为例 lsof /var/log/httpd/access_log 查看文件存储位置,表明文件存储在/proc/20537/fd/7 文件中.(ps. 图片中7w 表明文件在7文件中) rm -rf /var/log/httpd/...
  • 真实屋漏偏逢连夜雨、船迟又遇打头风,备份的磁盘坏块,现在只有rman全备的.bak文件,没有控制文件和参数文件,所以现在需要考虑的是如何根据bak文件在备份数据库上恢复数据,从中找出被误删的数据。...
  • 在项目要演示的前一天数据库突然被鲁大师给损坏了,导致项目无法启动,想了各种办法,查了很多资料,最终得以解决,再此做一个记录 一、数据库postgres损坏恢复方法(此方法同样适用于系统崩溃后,找回数据的操作)...
  •  由于,我们使用的数据库被入侵(顺便鄙视一下安全管理人员),数据库中的表都显示不存在(仅剩个黑客自建的----qq_xxxxx的表,但物理文件都在,例如:.frm、.ibd文件等)。因此,产生了这次恢复表结构和表数据...
  • SVN 删除本机文件还没commit 怎么恢复

    千次阅读 2018-07-31 17:34:42
    右击文件,从TortoiseSVN中选择Delete 删除了文件。 然后SVN update 但更新不了此文件了,删除了父文件夹后SVN update也没用,此文件消失了。 ...莫名其妙的把一文件delete了,今天...
  • 手机自动格式化怎么恢复文件

    千次阅读 2013-12-18 18:12:34
    手机照片恢复越来越成为很多人关心的话题,因为我们从最早的只用相机照相转变可以用手机拍照,再去哪里都只需用手机拍照,伴随而来的问题也发生了,段时间我的手机不知道怎么回事,连着出问题,屏幕先是出现...
  • 而2016年初因为进行迁移,所以有些文件可能丢失,手上只有rman全备文件,希望在一天之内找回,集团一个副总裁在等着这个数据有急用。 我在电话里面说马上去做,接完电话,想到只有rman备份文件,而且是备份的数据...
  • 恢复NTFS分区中被ubuntu误删除的文件

    千次阅读 2010-09-30 11:26:00
    <br />严重提示:请非常谨慎...ext3文件系统 还好说,再怎么说也是重要的开源文件系统,还是有几篇误删文件恢复的参考的文章,NTFS文件系统就更郁闷了。 咳,双系统,在ubuntu下不小心删除了NT
  • 是的,份记录了几个月的文件大小就这样变成了 0KB 了。不怕,哥们几年有过整个硬盘被格式化的经历,这点痛算神马?于是,保护第现场,争取资源不被新的数据破坏。Windows所谓的“删除”实际上只是文件名标记为...
  • Eclipse恢复被误删除的文件

    千次阅读 2007-04-07 01:01:00
    转载地址: http://blog.csdn.net/easyjf/archive/2007/04/04/1551567.aspx...在eclipse中误删了文件怎么办啊 经过个小的data recover 后竟无果, 后来发现有个restore from local history...可以恢复内删除的
  • 原贴:http://blog.chinaunix.net/u2/88652/showart_1723731.html使用ext3grep恢复ext3文件系统中误删除文件使用ext3grep恢复ext3文件系统中误删除文件作者:ubuntu中文论坛的 jkll(就是我啦)原文链接严重提示:请...
  • 除夕之夜,Acme银行的数据库管理员(DBA)John正在和他的...幸好开发团队找出了错误所在,并开发个应急纠正模块,但这纠正模块不能恢复已经造成的破坏。部门经理问John是否有什么方法能往回倒一些时间,数据库恢
  • 失而复得——数据库日志文件丢失后的恢复

    千次阅读 热门讨论 2012-08-19 19:37:13
    听英语用到虚拟光驱装resseta stone ,没想到各种不顺,把我的本本给整瘫痪了。后来重整旗鼓,装了云端,总算是把它搞定了,由于瘫痪来的很突然,所以我的一些数据不小心丢了一些。我新建的数据库日志文件就悲...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 83,767
精华内容 33,506
关键字:

怎么将文件恢复到前一天