Oracle數據庫的閃回操作(查詢指定時間的數據、恢復數據)


通過DELETE刪除數據后相當於放入回收站,一般情況下可以找回;通過UPDATE更新數據后數據庫也會保留數據快照。閃回就是恢復指定時間的數據快照以達到恢復數據的目的。
根據步驟一查詢出數據快照,恢復數據自行決定(之前的數據都有了,咋恢復還不會嗎?)

一、查詢指定時間的數據快照
--1、查詢執行過SQL語句,確定快照的時間
SELECT R.FIRST_LOAD_TIME,R.SQL_TEXT,R.* FROM V$SQLAREA R
WHERE R.SQL_TEXT LIKE '%ABOUT YOUR SQL%' ORDER BY R.FIRST_LOAD_TIME DESC

--2、查詢基於指定時間的數據快照
SELECT * FROM YOUR_TABLENAME AS OF TIMESTAMP
TO_TIMESTAMP('2019-02-05 20:00:00', 'yyyy-mm-dd hh24:mi:ss');
--以當前時間為准,125分鍾之前的數據快照
SELECT * FROM YOUR_TABLENAME AS OF TIMESTAMP SYSDATE - 125 / 1440

二、恢復數據
FLASHBACK時,如果不確定刪除的具體時間,在沒有太多操作這個表的情況下,閃回的時間稍微提前一點。

閃回表數據SQL語句:
--1、啟動表的row movement特性
ALTER TABLE YOUR_TABLENAME ENABLE ROW MOVEMENT;

--2、閃回指定時間的快照
FLASHBACK TABLE YOUR_TABLENAME TO TIMESTAMP
TO_TIMESTAMP('2018-04-23 16:06:00','yyyy-mm-dd hh24:mi:ss');

--3、關閉表的row movement功能
ALTER TABLE YOUR_TABLENAME DISABLE ROW MOVEMENT;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM