精华内容
参与话题
问答
  • 建议先找一张测试表测试一下,注:两小时以上的数据基本无法恢复! --1.查询某时间点某个表中的数据是否还在,在的话才可以恢复 Select * from 表名 as of TIMESTAMP to_timestamp('20190522130000','yyyymmdd ...

    本文所述操作只针对开发环境,仅供参考!

    正式的生产环境请慎重操作,选择更为安全可靠的方案,否则出现什么差错概不负责!!!

    建议先找一张测试表测试一下,注:两小时以上的数据基本无法恢复!

    --1.查询某时间点某个表中的数据是否还在,在的话才可以恢复
    Select * from 表名 as of TIMESTAMP to_timestamp('20190522130000','yyyymmdd hh24miss');

    --2.删除这个表中的数据(建议在删除之前将表中现有的数据先备份一下,具体备份方法后续补充)
    delete from 表名;

    --3.查询这个表中的数据,看看是否删除
    select * from 表名;

    --4.将查询到的该表某时间点的数据再插入这个表中,恢复数据
    insert into 表名
    select * from 表名 as of TIMESTAMP to_timestamp('20190522130000','yyyymmdd hh24miss');


    --如果不需要整表进行恢复的话可以在1,2,3,4里面都加上判断条件,只恢复部分数据

    展开全文
  • MiniTool 数据恢复工具软件具备的5个数据恢复模块:“误删除恢复”、“分区损坏恢复”、“分区丢失恢复”、“多媒体文件恢复”、“CD/DVD恢复”能够针对不同的数据丢失情况进行数据恢复。 MiniTool数据恢复工具 v...
  • redis 持久化的两种方式和恢复

    千次阅读 2018-02-05 08:36:26
    一、Redis持久化的方式有两种:  1.RDB:对内存中数据库状态进行快照  2.AOF:把每条写命令都写入文件,类似于mysql的binlog日志    RDB方式:将Redis在内存中的数据库状态保存到磁盘里面,RDB文件是一个经过 ...
    一、Redis持久化的方式有两种:
        1.RDB:对内存中数据库状态进行快照
        2.AOF:把每条写命令都写入文件,类似于mysql的binlog日志
        
      RDB方式:将Redis在内存中的数据库状态保存到磁盘里面,RDB文件是一个经过

    压缩的二进制文件,通过该文件可以还原生成RDB文件的数据状态。
      RDB的生成方式:
      1.指向命令手动生成
        有两个Redis命令可以生成RDB文件,一个是SAVE,另一个是BGSAVE,SAVE

    命令会阻塞Redis服务器进程,知道RDB文件创建完毕为止,在服务器阻塞期间,服

    务器不能处理任何的进程,BGSAVE会派出一个子进程,然后由子进程负责创建RDB

    文件,服务器进程(父进程)继续处理命令请求,创建RDB文件结束之前,客户端

    发送的 BGSAVE 和 SAVE 命令会被服务器拒绝
       2.通过配置自动生成
        可以设置服务器配置的save选项,让服务器每隔一段时间自动执行一次BGSAVE命令,可以通过save选项设置多个保存条件,但只要其中任意一个条件被满足就会执行BGSAGE命令
        列如:
        save 900 1
        save 300 10
        save 60  10000
        那么只要满足以下三个条件中的其中一个,BGSAVE命令就会被执行
        服务器在 900 秒之内,对数据库进行了 1 次修改
        服务器在 300 秒之内,对数据库进行了 10 次修改
        服务器在 900 秒之内,对数据库进行了 10000 次修改
    AOF方式:是通过保存Redis服务器所执行的写命令来记录数据库状态的AOF文件刷新方式,有三种:
        1.appendfsync always --每提交一个修改命令都调用fsync到AOF文件,非常慢,但是很安全;
        2.appendfsync everysec--每秒都调用fsyns刷新到AOF文件,很快但可能丢失一秒内的数据;
        3.appendfsync no--依靠OS进行刷新,redis不主动刷新AOF,这样最快但是安全性差;
        默认并且推荐每秒刷新,这样在速度和安全上都做到了兼顾
    二、数据恢复
        1.ROB方式
        ROB文件的载入工作是在服务器启动时自动执行的,没有专门用于载入ROB文件命令,只要Redis服务器再启动时检测到ROB文件存在,它就会自动载入ROB的文件,在服务器载入的期间,会一直处于阻塞状态,知道载入工作完成为止
        2.AOF方式
        服务器在启动时,通过载入和执行AOF文件中保存的命令来还原服务器关闭之前的数据,具体库状态过程:
            载入AOF文件
            创建模拟客户端
            从AOF文件中读取一条命令
            使用模拟客户端执行命令
            循环读取并执行命令,知道全部完成
            如果同时启动了AOF和ROB方式,AOF优先,启动时只加载AOF文件恢复数时之家在
    展开全文
  • 转自:...amp;utm_campaign=client_share&timestamp=1534293106&app=news_article&utm_source=mobile_qq&iid=40708017633&...utm_medi...

    转自:https://www.toutiao.com/a6589562456949916164/?tt_from=mobile_qq&utm_campaign=client_share&timestamp=1534293106&app=news_article&utm_source=mobile_qq&iid=40708017633&utm_medium=toutiao_ios&group_id=6589562456949916164

    使用 Git 工作时其中一个鲜为人知(和没有意识到)的方面就是,如何轻松地返回到你以前的位置 —— 也就是说,在仓库中如何很容易地去撤销那怕是重大的变更。在本文中,我们将带你了解如何去重置、恢复和完全回到以前的状态,做到这些只需要几个简单而优雅的 Git 命令。

    重置

    我们从 Git 的 reset 命令开始。确实,你应该能够认为它就是一个 “回滚” —— 它将你本地环境返回到之前的提交。这里的 “本地环境” 一词,我们指的是你的本地仓库、暂存区以及工作目录。

    先看一下图 1。在这里我们有一个在 Git 中表示一系列提交的示意图。在 Git 中一个分支简单来说就是一个命名的、指向一个特定的提交的可移动指针。在这里,我们的 master 分支是指向链中提交的一个指针。

    如何在 Git 中重置、恢复,返回到以前的状态

     

    图 1:有仓库、暂存区、和工作目录的本地环境

    如果看一下我们的 master 分支是什么,可以看一下到目前为止我们产生的提交链。

    $ git log --oneline

    b764644 File with three lines

    7c709f0 File with two lines

    9ef9173 File with one line

    如果我们想回滚到前一个提交会发生什么呢?很简单 —— 我们只需要移动分支指针即可。Git 提供了为我们做这个动作的 reset 命令。例如,如果我们重置 master 为当前提交回退两个提交的位置,我们可以使用如下之一的方法:

    $ git reset 9ef9173

    (使用一个的提交 SHA1 值 9ef9173)

    或:

    $ git reset current~2

    (在 “current” 标签之前,使用一个相对值 -2)

    图 2 展示了操作的结果。在这之后,如果我们在当前分支(master)上运行一个 git log 命令,我们将看到只有一个提交。

    $ git log --oneline

    9ef9173 File with one line

    如何在 Git 中重置、恢复,返回到以前的状态

     

    图 2:在 reset 之后

    git reset 命令也包含使用一些选项,可以让你最终满意的提交内容去更新本地环境的其它部分。这些选项包括:hard 在仓库中去重置指向的提交,用提交的内容去填充工作目录,并重置暂存区;soft 仅重置仓库中的指针;而 mixed(默认值)将重置指针和暂存区。

    这些选项在特定情况下非常有用,比如,git reset --hard <commit sha1 | reference> 这个命令将覆盖本地任何未提交的更改。实际上,它重置了(清除掉)暂存区,并用你重置的提交内容去覆盖了工作区中的内容。在你使用 hard 选项之前,一定要确保这是你真正地想要做的操作,因为这个命令会覆盖掉任何未提交的更改。

    恢复

    git revert 命令的实际结果类似于 reset,但它的方法不同。reset 命令(默认)是在链中向后移动分支的指针去“撤销”更改,revert 命令是在链中添加一个新的提交去“取消”更改。再次查看图 1 可以非常轻松地看到这种影响。如果我们在链中的每个提交中向文件添加一行,一种方法是使用 reset 使那个提交返回到仅有两行的那个版本,如:git reset HEAD~1。

    另一个方法是添加一个新的提交去删除第三行,以使最终结束变成两行的版本 —— 实际效果也是取消了那个更改。使用一个 git revert 命令可以实现上述目的,比如:

    $ git revert HEAD

    因为它添加了一个新的提交,Git 将提示如下的提交信息:

    Revert "File with three lines"

    This reverts commit b764644bad524b804577684bf74e7bca3117f554.

    # Please enter the commit message for your changes. Lines starting

    # with '#' will be ignored, and an empty message aborts the commit.

    # On branch master

    # Changes to be committed:

    # modified: file1.txt

    #

    图 3(在下面)展示了 revert 操作完成后的结果。

    如果我们现在运行一个 git log 命令,我们将看到前面的提交之前的一个新提交。

    $ git log --oneline

    11b7712 Revert "File with three lines"

    b764644 File with three lines

    7c709f0 File with two lines

    9ef9173 File with one line

    这里是工作目录中这个文件当前的内容:

    $ cat <filename>

    Line 1

    Line 2

    如何在 Git 中重置、恢复,返回到以前的状态

     

    图 3 revert 操作之后

    恢复或重置如何选择?

    为什么要优先选择 revert 而不是 reset 操作?如果你已经将你的提交链推送到远程仓库(其它人可以已经拉取了你的代码并开始工作),一个 revert 操作是让他们去获得更改的非常友好的方式。这是因为 Git 工作流可以非常好地在分支的末端添加提交,但是当有人 reset分支指针之后,一组提交将再也看不见了,这可能会是一个挑战。

    当我们以这种方式使用 Git 工作时,我们的基本规则之一是:在你的本地仓库中使用这种方式去更改还没有推送的代码是可以的。如果提交已经推送到了远程仓库,并且可能其它人已经使用它来工作了,那么应该避免这些重写提交历史的更改。

    总之,如果你想回滚、撤销或者重写其它人已经在使用的一个提交链的历史,当你的同事试图将他们的更改合并到他们拉取的原始链上时,他们可能需要做更多的工作。如果你必须对已经推送并被其他人正在使用的代码做更改,在你做更改之前必须要与他们沟通,让他们先合并他们的更改。然后在这个侵入操作没有需要合并的内容之后,他们再拉取的副本。

    你可能注意到了,在我们做了 reset 操作之后,原始的提交链仍然在那个位置。我们移动了指针,然后 reset 代码回到前一个提交,但它并没有删除任何提交。换句话说就是,只要我们知道我们所指向的原始提交,我们能够通过简单的返回到分支的原始链的头部来“恢复”指针到前面的位置:

    git reset <sha1 of commit>

    当提交被替换之后,我们在 Git 中做的大量其它操作也会发生类似的事情。新提交被创建,有关的指针被移动到一个新的链,但是老的提交链仍然存在。

    变基

    现在我们来看一个分支变基。假设我们有两个分支:master 和 feature,提交链如下图 4 所示。master 的提交链是 C4->C2->C1->C0 和 feature 的提交链是 C5->C3->C2->C1->C0。

    如何在 Git 中重置、恢复,返回到以前的状态

     

    图 4:master 和 feature 分支的提交链

    如果我们在分支中看它的提交记录,它们看起来应该像下面的这样。(为了易于理解,C 表示提交信息)

    $ git log --oneline master

    6a92e7a C4

    259bf36 C2

    f33ae68 C1

    5043e79 C0

    $ git log --oneline feature

    79768b8 C5

    000f9ae C3

    259bf36 C2

    f33ae68 C1

    5043e79 C0

    我告诉人们在 Git 中,可以将 rebase 认为是 “将历史合并”。从本质上来说,Git 将一个分支中的每个不同提交尝试“重放”到另一个分支中。

    因此,我们使用基本的 Git 命令,可以变基一个 feature 分支进入到 master 中,并将它拼入到 C4 中(比如,将它插入到 feature 的链中)。操作命令如下:

    $ git checkout feature

    $ git rebase master

    First, rewinding head to replay your work on top of it...

    Applying: C3

    Applying: C5

    完成以后,我们的提交链将变成如下图 5 的样子。

    如何在 Git 中重置、恢复,返回到以前的状态

     

    图 5:rebase 命令完成后的提交链

    接着,我们看一下提交历史,它应该变成如下的样子。

    $ git log --oneline master

    6a92e7a C4

    259bf36 C2

    f33ae68 C1

    5043e79 C0

    $ git log --oneline feature

    c4533a5 C5

    64f2047 C3

    6a92e7a C4

    259bf36 C2

    f33ae68 C1

    5043e79 C0

    注意那个 C3' 和 C5'— 在 master 分支上已处于提交链的“顶部”,由于产生了更改而创建了新提交。但是也要注意的是,rebase 后“原始的” C3 和 C5 仍然在那里 — 只是再没有一个分支指向它们而已。

    如果我们做了这个变基,然后确定这不是我们想要的结果,希望去撤销它,我们可以做下面示例所做的操作:

    $ git reset 79768b8

    由于这个简单的变更,现在我们的分支将重新指向到做 rebase 操作之前一模一样的位置 —— 完全等效于撤销操作(图 6)。

    如何在 Git 中重置、恢复,返回到以前的状态

     

    图 6:撤销 rebase 操作之后

    如果你想不起来之前一个操作指向的一个分支上提交了什么内容怎么办?幸运的是,Git 命令依然可以帮助你。用这种方式可以修改大多数操作的指针,Git 会记住你的原始提交。事实上,它是在 .git 仓库目录下,将它保存为一个特定的名为 ORIG_HEAD 的文件中。在它被修改之前,那个路径是一个包含了大多数引用的文件。如果我们 cat 这个文件,我们可以看到它的内容。

    $ cat .git/ORIG_HEAD

    79768b891f47ce06f13456a7e222536ee47ad2fe

    我们可以使用 reset 命令,正如前面所述,它返回指向到原始的链。然后它的历史将是如下的这样:

    $ git log --oneline feature

    79768b8 C5

    000f9ae C3

    259bf36 C2

    f33ae68 C1

    5043e79 C0

    在 reflog 中是获取这些信息的另外一个地方。reflog 是你本地仓库中相关切换或更改的详细描述清单。你可以使用 git reflog 命令去查看它的内容:

    $ git reflog

    79768b8 HEAD@{0}: reset: moving to 79768b

    c4533a5 HEAD@{1}: rebase finished: returning to refs/heads/feature

    c4533a5 HEAD@{2}: rebase: C5

    64f2047 HEAD@{3}: rebase: C3

    6a92e7a HEAD@{4}: rebase: checkout master

    79768b8 HEAD@{5}: checkout: moving from feature to feature

    79768b8 HEAD@{6}: commit: C5

    000f9ae HEAD@{7}: checkout: moving from master to feature

    6a92e7a HEAD@{8}: commit: C4

    259bf36 HEAD@{9}: checkout: moving from feature to master

    000f9ae HEAD@{10}: commit: C3

    259bf36 HEAD@{11}: checkout: moving from master to feature

    259bf36 HEAD@{12}: commit: C2

    f33ae68 HEAD@{13}: commit: C1

    5043e79 HEAD@{14}: commit (initial): C0

    你可以使用日志中列出的、你看到的相关命名格式,去重置任何一个东西:

    $ git reset HEAD@{1}

    一旦你理解了当“修改”链的操作发生后,Git 是如何跟踪原始提交链的基本原理,那么在 Git 中做一些更改将不再是那么可怕的事。这就是强大的 Git 的核心能力之一:能够很快速、很容易地尝试任何事情,并且如果不成功就撤销它们。

    展开全文
  • 恢复svn还原的代码

    千次阅读 2019-02-20 11:46:10
    eclipse的恢复功能 方法1. 右键项目–&amp;gt;Restore from Local History–&amp;gt;勾选需要恢复的文件–&amp;gt;Restore 方法2. 选择需要恢复的文件右键–&amp;gt;replace with–&amp;gt;...

    手快把编写了好几天的没有提交svn的项目,给还原了,差点哭出来。

    eclipse的恢复功能

    方法1. 右键项目–>Restore from Local History–>勾选需要恢复的文件–>Restore
    方法2. 选择需要恢复的文件右键–>replace with–>Local History就能看此文件改动的时间–>选中时间点看到改动的内容–>Restore
    参考:http://blog.sina.com.cn/s/blog_750167060102vd2n.html

    但是,上面的方法只能恢复,svn中没有的文件,在以前的基础上改的代码还是没恢复,我使用了下面的方法。

    Windows的恢复功能

    找到eclipse的工作空间,找到项目的源码文件夹。
    在这里插入图片描述
    右键项目源码文件夹,选择“还原以前的版本”
    在这里插入图片描述
    选择还原到的时间的文件夹版本,点击“还原”–>“确定”,还原成功。
    在这里插入图片描述

    展开全文
  • 一、问题描述 在利用github实现多人合作程序开发的过程中,我们有时会出现错误提交的情况,此时我们希望能撤销提交操作,让程序回到提交前的样子,本文总结了两种解决方法:回退(reset)、反做(revert)。...
  • linux误删文件后恢复

    万次阅读 2018-01-04 16:12:34
    linux误删文件后恢复 1. 查看一下当前系统版本号,及文件系统格式 [root@localhost ~]# df -T Filesystem Type 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup-lv_root e
  • Mac电脑有时候会碰到忘记管理员密码无法登陆,强制重装系统等操作方法如下
  • 本博客只要总结戴尔dell最新版的台式电脑恢复出厂设置。戴尔dell恢复出厂设置有许多方法,可以直接在win10系统里面进行恢复,也可以通过BIOS恢复出厂设置。其中,本文是从BIOS进行恢复的,下面是具体的教程。 1.1...
  • Usage: pg_dump [OPTION]... [DBNAME] 数据库名放最后,不指定默认是系统变量PGDATABASE指定的数据库。 General options:(一般选项) -f, --file=FILENAME output file or directory name导出后保存的文件名 ...
  • 七款非常好用的电脑数据恢复软件推荐

    万次阅读 多人点赞 2018-11-03 19:54:02
    目前网络上有非常多的数据恢复软件供用户选择,但不同版本的数据恢复软件使用功能不一,且免费的版本较少,本文为大家推荐介绍了几款比较好用的数据恢复软件,需要的朋友可以前来阅读下载。 数据恢复软件哪个比较...
  • 详细描述:使用U盘安装工具(优启通)在固态硬盘安装win10后,电脑开机显示恢复(你的电脑\设备需要修复),错误代码0xc0000225解决方法:格式化固态硬盘SSD的所有盘,并对SSD进行重新快速分区,然后使用win10原版...
  • win10误删系统变量path恢复方法

    万次阅读 多人点赞 2018-08-10 14:52:38
    日常作死,折腾环境变量的时候把path直接给删掉了。。。orz 首先,不要重启电脑!! ... ...1.win + R,打开运行,输入regedit,进入注册表。...2.定位至HYEK_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\...
  • 首先我们得把老服务器上的Gitlab整体备份,使用Gitlab一键安装包安装Gitlab非常简单, 同样的备份恢复与迁移也非常简单. 使用一条命令即可创建完整的Gitlab备份。 gitlab-rake gitlab:backup:create...
  • 最新版U盘数据恢复大师含注册码new

    千次下载 热门讨论 2013-09-17 11:59:41
    免费了,因为大家对上...注意:数据恢复以前,不要往丢失数据的U盘里存任何数据了,包括恢复出来的数据,也暂时不要存到硬盘里,存到U盘上,或者其它的U盘上,不然会覆盖了丢失了的数据,影响数据恢复。请切记这一点。
  • git 删除文件后如何恢复

    万次阅读 多人点赞 2016-05-04 15:36:08
    怎么恢复呢?别急,咱们一步步来。首先git status一把,看看此时工作区的状态[xxx@xxx static_files]$ git status # On branch master nothing to commit (working directory clean)可见此时没有任何修改的内容。 ...
  • 8款安卓数据恢复软件测评【国外篇】 相信多数人都有过手机数据丢失的悲痛经历吧,尤其是当你没有任何可用的备份的时候。前几天我也遇到了这个问题,那个着急和纠心啊,于是我就开始了全网搜索国内外一切可用的手机...
  • 真正免费的U盘数据恢复硬盘数据恢复软件

    千次下载 热门讨论 2012-07-12 21:41:30
    有30天的试用期,真正免费能用,这是我花了一个晚上找到的。 什么U盘数据恢复大师、超级硬盘数据恢复,当你要恢复U盘时,统统要注册!
  • Oracle数据库备份与恢复 - RMAN恢复

    万次阅读 2015-07-15 17:16:41
    RMAN恢复原理首先还是得理解Oracle数据库恢复的一个原理。数据库恢复是指将数据库恢复到一个一致性的状态,整个恢复操作可以分为两个步骤,数据库修复(RESTORE)和恢复(RECOVER)。Oracle官方文档上关于Restore和...
  • Oracle 11g R2 Rman备份与恢复

    万次阅读 多人点赞 2018-06-08 09:49:31
    备份与恢复的定义及分类 备份的定义及分类: 备份就是把数据库复制到转储设备的过程。其中,转储设备是指用于放置数据库副本的磁带或磁盘。通常也将存放于转储设备中的数据库的副本称为原数据库的备份或转储。...

空空如也

1 2 3 4 5 ... 20
收藏数 1,467,029
精华内容 586,811
关键字:

恢复