下载地址: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. Android编程之Fragment使用动画造成Unknown animation name: objectAnimator异常

    在为Fragment做切换动画.启动后遇到了一个异常: Caused by: java.lang.RuntimeException: Unknown animation name: objectAni ...

  2. tony_nginx_01_如何在linux系统下安装nginx、pcre、zlib、openssl工具

    nginx可以使用各平台的默认包来安装,本文是介绍使用源码编译安装,包括具体的编译参数信息. 正式开始前,编译环境gcc g++ 开发库之类的需要提前装好,这里默认你已经装好. ububtu平台编译环 ...

  3. AndroidManifest.xml配置

    AndroidManifest.xml配置文件对于Android应用开发来说是非常重要的基础知识,本文旨在总结该配置文件中重点的用法,以便日后查阅.下面是一个标准的AndroidManifest.xm ...

  4. jQuery EasyUI DataGrid在MVC中的运用-基本属性并实现分页

    ※ datagrid的基本属性和方法  ※ datagrid分页在前后台的实现 最终效果:    与视图显示对应的view model   public class Book public strin ...

  5. C语言指针解说

    指针是C语言的一种数据类型.类似于C中的其它类型,比如int ,char 等.既然指针是一种类型,当我们定义该类型变量.该类型变量就称为指针变量. C中有了指针就有了指向. 指向:指针变量指向本身保存 ...

  6. CPU亲和力

    http://blog.chinaunix.net/uid-27714502-id-3515874.html http://www.tuicool.com/articles/I7NFzy http:/ ...

  7. phpexcel图形图表(一)入门

    PHPExcel - Excel的PHP处理引擎 PHPExcel 提供了一系列的 PHP语言 类,让你可以轻松地读写操作以下格式的文件:.xls/.xlsx/.csv/.ods/Gnumeric/P ...

  8. 个人博客开发之xadmin 布局和后台样式

    项目源码下载:http://download.vhosts.cn 一. xadmin 后台配置注册信息 1. 在apps 的blogs 和 users 两个app中添加adminx.py文件 vim ...

  9. Android startActivity()和onActivityResult()使用总结(转载)

    有三个Activity: A.java ,B.java ,C.java Activity之间的跳转常用方法: 1. startActivity(Intent intent); 该方法只用于启动新的Ac ...

  10. Linux Linux常用命令二

    whoami 我是谁命令 --该命令用户查看当前系统当前账号的用户名 --由于系统管理员通常需要使用多种身份登录系统,李儒通常使用普通用户登录系统,然后再以su命令切换到root身份对系统进行灌篮.这 ...