本篇文章為大家帶來了關於Oracle的相關知識,其中主要介紹了關於誤刪oracle資料庫中的數據,在不考慮全庫備份和利用歸檔日誌情況,怎樣快速恢復資料的相關問題,下面一起來看看,希望對大家有幫助。
推薦教學:《Oracle影片教學》
誤刪oracle資料庫中的數據,在不考慮全庫備份利用歸檔日誌狀況,怎麼快速恢復資料呢?
以下介紹3種方法。
select * from v$sql where sql_text like '%table_name%' ; 1根據結果中的
sql_text內容,找到
delete執行語句對應的
刪除時間點,執行下面語句查詢出刪除的資料。
select * from table_name as of timestamp to_timestamp(‘删除时间点’,‘yyyy-mm-dd hh24:mi:ss’) where (删除时的条件) 12檢查資料無誤後,執行下方操作,將資料插回原始表中。
注意主鍵不重複
insert into table_name select * from from table_name as of timestamp to_timestamp(‘删除时间点’,‘yyyy-mm-dd hh24:mi:ss’) where (删除时的条件) 123
回收站中而非直接清空,在此種狀態下資料庫標記該表的資料庫為可以複寫,所以在該區塊未被重新使用前依然可以恢復資料。此方法多用於drop刪除。
先查詢user_table視圖,找到被刪除的表:
select table_name,dropped from user_tables; select object_name,original_name,type,droptime from user_recyclebin; 12注意此時的,
object_name和
original_name 就是回收站存放的表名和原來刪除的表名,如果表名沒有被重新命名,可以透過下面語句進行恢復:
flashback table original_name to before drop; 1如果不知道來源表名,或者需要重新命名新的表名存放數據,則可以透過回收站中的
object_name進行恢復,命令如下:
flashback table object_name to before drop new_table_name; 1
整庫恢復,具體語法如下:
SQL>alter database flashback on SQL>flashback database to scn SCNNO; SQL>flashback database to timestamp to_timestamp(‘frombyte 2021-09-02 23:59:59’,‘yyyy-mm-dd hh24:mi:ss’); 123
區域來永久性刪除表格,
drop table table_name cascade constraints purge table table_name;
以上是三種方法快速還原誤刪oracle資料庫的詳細內容。更多資訊請關注PHP中文網其他相關文章!