首頁 資料庫 mysql教程 表误删记录恢复操作

表误删记录恢复操作

Jun 07, 2016 pm 03:59 PM
處理 恢復 操作 記錄

表误删记录恢复操作 最近处理了个用户误删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 来判断到底是不是该恢复的这部分数据。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

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

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

熱門話題

Java教學
1665
14
CakePHP 教程
1423
52
Laravel 教程
1321
25
PHP教程
1269
29
C# 教程
1249
24
拼多多買過的東西在哪裡查看記錄 查看買過的商品記錄的方法 拼多多買過的東西在哪裡查看記錄 查看買過的商品記錄的方法 Mar 12, 2024 pm 07:20 PM

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

WIN10服務主機太佔cpu的處理操作過程 WIN10服務主機太佔cpu的處理操作過程 Mar 27, 2024 pm 02:41 PM

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

抖音怎麼恢復聊天火花 抖音怎麼恢復聊天火花 Mar 16, 2024 pm 01:25 PM

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

學習PHP中如何處理特殊字元轉換單引號 學習PHP中如何處理特殊字元轉換單引號 Mar 27, 2024 pm 12:39 PM

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

win10開機密碼忘記按F2怎麼操作 win10開機密碼忘記按F2怎麼操作 Feb 28, 2024 am 08:31 AM

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

小紅書被刪除的留言怎麼恢復?被刪除的評論有提示嗎? 小紅書被刪除的留言怎麼恢復?被刪除的評論有提示嗎? Mar 27, 2024 am 11:56 AM

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

emmo日記刪除如何恢復 emmo日記刪除如何恢復 Feb 27, 2024 pm 04:40 PM

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

Linux Deploy的操作步驟及注意事項 Linux Deploy的操作步驟及注意事項 Mar 14, 2024 pm 03:03 PM

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

See all articles