導航:首頁 > 數據處理 > oracle誤刪數據怎麼回退

oracle誤刪數據怎麼回退

發布時間:2022-12-20 12:00:19

㈠ Oracle數據被刪除後,如何恢復

刪除表後,可以採用如下操作:
在 user_recyclebin中找到最近操作過的表名稱,然後用閃回(只能用於10G及以上版本)。
FLASH BACK TABLE TABLE_NAME TO BEFORE DROP;
如果是刪了或修改裡面的數據,可以先建立一個快表將刪除修改之前狀態的數據找回到這個表中:
CREATE TABLE QUICK_TABLE AS
SELECT * FROM TABLE_NAME AS OF TIMESTAMP SYSDATE-1/24 (一小時前的),減去的時間可以自己定 如:select * from TABLE_NAME AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '1' MINUTE)

㈡ oracle怎麼恢復已刪除數據

1、獲得當前資料庫的scn號
select current_scn from v$database; (切換到sys用戶或system用戶查詢)
查詢到的scn號為:1499223
2、查詢當前scn號之前的scn
select * from 表名 as of scn 1499220; (確定刪除的數據是否存在,如果存在,則恢復數據;如果不是,則繼續縮小scn號)
3、恢復刪除且已提交的數據
flashback table 表名 to scn 1499220;

㈢ oracle資料庫誤操作把表刪除了,怎麼找回

一:表的恢復x0dx0ax0dx0a 對誤刪的表,只要沒有使用PURGE永久刪除選項,那麼從flash back區恢復回來希望是挺大的。一般步驟有:x0dx0ax0dx0a1、從flash back里查詢被刪除的表x0dx0ax0dx0a select * from recyclebinx0dx0ax0dx0a2.執行表的恢復x0dx0ax0dx0a flashback table tb to before drop,這里的tb代表你要恢復的表的名稱。x0dx0ax0dx0a二:表數據恢復x0dx0ax0dx0a 對誤刪的表記錄,只要沒有truncate語句,就可以根據事務的提交時間進行選擇恢復,一般步驟有:x0dx0ax0dx0a1、先從flashback_transaction_query視圖里查詢,視圖提供了供查詢用的表名稱、事務提交時間、UNDO_SQL等欄位。x0dx0ax0dx0a 如:select * from flashback_transaction_query where x0dx0atable_name='TEST'x0dx0ax0dx0a 2、執行表記錄恢復x0dx0ax0dx0a 一般先根據時間進行查詢,查詢語句模式為select * from tb as of timestamp x0dx0ato_timestamp(time,'yyyy-mm-dd hh24:mi:ss'); tb指表名稱,time指某個時間點x0dx0ax0dx0a 如select * from scott.test as of timestamp to_timestamp(񟭉-12-11 x0dx0a20:53:57','yyyy-mm-dd hh24:mi:ss');x0dx0ax0dx0a 若有數據,恢復極為簡單了,語句為flashback table tb to timestamp x0dx0ato_timestamp(time,'yyyy-mm-dd hh24:mi:ss');x0dx0ax0dx0a 如flashback table scott.test to timestamp to_timestamp(񟭉-12-11 x0dx0a20:47:30','yyyy-mm-dd hh24:mi:ss');x0dx0ax0dx0a注意:alter table testvarchar enable row movement;x0dx0ax0dx0a 這個命令的作用是,允許Oracle 修改分配給行的rowid。在Oracle x0dx0a中,插入一行時就會為它分配一個rowid,而且這一行永遠擁有這個rowid。閃回表處理會對EMP x0dx0a完成DELETE,並且重新插入行,這樣就會為這些行分配一個新的rowid。要支持閃回就必須允許Oracle 執行這個操作

㈣ oracle資料庫刪除錯了表怎麼恢復

一、如果是剛剛刪除,那麼有兩方法:

首先用show parameter undo;命令查看當時的資料庫參數undo_retention設置。

顯示如下:

undo_managementstringAUTO
undo_retentioninteger10800
undo_suppress_errorsbooleanFALSE
undo_tablespacestringUNDOTBS1

undo_retention(保持力),10800單位是秒。即3個小時。

修改默認的undo_retention參數設置:

ALTERSYSTEMSETundo_retention=10800SCOPE=BOTH;

方法1,通過oracle提供的回閃功能:

execdbms_flashback.enable_at_time(to_date('2007-07-2310:21:00','yyyy-mm-ddhh24:mi:ss'));
setserveroutputon
DECLAREr_temphr.job_history%ROWTYPE;
CURSORc_tempISSELECT*FROMhr.job_history;
BEGIN
OPENc_temp;
dbms_flashback.disable;
LOOP
FETCHc_tempINTOr_temp;
EXITWHENc_temp%NOTFOUND;
insertintohr.job_history(EMPLOYEE_ID,JOB_ID,START_DATE,END_DATE)values(r_temp.EMPLOYEE_ID,r_temp.JOB_ID,r_temp.START_DATE,r_temp.END_DATE);
commit;
ENDLOOP;
CLOSEc_temp;
END;

方法2,insert into hr.job_history

select*fromhr.job_historyasoftimestampto_timestamp('2007-07-2310:20:00','yyyy-mm-ddhh24:mi:ss');

這種方法簡單,容易掌握,功能和上面的一樣時間為你誤操作之前的時間,最好是離誤操作比較近的,因為oracle保存在回滾保持段里的數據時間有一定的時間限制由undo_retention 這個參數值決定。

二、如果是刪除一段時間了,但你有比較新的資料庫備份,就通過備份來恢復。新建一個庫,把備份還原上去,導出表數據,再導入到現在用的庫中去。

三、如果刪除一段時間了,並且無備份,但是數據在寫入表的時候同時會寫入其它一些關聯表的話,那麼就嘗試通過寫SQL語句從其它表取數據出來insert到被刪除的表中。

四、恢復到備份表中

createtabletableName_bak
as
select*fromtableNameasofTIMESTAMPto_timestamp('20081126103435','yyyymmddhh24miss');

㈤ 誤刪除了delete oracle中數據表記錄,沒備份要怎麼恢復

利用oracle提供的閃回方法,如果在刪除數據後還沒做大量的操作(只要保證被刪除數據的塊沒被覆寫),就可以利用閃回方式直接找回刪除的數據
具體步驟為:
*確定刪除數據的時間(在刪除數據之前的時間就行,不過最好是刪除數據的時間點)
*用以下語句找出刪除的數據:select * from 表名 as of timestamp to_timestamp('刪除時間點','yyyy-mm-dd hh24:mi:ss')
*把刪除的數據重新插入原表:
insert into 表名 (select * from 表名 as of timestamp to_timestamp('刪除時間點','yyyy-mm-dd hh24:mi:ss'));注意要保證主鍵不重復。
如果表結構沒有發生改變,還可以直接使用閃回整個表的方式來恢復數據。
具體步驟為:
表閃回要求用戶必須要有flash any table許可權
--開啟行移動功能
·alter table 表名 enable row movement
--恢復表數據
·flashback table 表名 to timestamp to_timestamp(刪除時間點','yyyy-mm-dd hh24:mi:ss')
--關閉行移動功能 ( 千萬別忘記 )
·alter table 表名 disable row movement

㈥ oracle資料庫庫刪除怎麼回滾

刪除表後,可以採用如下操作:
在 user_recyclebin中找到最近操作過的表名稱,然後用閃回(只能用於10G及以上版本)。
FLASH BACK TABLE TABLE_NAME TO BEFORE DROP;
如果是刪了或修改裡面的數據,可以先建立一個快表將刪除修改之前狀態的數據找回到這個表中:
CREATE TABLE QUICK_TABLE AS
SELECT * FROM TABLE_NAME AS OF TIMESTAMP SYSTEM-1/24 (一小時前的),減去的時間可以自己定。如樓上F_253那位老兄的寫法就不錯,能自由定製時間

㈦ oracle怎樣恢復刪除的數據文件

oracle資料庫恢復,主要包括(1)系統崩潰只剩下數據文件的情況下的恢復,甚至沒有system表空間而只有數據表空間的情況下的恢復.只要提供數據文件就可恢復.(2)undosystem表空間損壞數據恢復.(3)非歸檔或者歸檔模式下誤delete數據的恢復、誤刪除表空間的恢復、droptruncate表的恢復.(4)資料庫中有大量CLOBBLOB對象數據恢復等情況以及各種ora-錯誤的修復.(5)DMP文件損壞導致文件不能導入資料庫的數據恢復(6)oracle資料庫中數據文件出現壞塊情況下的恢復.(7)oracle資料庫無數據文件但有日誌的情況下的恢復.(8)UNIX、WINDOWS下ORACLE數據文件被誤刪除情況下的資料庫恢復.(9)Oracle10G、Oracle11G的ASM損壞的資料庫恢復.(10)Oracle10G、Oracle11GBIFGILETABLESPACE大文件表空間損壞數據恢復(11)Oracle9i、Oracle10G、Oracle11G壓縮表壓縮表空間損壞數據恢復(12)Oracle10GOracle11GExpdp導出Impdp導入DMP文件錯誤數據恢復恢復成功率高達90%以上,在數據恢復領域處於國內領先的地位。具體案例見廣州拓飛官方網站

㈧ 在oracle中如何找回被刪除的數據

1、首先新建一張測試表TEST,裡面輸入記錄。由於刪除/更新/插入恢復步驟相同,這里僅演示刪除數據的情況。

㈨ oracle如何恢復誤刪的表記錄數據

oracle如何恢復誤刪的表記錄數據,解決辦法:

  1. 從flash back里查詢被刪除的表select * from recyclebin

  2. 執行表的恢復flashback table tbName to before drop;這里的tbName代表你要恢復的表的名稱。

  3. 先從flashback_transaction_query視圖里查詢,視圖提供了供查詢用的表名稱、事務提交時間、UNDO_SQL等欄位。

  4. 一般先根據時間進行查詢,查詢語句模式為select * from tb as of timestamp to_timestamp(time,'yyyy-mm-dd hh24:mi:ss'); tb指表名稱,time指某個時間點。

閱讀全文

與oracle誤刪數據怎麼回退相關的資料

熱點內容
怎麼查找已讀信息 瀏覽:285
交易貓扣多少錢 瀏覽:29
洗潔劑泡黑的產品怎麼辦 瀏覽:809
期貨交易需要了解什麼線 瀏覽:957
北京哪個花卉市場有賣米蘭 瀏覽:732
貨代進化到什麼程序 瀏覽:740
如何打造產品新奇特 瀏覽:206
施工員怎麼看技術總結 瀏覽:776
松陽有哪些代理公司 瀏覽:373
蘭州五金圍擋市場有哪些 瀏覽:678
交易所怎麼掛牌 瀏覽:549
三菱m80數控銑怎麼才能檢查程序 瀏覽:478
岩板代理怎麼樣 瀏覽:391
女生發信息說在幹嘛要怎麼回 瀏覽:410
如何提高中小學教師信息技術能力 瀏覽:422
a股目前市場怎麼樣 瀏覽:552
如何在抖音上買其他人的產品 瀏覽:757
雙刃劍大數據是什麼 瀏覽:791
怎麼設置burpsuite代理百度抓包 瀏覽:902
昆明豬肉交易市場在哪裡 瀏覽:349