表误删记录恢复操作
表误删记录恢复操作 最近处理了个用户误删delete table 的故障,这里做了一个简单的汇总,文章内容整理自pub 里的各位大师的精粹,我这里偷个懒直接拿来用下。 基本处理思路: 1.如果还没有提交,用rollback。(应该不大可能。) 2.如果提交时间超过5分钟以
表误删记录恢复操作
最近处理了个用户误删delete table 的故障,这里做了一个简单的汇总,文章内容整理自pub 里的各位大师的精粹,我这里偷个懒直接拿来用下。
基本处理思路:
1.如果还没有提交,用rollback。(应该不大可能。)
2.如果提交时间超过5分钟以上且小于undo_retention的设置,可以使用回闪功能。具体限制和操作可以参考:http://blog.itpub.net/post/468/15464
3.如果上述两条都不满足,可以使用logminer从redo中恢复,logminer的使用限制和描述可以参考:http://blog.itpub.net/post/468/13436
这里有一个使用logminer的简单的例子:http://blog.itpub.net/post/468/11764
4.如果这个日志已经重用且没有启用归档模式,那么你只能从备份中恢复了
2.使用闪回恢复表数据
2.1----flashback table
主要是是用undo 表空间的内容
注意:需要启用表的row movement
----格式化时间
SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
SQL> select sysdate from dual;
SYSDATE
-------------------
2014-07-27 20:23:37
----enable row movement
Alter table xxx enable row movement:
----根据scn 闪回表:
SQL> flashback table kel.t1 to scn 896744;
---根据时间点闪回表:
SQL> flashback table kel.t1 to timestamp to_timestamp('2014-07-28 00:18:00','yyyy-mm-dd hh24:mi:ss');
2.2----flashback query:
flashback query只能看到某一个时间点的对象的状态,而不能看到某个时间段内的状态变化。
select * from tb as of timestamp to_timestamp('2014-07-27 20:23:37','yyyy-mm-dd hh24:mi:ss');
2.3-----flashback drop
用于恢复用户误删除的对象,包括表、索引等,依赖于tablespace recycle bin ,表空间回收站
初始化参数recyclebin参数用于控制是否启用recyclebin功能,缺省是ON
在recycle bin中,oracle可以区分不同用户的同名的表。
recycle bin的维护:
1、只能用于非系统表空间和本地管理的表空间
2、如果对象创建在本地管理的表空间,而关联对象,比如索引创建在字典管理的表空间上,则恢复时字段管理的表空间关联对象不能被恢复
3、对象是否能恢复成功,取决于对象空间是否被覆盖重用
4、不能对recycle bin中的内容进行DML和DDL的操作,只能做查询操作
5、对象的参考约束不能被恢复,也就是外键约束需要重建
手动清除recycle bin的空间:
purge tablespace kel
db_flashback_retention_target Default value 1440 (minutes)
闪回查询使用的是undo 信息
UNDO_RETENTION 理解:
The UNDO_RETENTION parameter is ignored for a fixed size undo tablespace. The database may overwrite unexpired undo information when tablespace space becomes low.
如果undo 表空间大小是固定的,则oracle会忽略 undo_retention 参数的设置,在undo 空间不足的情况下,oracle可能会覆盖未过期的undo 信息。
For an undo tablespace with the AUTOEXTEND option enabled, the database attempts to honor the minimum retention period specified by UNDO_RETENTION. When space is low, instead of overwriting unexpired undo information, the tablespace auto-extends. If the MAXSIZE clause is specified for an auto-extending undo tablespace, when the maximum size is reached, the database may begin to overwrite unexpired undo information.
当undo 是自动扩展的,oracle 会尽可能的保证 undo_retention 设置的undo保留时间;当undo 空间不够使oracle 会优先自动扩展undo 表空间,而不是去覆盖未过期的undo 信息,如果undo tbs 设置了 maxsize 参数,则在达到undo最大空间时,oracle可能就会去覆盖那些未过期的undo信息。
注意:对于在system表空间的中对象,使用闪回drop 无效,因为被drop的对象不会被放在 recyclebin 中:
----确认是否启用recyclebin功能
SQL> show parameter recyclebin
----可以通过视图来进行查看recycle bin中的对象列表:
select object_name as recycle_name,original_name from recyclebin;
----可以像查看普通表一样,来查看recycle bin 中对象的内容:
select count(*) from "BIN$/ti6DA4axIDgQKjAbgFLmA==$0";
要使用flashback drop功能恢复误删除的表,需要做以下几点:
1、确认已删除的表在recycle bin中
2、使用flashback table来进行恢复
如果同名的表在recycle bin中存在,可以恢复到需要的那个表:
select count(*) from "BIN$/ti6DA4cxIDgQKjAbgFLmA==$0";--查看哪个是想恢复的表
---恢复表
flashback table "BIN$/ti6DA4exIDgQKjAbgFLmA==$0" to before drop;
---恢复表并且重命名为kel1
flashback table kel to before drop rename to kel1;
3.使用oracle logminer 来进行数据恢复:
logmnr其实是非常有用的一个恢复数据的工具,今天有人提到恢复700万的数据,我也做过几万条财务数据的恢复,借此小结一下。
--创建一个表来保存提取出来的sql
create table logmnr_content tablespace tools as select scn,cscn,TIMESTAMP,sql_undo from v$logmnr_contents where 1=0;
--通过dba_objects 查到表对应的 object_id and data_object_id ,用来在log中提取该表相关的sql_undo
select object_id,data_object_id from dba_objects where object_name = ???
--通过在os中找到的归档日志范围,进行联机提取
将undo sql 插入一个表中,比如我的日志序号范围是 5813 到 5850
为了防止临时空间不足,一个一个归档日志文件处理。
begin
for i in 8..24 loop
dbms_logmnr.add_logfile(LogFileName=>'/disk2/oradata/arch/crmcn/crmcn_1_'||i||'.arc');
dbms_logmnr.start_logmnr(Options => sys.dbms_logmnr.DICT_FROM_ONLINE_CATALOG);
dbms_logmnr.start_logmnr();
insert into logmnr_content(scn,cscn,TIMESTAMP,sql_undo )
select scn,cscn,TIMESTAMP,sql_undo from v$logmnr_contents
where DATA_OBJD# = 52528;
commit;
dbms_logmnr.end_logmnr();
end loop;
end
/
--将提取出来的sql通过动态sql执行插入表
declare
sql_str varchar2(4000);
begin
for c in (select * from logmnr_content) loop
sql_str := replace(c.sql_undo,';','');
execute immediate sql_str;
end loop;
commit;
end;
注意:如果在这段日志中还有其他对该表的操作的话,可以结合操作类型 OPERATION 和提交scn cscn 来判断到底是不是该恢复的这部分数据。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

拼多多軟體內提供的商品好物非常多,隨時隨地想買就買,而且每一件商品品質都是嚴格把關的,件件商品都是正品,不同還有非常多優惠的購物折扣,讓大家網購根本停不下來。輸入手機號碼在線登錄,在線添加多個收貨地址和聯繫方式,可以隨時查看最新的物流動態,不同品類的商品板塊都是開放的,搜索上下滑動選購下單,足不出戶輕鬆體驗便捷的網購服務,還能查看所有的購買記錄,包括自己買過的商品,數十個購物紅包、優惠券免費領取使用,現在小編在線詳細為拼多多用戶們帶來查看買過的商品記錄的方法。 1.打開手機,點選拼多多圖標,

1.首先我們右鍵點選任務列空白處,選擇【任務管理器】選項,或右鍵開始徽標,然後再選擇【任務管理器】選項。 2.在開啟的任務管理器介面,我們點選最右邊的【服務】選項卡。 3.在開啟的【服務】選項卡,點選下方的【開啟服務】選項。 4.在開啟的【服務】窗口,右鍵點選【InternetConnectionSharing(ICS)】服務,然後選擇【屬性】選項。 5.在開啟的屬性窗口,將【開啟方式】修改為【禁用】,點選【應用程式】後點選【確定】。 6.點選開始徽標,然後點選關機按鈕,選擇【重啟】,完成電腦重啟就行了。

在抖音這個充滿創意與活力的短影片平台上,我們不僅可以欣賞到各種精彩內容,還能與志同道合的朋友展開深入的交流。其中,聊天火花作為衡量雙方互動熱度的重要指標,常常在不經意間點燃我們與好友之間的情感連結。然而,有時由於一些原因,聊天火花可能會斷開,那麼如果我們想要恢復聊天火花究竟該如何操作呢,這篇教程攻略就將為大家帶來詳細的內容攻略介紹,希望能幫助到大家。抖音聊天火花斷了怎麼恢復? 1.開啟抖音的訊息頁面,選擇好友聊天。 2、互發訊息聊天。 3.連續發送訊息3天,就可以獲得火花標識。在3天基礎上,互發圖片或視

在PHP開發過程中,處理特殊字元是常見的問題,尤其是在字串處理中經常會遇到特殊字元轉義的情況。其中,將特殊字元轉換單引號是比較常見的需求,因為在PHP中,單引號是一種常用的字串包裹方式。在本文中,我們將介紹如何在PHP中處理特殊字元轉換單引號,並提供具體的程式碼範例。在PHP中,特殊字元包括但不限於單引號(')、雙引號(")、反斜線()等。在字串

想必很多的用戶家裡都有那麼幾台不用的電腦,因為長時間不用完全忘了開機密碼,於是想知道一下,忘記密碼要怎麼操作呢?那就一起來看看吧。 win10開機密碼忘記按F2怎麼操作1、按下電腦的電源鍵,然後開機時按下F2(不同電腦品牌進入bios的按鍵也不同)。 2.在bios介面中,找到security選項(不同品牌電腦的位置可能有所不同)。一般都在頂部的設定選單中。 3.然後找到SupervisorPassword選項並且點選。 4.這時候用戶就可以看到自己的密碼了,同時找到旁邊的Enabled切換為Dis

小紅書作為一款受歡迎的社群電商平台,用戶可以在這裡分享購物心得、生活點滴等。在使用過程中,有些用戶可能會遇到自己發布的評論被刪除的情況。那麼,小紅書被刪除的評論要怎麼恢復呢?一、小紅書被刪除的評論怎麼恢復?如果發現評論被誤刪,用戶可以選擇靜待小紅書官方團隊進行復原。在這種情況下,最好保持耐心等待,因為官方團隊可能會在一段時間後自動處理並恢復評論。如果您發現評論已被刪除,可以考慮重新發布類似內容。但在重新發佈時,請確保內容符合小紅書的社群準則,以免再次遭到刪除。 3.聯絡小紅書客服:如果認為自己的評論被誤

Emmo日記是專為記錄心情而設計的軟體,它為你提供了一個私密的日記空間,讓你能夠記錄下每天的重要或瑣碎的事情。透過獨特的情緒辨識技術,Emmo日記還能幫助你更能理解和處理自己的情緒。但是有的時候發現自己日記被誤刪了以後卻不知道該如何恢復,那麼這篇教程攻略就將為大家帶來詳細的恢復攻略介紹,希望能幫助到各位有需要的小伙伴們。 emmo怎麼找回之前的日記? 1.在emmo選擇畫面左下角【設定】圖標點擊進入;2、選擇畫面【資料備份與恢復】圖標,進入操作即可。

LinuxDeploy的操作步驟及注意事項LinuxDeploy是一款強大的工具,可協助使用者在Android裝置上快速部署各種Linux發行版,讓使用者在行動裝置上體驗完整的Linux系統。本文將詳細介紹LinuxDeploy的操作步驟以及注意事項,同時提供具體的程式碼範例,幫助讀者更好地使用此工具。操作步驟:安裝LinuxDeploy:首先在
