oracle修復Oracle 恢復刪除數據的方法
瀏覽量: 次 發布日期:2023-08-11 21:28:21
誤刪oracle數據庫中的數據,在不考慮全庫備份和利用歸檔日志情況,怎樣快速恢復數據呢?
下面介紹3種方法。
1. 利用oracle提供的閃回方法進行數據恢復,適用于delete刪除方式
首先獲取刪除數據的時間點:
select * from v$sql where sql_text like %table_name% ;
根據結果中的sql_text內容,找到delete執行語句對應的刪除時間點,執行下面語句查詢出刪除的數據。
select * from table_name as of timestamp to_timestamp(‘刪除時間點’,‘yyyy-mm-dd hh24:mi:ss’) where (刪除時的條件)
檢查數據無誤后,執行下面操作,將數據插回原表中。注意主鍵不重復
insert into table_name select * from from table_name as of timestamp to_timestamp(‘刪除時間點’,‘yyyy-mm-dd hh24:mi:ss’) where (刪除時的條件)
2. 利用oracle虛擬回收站功能 原理是因為oracle數據庫在刪除表時會將刪除信息存放于某虛擬回收站中而非直接清空,在此種狀態下數據庫標記該表的數據庫為可以復寫,所以在該塊未被重新使用前依然可以恢復數據。該方法多用于drop刪除。
首先查詢123user_table==視圖,找到被刪除的表:
select table_name,dropped from user_tables; select object_name,original_name,type,droptime from user_recyclebin;
注意此時的,object_name和original_name就是回收站存放的表名和原來刪除的表名,如果表名沒有被重新命名,可以通過下面語句進行恢復:
flashback table object_name to before drop new_table_name;
3. 用oracle數據庫的閃回功能可以將數據庫恢復到過去某一狀態
注意,此時是整庫恢復,具體語法如下:
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’);
4. 徹底刪除數據
如果確定需要刪除的數據又不想無謂的占用空間,我們可以使用以下3種方式: 采用truncate方式進行截斷。(不能進行數據回恢復) 在drop時加上purge選項:drop table table_name purge 通過刪除recyclebin區域來永久性刪除表 ,drop table table_name cascade constraints purge table table_name;
5. 關于清空回收站 刪除當前用戶回收站 purge recyclebin; 兆柏數據恢復公司 刪除全體用戶在回收站的數據 purge dba_recyclebin; oracle修復
兆柏數據恢復公司
oracle修復 微信查券返利機器人
重要數據丟失請聯系兆柏數據恢復公司
. 固態硬盤數據恢復一般多少錢,固態硬盤修復手把手教你救治不認盤的固態
. oracle歸檔日志設置,Oracle數據庫歸檔日志設置詳解
. oracle drop表數據恢復,Oracle數據庫中drop表數據恢復方法詳解
. oracle 刪除數據文件,Oracle 數據文件刪除指南
. 如何查看oracle錯誤日志,Oracle數據庫錯誤日志查看指南
. oracle刪除的數據怎么恢復,Oracle數據庫中刪除數據恢復指南
. oracle一個實例多個數據庫,Oracle數據庫實例與多個數據庫的配置與管理
. ora-01578:oracle 數據塊損壞,oracle數據塊損壞
. oracle恢復歸檔日志文件,Oracle數據庫恢復歸檔日志文件的方法與技巧