题目部分
在Oracle中,执行TRUNCATE后有哪些恢复方法?
♣
答案部分
在求职数据库相关的岗位的时候,经常会被问到一个问题:在开发或维护过程中误操作TRUNCATE了一张表,如何恢复?这个时候应该由简到难地回答,可以按照如下的步骤进行回答:
① 是否有测试库,测试库的表数据和当前数据是否一致,若一致,则可以考虑从测试库把表数据导入到被删除的库中。
② 是否有exp或expdp逻辑备份,若有,则可以导入到被删除的库中。
③ 是否有RMAN备份,若有,则可以将数据恢复到其它地方,然后将数据库exp出来,最后导入到被删除的库中。
④ 数据库是否开启了闪回,如果开了闪回则可以利用闪回数据库的特性找回数据。
⑤ 利用TSPITR,表空间基于时间点的恢复技术来恢复。
⑥ 是否有归档,若有则可以采用LogMiner进行日志挖掘。
⑦ 若以上这些办法都不能恢复,则可以尝试无备份情况下的恢复,这里推荐两种办法,fy_recover_data包和gdul工具,关于这两种工具的具体使用案例可以参考作者的博客。
& 说明:
有关TRUNCATE比较完整的内容可以参考我的BLOG:http://blog.itpub.net/26736162/viewspace-2082965/
本文选自《Oracle程序员面试笔试宝典》,作者:小麦苗
About Me:小麦苗
● 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用
● 作者博客地址:http://blog.itpub.net/26736162/abstract/1/
● 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解
● 版权所有,欢迎分享本文,转载请保留出处
● QQ:646634621 QQ群:618766405
● 提供OCP、OCM和高可用部分最实用的技能培训
● 题目解答若有不当之处,还望各位朋友批评指正,共同进步