0
我意外地丟了一個相當大的表 - 回收站未啓用。我很確定數據仍然存在於UNDO表空間中,但我不知道如何解決。我完全按照它在放下之前重新創建表 - 結構完全一樣。然而,當我嘗試閃回表,我得到這個錯誤:我在Oracle中刪除了一個表,如何從撤消表空間中檢索它?
flashback table tablex to timestamp (systimestamp - interval '120' minute);
Error: 01466
DBD::Oracle::db do failed: ORA-01466: unable to read data - table definition has changed
任何想法如何,我可以克服這個問題?從我所做的所有搜索中,似乎認爲表格在結構上與結束時不一樣。
嗯,我沒有回滾,因爲我認爲放棄一個表實際上不能通過回滾撤消。我認爲只有像插入和更新的DML操作可以回滾? – user2836455
當使用閃回到時間戳功能時,FLASHBACK TABLE不需要回收站。如果你正在使用它,它會檢查UNDO表空間,據我所知(我可能在這裏是錯誤的)。 – user2836455
如果回收站未啓用,並且您通過在'show parameter recyclebin'的結果中的'value'列中查看'off'來確認它,那麼確實沒有簡單的方法將表格返回而無需進行點入數據庫或故事空間的時間恢復。你也可以嘗試使用'LogMiner'來恢復和恢復被丟棄的表,但它可能需要更多的時間。 –