下载地址: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. springboot学习(八) 使用jpa访问数据库

    1.添加maven依赖 <dependency> <groupId>mysql</groupId> <artifactId>mysql-connecto ...

  2. 数据库open报错ORA-01555: snapshot too old

    原文博客链接地址:数据库open报错ORA-01555: snapshot too old 今天正在东莞蜜月的时候.一个学生说他管理的測试库出问题了,无法open,我们先来看看是什么问题: Recov ...

  3. 移动端数据库新王者:realm

    介绍 realm是一个跨平台移动数据库引擎,支持iOS.OS X(Objective-C和Swift)以及Android. 2014年7月发布.由YCombinator孵化的创业团队历时几年打造,是第 ...

  4. c++ telescoping constructor is NOT supported until c++11

    Telescoping constructor: see Effective Java 2nd Edition Item 2 If you want to use telescoping constr ...

  5. Java并发编程(九)安全发布

    之前讨论是如何将对象封闭在线程之中,这样可以减少一些并发带来的同步和可见性问题.但是在有些时候,我们希望在多个线程间共享对象,此时必须确保安全地进行共享. [不安全发布的示例] 可见性问题:其他线程看 ...

  6. openfile

    linux修改open files数   概要 linux系统默认open files数目为1024, 有时应用程序会报Too many open files的错误,是因为open files 数目不 ...

  7. java -- 路径中包含空格怎么处理

    @.使用toURI()方法 String rootPath = this.getClass().getClassLoader().getResource(".").toURI(). ...

  8. 第一百九十一节,jQuery EasyUI 入门

    jQuery EasyUI 入门 学习要点: 1.什么是 jQuery EasyUI 2.学习 jQuery EasyUI 的条件 3.jQuery EasyUI 的功能和优势 4.其他的 UI 插件 ...

  9. Sping 的 BeanFactory 容器

    Sping 的 BeanFactory 容器 这是一个最简单的容器,它主要的功能是为依赖注入 (DI) 提供支持,这个容器接口在 org.springframework.beans.factory.B ...

  10. java中.currentTimeMillis的用法和含义

    用法:可以用法获取当前时间的毫秒数,可以通过毫秒数进行时间比较,时间转化以及时间格式化等.public class SystemTime {public static void main(String ...