ApexSQL Recover 恢复一个被drop的表的数据

没有备份的状况下恢复一个被drop的表的数据

ApexSQL Recover 恢复一个被drop的表的数据

转自:https://solutioncenter.apexsql.com/zh/%E6%B2%A1%E6%9C%89%E5%A4%87%E4%BB%BD%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E6%81%A2%E5%A4%8D%E4%B8%80%E4%B8%AA%E8%A2%ABdrop%E7%9A%84%E8%A1%A8%E7%9A%84%E6%95%B0%E6%8D%AE/html

 

若是你曾经意外地执行过一个 DROP 语句而且你以前有一个数据库完整备份,在你drop掉表以前数据库没有发生任何改变,完整备份能让你简单地依靠覆盖数据库来恢复数据。 然而,事情并无那么简单,由于每每数据库对象和数据在 DROP 语句执行以后都会发生变化又或者你没有作合理的备份,那么就没有方法去还原你丢失的数据。sql

 

那就是说,每个 DROP 操做会被记录在SQL Server的事务日志里。这表示事务日志存储里足够的信息去回滚事务,而且若是数据库处于完整恢复模式下,对于 DROP 操做数据库备份可以支持时点还原。数据库

正由于 DROP 操做是被记录到事务日志的,若是它被包含在一个显式,活动事务里那么是可以被回滚的。例如,下面的SQL 查询:工具

DROP TABLE Customer SELECT * FROM Customer

会显示出 Msg 208, Level 16, State 1 这样的结果,错误消息 由于 Customer 表已经被drop掉了post

然而,下面的SQL 代码:url

BEGIN TRAN DROP TABLE Customer ROLLBACK SELECT * FROM Customer

会返回 Customer 表全部的记录行数由于 DROP 表操做被回滚了。spa

已经被 DROP 的表就不能回滚,很明显这个表存储的数据也会丢失。 那是否是说因为 DROP 操做在没有数据库完整备份的状况下你就不可以恢复丢失的数据了呢?翻译

幸运的是,不是的,ApexSQL Recover在这里就可以发挥它的做用日志

ApexSQL Recover 恢复工具,可以恢复已删除的,截断了的(truncate,损坏的或者置疑的数据。它能恢复因为drop操做而丢失的对象和数据而且
能够还原删除了的和在线BLOBs文件让它可以像SharePoint 恢复那样完美。code

要恢复因为 DROP 操做而且没有备份的数据丢失状况,只须要按下面的来作:

  1. 启动 ApexSQL Recover
  2. 选择恢复因为DROP操做致使丢失的数据
  3. 在Select the database to recover 的步骤:
    • 指定你想恢复数据的数据库所在的SQL实例 在server下拉框旁边
    • 指定SQL实例的验证方法(若是你选择SQL Server受权请选择一个合法的证书)
    • 在数据库下拉列表中指定数据库名

    而后点击“下一步”

  4. 在“ Are additional data sources available?”步骤, 选择“No additional transaction logs are available ”选择

  5. 在“Select a recovery action”步骤,选择“Save recovery script to file”选项并指定一个T-SQL脚本文件保存的路径,全部的已丢失数据都插入到这个脚本文件并保存起来

  6. 点击“恢复”

就像那样,你会获取到全部的你所丢失的数据,在没有一个单独SQL数据库备份的状况下。

翻译者: 林勇桦

 

 

  

 

July 2, 2015
相关文章
相关标签/搜索