[原创] SQL Server数据库误删除表中记录的数据恢复

[复制链接]
  • TA的每日心情
    奋斗
    2012-4-26 09:23
  • 签到天数: 2 天

    [LV.1]布衣百姓

    121

    主题

    382

    回帖

    5万

    积分

    Administrator

    Rank: 9Rank: 9Rank: 9

    积分
    59707
    QQ
    发表于 2014-12-24 14:19:51 | 显示全部楼层 |阅读模式
    SQL Server数据库误操作不小心delete了一下,还是update一下怎么恢复数据呢?,或者直接把数据库删除了,如何恢复误删除的数据呢?操作还是小心谨慎不出问题的好~~  

    1:建立测试环境创建表,插入几条数据;

    001JianKu.png

    002JianBiao.png
    1. CREATE DATABASE INTOHARD

    2. CREATE TABLE I1(ID INT PRIMARY KEY)
    3. INSERT INTO dbo.I1(ID)VALUES (0)
    4. INSERT INTO dbo.I1(ID)VALUES (1)
    5. INSERT INTO dbo.I1(ID)VALUES (2)
    6. INSERT INTO dbo.I1(ID)VALUES (3)
    7. INSERT INTO dbo.I1(ID)VALUES (5)
    复制代码

    003Chaxun.png

    查询一下数据插入成功了没有;
    1. SELECT * FROM dbo.I1
    复制代码



    好了,我们现在有一个数据库,备份一下:
    004Backup.png

    005_1.png
    备份完成,下面再插入一条数据;
    INSERT INTO dbo.I1(ID)VALUES (6)
    006Cha.png

    查询一下表内数据;
    1. SELECT * FROM dbo.I1
    复制代码

    007ChaX.png

    2:误操作把数据删除了,怎么办?
    008Qing.png
    数据表内数据空空如也,问题来了,数据恢复技术哪家强....
    不要着急,立即备份数据库,这里要做日志备份,然后才可以完成数据恢复;
    a):备份数据库事务
    1. backup LOG INTOHARD to disk='c:\test\I1_06.bak' with NORECOVERY;
    复制代码

    009_B.png

    注意还原事件,我们要选择恢复时间,也就是在你删除的前一刻,恢复完成后数据又回来了。

    011_B.png
    b):还原数据库语句:
    1. restore log INTOHARD from disk='C:\I1_06.BAK' with stopat='2014-12-24 13:50:25'
    复制代码


    想要通过LOG恢复误删的数据需要满足至少以下条件:

    1. 至少有一个误删除之前的数据库完全备份(不分时间段)。
    2. 数据库的恢复模式(Recovery mode)是“完整(Full)”。

    full.png

    针对这两个前提条件总结,如果这两个前提条件都存在,通过SQL语句只需三步就能恢复。INTOHARD.COM

      a) 备份当前数据库的事务日志:BACKUP LOG INTOHARD TO disk= 'c:\test\I1_06.bak' WITH NORECOVERY

      b) 恢复一个误删除之前的完全备份:RESTORE DATABASE INTOHARD FROM DISK = 'c:\test\I1_06.bak' WITH NORECOVERY,  REPLACE

      c) 将数据库恢复至误删除之前的时间点:RESTORE LOG INTOHARD FROM  DISK = 'c:\test\I1_06.bak' WITH   STOPAT = N'2014-12-24 13:51:35' , RECOVERY

    对于在删除恢复中可能出现的问题:

    1:只恢复部份数据,例如某张表里面删除了3,4,5记录,但发现删错了,需要恢复记录4,可以通过全部恢复后删除3,5;

    2:用户李误操作导致A表中删除了3、4、5记录,用户王正常在某表中也删除了数据;怎么恢复A删除的数据呢?通过运行库与还原库对比,找出删除数据回导,正常用户删除数据不管。如果是关系表,删除了一张表内数据,通过主键与外键对比得出。

    3:恢复数据之前是提前备份了数据库的,在实际中不能实时的去备份数据库的,如果没有备份怎么办?直接做一个全备,然后恢复到删除数据之前的一刻。

    END.png

    INTOHARD.COM写在最后的话:数据库发生数据丢失或损坏,保护好现场则可能是对数据最有利的措施。

    文档电子版: SQL Server数据库误删除表中记录的数据恢复.rar (1.03 MB, 下载次数: 246)

    未完待续:SQL Server数据库误删除表的数据恢复
  • TA的每日心情
    开心
    2015-3-14 12:16
  • 签到天数: 3 天

    [LV.2]九品芝麻官

    15

    主题

    314

    回帖

    254

    积分

    [INTOHARD]排长

    Rank: 3Rank: 3

    积分
    254
    QQ
    发表于 2014-12-24 22:23:45 | 显示全部楼层
    真的不错呀,学习了,呵呵呵呵
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2015-3-14 10:14
  • 签到天数: 10 天

    [LV.3]八品县丞

    3

    主题

    78

    回帖

    166

    积分

    [INTOHARD]班长

    Rank: 2

    积分
    166
    发表于 2014-12-24 22:41:20 | 显示全部楼层
    学习了,虽然不是很懂
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    2

    回帖

    3

    积分

    [INTOHARD]工兵

    Rank: 1

    积分
    3
    发表于 2014-12-28 11:22:25 | 显示全部楼层
    2000的数据库能不能这样恢复的?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-12-28 16:18
  • 签到天数: 20 天

    [LV.4]七品知县

    17

    主题

    801

    回帖

    933

    积分

    [INTOHARD]连长

    Rank: 4

    积分
    933
    发表于 2014-12-30 13:35:57 | 显示全部楼层

    学习了,虽然不是很懂
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2018-5-15 17:22
  • 签到天数: 407 天

    [LV.9]二品侍郎

    0

    主题

    489

    回帖

    2096

    积分

    [INTOHARD]营长

    Rank: 6Rank: 6

    积分
    2096
    发表于 2014-12-31 12:08:31 | 显示全部楼层
    先下载了,再反复研究,感谢分享
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-1-1 12:26
  • 签到天数: 3 天

    [LV.2]九品芝麻官

    4

    主题

    19

    回帖

    13

    积分

    [INTOHARD]工兵

    Rank: 1

    积分
    13
    QQ
    发表于 2015-1-1 11:44:53 | 显示全部楼层
    这个是真正的人才,要支持下
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-1-1 12:26
  • 签到天数: 3 天

    [LV.2]九品芝麻官

    4

    主题

    19

    回帖

    13

    积分

    [INTOHARD]工兵

    Rank: 1

    积分
    13
    QQ
    发表于 2015-1-1 11:45:10 | 显示全部楼层
    能不能教下我,感谢
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-1-1 12:26
  • 签到天数: 3 天

    [LV.2]九品芝麻官

    4

    主题

    19

    回帖

    13

    积分

    [INTOHARD]工兵

    Rank: 1

    积分
    13
    QQ
    发表于 2015-1-1 11:45:44 | 显示全部楼层
    我有个数据库删除了,但是用同名的覆盖了,能修复吗
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表