Oracle数据库11g如何恢复表数据

情感   2024-12-23 11:01   安徽  


· Oracle数据库11g如何恢复表数据 ·



生产环境误(Oracle 11g)删除表数据之后怎么办,冷静对应,不需要跑路!


首先要看删除数据的方式,是delete还是truncate。

区别点

truncate

delete

执行速度

极快

命令分类

DDL(数据定义语言)

DML(数据操作语言)

删除对象

表数据

表数据

where句

不可使用

可使用

回滚

不可回滚

可回滚

恢复方法

Fy_recover_data工具包

使用flashback命令回滚

恢复限制

如果truncate后又有新数据写入则彻底无法恢复,
表数据文件块被覆盖则无法恢复完整数据。

DB参数DB_FLASHBACK_RETENTION_TARGET控制恢复时间范围,默认值24小时。


Delete的对应较为简单,使用flashback命令可以恢复到24小时之内任何时间点的状态。

1.赋予要恢复的表恢复权限

alter table xla.xla_ae_lines enable row movement

 

2.使用flashback恢复表数据到某一时间点,通常24小时之前的数据将无法恢复

flashback table xla.xla_ae_lines TO TIMESTAMP to_timestamp('2013-09-10 14:00:00','yyyy-mm-dd hh24:mi:ss') 


Truncate的对应则较为麻烦。

1.首先要导入Fy_recover_data工具包,这个包是oracle内部人员使用,未正式公开。

下载地址: http://www.hellodba.com/Download/FY_Recover

创建测试表,将其truncate掉


导入下载的FY_Recover_Data.pck包

开始执行恢复,输入参数schema,table_name

从上面的记录中,可以看到表被恢复为sys.test$$

之后将恢复出来的数据插入test表中即可

总结,尽量不要使用truncate删除数据,生产环境更新数据时规范的作业流程必不可少。








 END 





作者 / 章硕吉

审核 / 陈   兴

编辑 / 王   锐




爱记不记的记忆碎片
呐,这是知识碎片,你爱记或不爱记,TA就在这~(就是这么傲娇)
 最新文章