sql server TRUNCATE TABLE 的数据能恢复吗

发布网友 发布时间:2022-04-21 20:49

我来回答

12个回答

热心网友 时间:2022-04-11 18:32

用闪回和归档日志可以恢复。
闪回和归档日志就是对数据库进行的备份处理,truncate table后只是对当前数据库的表操作,而不影响闪回文件和归档日志,当然可以恢复。
不要说truncate table,数据库没了应该都可以恢复,
只要找到一个全库备份和之后的增量备份即可。

SQL>select current_scn from v$database; //查看数据scn
SQL>alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
SQL>select sysdate from al;
SQL>select * from table1 as of scn xxxx;
SQL>select * from table1 as of timestamp '2009-02-08 14:12:23'

热心网友 时间:2022-04-11 19:50

分析问题:如果没有再操作表是可以的。就是上一次操作是清空了数据,那就是可以恢复的
解决方法:
具体操作如下:
alter table TRUNCATE TABLE enable row movement
--truncate 闪回
flashback table TRUNCATE TABLE to timestamp to_timestamp('2010-05-13 17:00:00','yyyy-mm-dd hh24:mi:ss')
--drop 闪回
flashback table TRUNCATE TABLE to before drop

热心网友 时间:2022-04-11 21:25

不能直接恢复。
但是如果你曾经对数据库做过备份,可以用备份改名恢复后,导出对应表中的记录。
如果没有,那就没有办法了。
所以,备份是非常重要的,一定要选择合理的时间间隔,设置一个完整备份任务。

热心网友 时间:2022-04-11 23:16

如果没有再操作表是可以的。

alter table 你删除的表 enable row movement
--truncate 闪回
flashback table 你删除的表 to timestamp to_timestamp('2011-09-27 15:00:05','yyyy-mm-dd hh24:mi:ss')
--drop 闪回
flashback table 你删除的表 to before drop

用回滚???
我还真没遇到过。。。

热心网友 时间:2022-04-12 01:24

基本不可以了,TRUNCATE是一个DDL语言,向其他所有的DDL语言一样,他将被隐式提交,不能对TRUNCATE使用ROLLBACK命令。
使用TRUNCATE TABLE 删除的数据不记录日志

热心网友 时间:2022-04-12 03:49

能不能恢复,主要是看你有没有做备份。
如果你在TRUNCATE TABLE前做了备份,就可以使用这个备份进行恢复。
如果没有做的话,那就恢复不了了。

热心网友 时间:2022-04-12 06:30

这个可以恢复,前几天我们还给一个客户处理过十几G的库被truncate 掉大部分表的case

网页链接

热心网友 时间:2022-04-12 09:28

不可以 你都把表清空了 ,出去你之前做了数据库备份

热心网友 时间:2022-04-12 12:43

楼上是ORACLE吧,MSSQL如果用truncate table,基本是无解了。因为不记录日志。所以删表之前还是要做好备份。

热心网友 时间:2022-04-12 16:14

估计没戏,都截断日志了。

热心网友 时间:2022-04-12 20:02

被TRUNCATE是无法恢复的

热心网友 时间:2022-04-13 00:07

没日记或备份的情况下好像不可以

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com