下载地址:https://www.apexsql.com/download.aspx

如何从意外UPDATE和DELETE操作中恢复SQL Server数据

ApexSQL Log 从意外UPDATE和DELETE操作中恢复SQL Server数据

详细脚本下载及教材:http://www.ddooo.com/softdown/117643.htm

转自:https://solutioncenter.apexsql.com/zh/%E5%A6%82%E4%BD%95%E4%BB%8E%E6%84%8F%E5%A4%96update%E5%92%8Cdelete%E6%93%8D%E4%BD%9C%E4%B8%AD%E6%81%A2%E5%A4%8Dsql-server%E6%95%B0%E6%8D%AE/

 

SQL DBA们的最惨的噩梦应该就是由于他们犯错而导致丢失数据了。这是很正常的对于不正确地执行了甚至忘记了在执行DELETE或UPDATE的时候加WHERE子句,最终导致数百万行数据也受到这个不加WHERE子句的update或delete牵连

那么,有哪些SQL Server数据恢复选项是可以用上的?

方案是使用一个备份,这个备份是灾难发生之前做的。

一般方案是使用已存在的数据库备份恢复丢失的数据库数据:

  1. 还原数据库备份,使用这个备份替换原来的数据库
  2. 否则
    • 在同一台服务器上还原备份,使用一个不同的数据库名
    • 在已还原的数据库上定位到相关的行
    • 使用已还原的数据库的原来的行更新原数据库受损坏的行

不幸的是,很少有这麽”整洁和干净“的还原场景可以使用这麽简单的方案。

更多的类似于:

  • 没有及早发现错误
  • 在最后一个数据库备份创建之后又发生了数据变更,并且那个查询是恢复变得更复杂
  • 大量涌入的新数据
  • 没有做常规的数据库备份,或者根本没有做备份

所有的复杂情况都会站不住阵脚

读取联机事务日志里的信息,事务日志备份或者分离的事务日志,为了恢复数据库数据,读取联机事务日志是恢复数据的一个选择。
ApexSQL Log 是一个SQL Server恢复工具 有读取事务日志数据的能力并且能依靠回滚事务来恢复丢失的数据库数据到它们原先的状态。

使用 ApexSQL Log 恢复由于意外UPDATE 或DELETE造成的数据库数据丢失:

    1. 启动 ApexSQL Log
    2. 连接到数据库
    3. 在Select SQL logs to analyze步骤,添加您想读取的事务日志备份和分离的事务日志文件。注意他们必须是来自一个完整的日志链的以便提供足够的审计信息。
      添加一个数据库备份可以帮助提升性能和审计跟踪数据的质量

    4. 使用过滤设置选项来收窄结果集 使用时间、操作类型、表名、用户和其他过滤选项

  • 当您设置了所有的选项之后,点击“打开”

您的事务将会被列出在应用程序主grid窗格。您依然能够在左边的面板使用过滤器去把额外的不需要的事务排除掉

执行数据恢复,再次检查您想回滚的事务并在Actions 这个tab窗格点击“Create undo script”

从脚本编辑器里执行脚本,点击“Execute ”按钮或者按F5键,丢失的数据将会在数据库里进行还原。

所以请记住,如果您无意地执行了DELETE/UPDATE,您依然可以使用 ApexSQL Log 在不同的情况下恢复丢失的数据库数据

翻译者: 林勇桦

July 2, 2015

ApexSQL Log 从意外UPDATE和DELETE操作中恢复SQL Server数据的更多相关文章

  1. How do I UPDATE from a SELECT in SQL Server?

    方法1 https://stackoverflow.com/questions/2334712/how-do-i-update-from-a-select-in-sql-server UPDATE T ...

  2. CRUD操作 create创建 read读取 update修改 delete删除

    1.注释语法:--,#2.后缀是.sql的文件是数据库查询文件3.保存查询4.在数据库里面 列有个名字叫字段 行有个名字叫记录 CRUD操作:create 创建(添加)read 读取update 修改 ...

  3. SQL Server DML(UPDATE、INSERT、DELETE)常见用法(一)

    1.引言 T-SQL(Transact Structured Query Language)是标准的SQL的扩展,是程序和SQL Server沟通的主要语言. T-SQL语言主要由以下几部分组成: 数 ...

  4. ApexSql Log 2016破解版&补丁

    绿色破解版: http://download.csdn.net/detail/gsyifan/9316993 官网: https://www.apexsql.com/sql_tools_log.asp ...

  5. ApexSQL Log中的Redo Script跟原始SQL不一致问题

    最近遇到一个误更新数据的问题,使用ApexSQL Log做挖掘事务日志的时候,发现ApexSQL Log生成的Redo Script跟原始SQL是有区别的.它们并不是完全一致的.只是逻辑上等价而已.如 ...

  6. ApexSql Log 2014.04.1133破解版&补丁

    已上传最新的2016版本,请移步: http://www.cnblogs.com/gsyifan/p/ApexSql_Log_2016_Crack.html 状态不好,鬼使补差的跑到服务器上updat ...

  7. 操作数据(insert、update、delete)

    插入数据 使用Insert Into 插入 if(exists(select * from sys.databases where name = 'webDB')) drop database web ...

  8. [转] hive0.14-insert、update、delete操作测试

    FROM : http://blog.csdn.net/hi_box/article/details/40820341 首先用最普通的建表语句建一个表: hive>create table te ...

  9. sql service ---- update和delete 误操作数据 ---- 恢复数据

    原文出处:http://blog.csdn.net/dba_huangzj/article/details/8491327 问题: 经常看到有人误删数据,或者误操作,特别是update和delete的 ...

随机推荐

  1. 【LeetCode】two num 利用comparable接口 对对象进行排序

    题目two num 题意:给定一个整数数组和一个目标值.要求在数组中找到两个数.使得它们的和相加等于目标值.而且返回两个数的下标 思路:1.假设使用暴力,时间复杂度为O(n^2) 2.能够先将全部数进 ...

  2. SpringCloud系列十一:自定义Feign

    1. 回顾 上文我们讲解了如何为服务消费者配置Feign. 在Spring Cloud中,Feign的默认配置类是FeignClientsConfiguration,该类定义了Feign默认使用的编码 ...

  3. Redis之ZSet命令

    0.前言 Redis有序集合ZSet可以按分数进行排序, 存储结构可能使用ziplist,skiplist和hash表, zset_max_ziplist_entries和zset_max_zipli ...

  4. Android中图片的三级缓存策略

    在开发过程中,经常会碰到进行请求大量的网络图片的样例.假设处理的不好.非常easy造成oom.对于避免oom的方法,无非就是进行图片的压缩.及时的回收不用的图片.这些看似简单可是处理起来事实上涉及的知 ...

  5. Atitit.手机验证码的破解---伪随机数

    Atitit.手机验证码的破解---伪随机数 1. 手机验证码几乎都是伪随机数1 2. 伪随机数1 2.1. 生成方法编辑1 2.2. 随机数的计算方法在不同的计算机中是不同的,即使在相同的计算机中安 ...

  6. Vue 组件 非父子组件通信

    有时候两个组件也需要通信(非父子关系),在简单的场景下,可以使用一个空的vue实例作为中央事件总线: var bus = new Vue(); //触发组件a中的事件 bus.$emit('id-se ...

  7. redis主从备份

    redis主从备份,默认是读写分离的,master用于写,slave用于读.slave的写只能用于存储一些短暂状态的变量,应为在下次同步时,会被移除. 配置主从备份原则:配从不配主,既只需修改从库配置 ...

  8. 在linux虚机中装vmtools

    很多用户在测试linux操作系统的时候喜欢用虚拟机,因为虚拟机方便而且可以同时在一台PC机上虚拟出来不同版本的linux操作系统,但是虚拟机和物理机之间的文件传输倒成了个问题,有人说可以使用vmtoo ...

  9. python之函数enumerate()

    enumerate函数可以遍历列表 for i in range(len(a)): print a[i] 等价于: for index,item in enumerate(a): print inde ...

  10. python学习---简介

    http://www.cnblogs.com/wuguanglei/p/3866583.html http://www.cnblogs.com/wuguanglei/p/3866583.html ok ...