Oracle數(shù)據(jù)回退的實現(xiàn)
在使用plsql工具,對表數(shù)據(jù)進行操作后,提交了事務(wù),發(fā)現(xiàn)數(shù)據(jù)更新或者刪除錯了,這時候還是有方法可以把數(shù)據(jù)回退的,下面進行操作。
對emp表數(shù)據(jù)進行操作,更新前數(shù)據(jù)如下所示:
現(xiàn)在對SAL字段進行更新,原本想更新一條數(shù)據(jù),現(xiàn)在沒有加where條件,誤將所有記錄都更新。
更新后的數(shù)據(jù)如上圖所示,全部記錄都被更新了,事務(wù)也提交了(數(shù)據(jù)庫的數(shù)據(jù)已經(jīng)被修改)。 此時更新的時間是13:51分。
下面進行數(shù)據(jù)回退操作,將數(shù)據(jù)回退到13:50分,也就是update操作之前:
在回退之前,先查詢13:50分的數(shù)據(jù),是不是我們想要的數(shù)據(jù),也就是進行數(shù)據(jù)確認(rèn):
SELECT * FROM emp as of timestamp to_timestamp('2023-08-20 13:50:00','yyyy-MM-dd HH24:MI:SS');
查詢結(jié)果沒有問題,下面進行數(shù)據(jù)回退的執(zhí)行操作:
--閃回恢復(fù)數(shù)據(jù) flashback table emp to timestamp to_timestamp('2023-08-20 13:50:00','yyyy-MM-dd HH24:MI:SS');
如果閃回恢復(fù)數(shù)據(jù)提示:因為未啟用行移動功能,不能閃回表。 執(zhí)行以下語句,允許行移動
alter table emp enable row movement;
再次執(zhí)行閃回恢復(fù)數(shù)據(jù)的SQL。執(zhí)行完畢后,再次查詢表數(shù)據(jù):
數(shù)據(jù)已經(jīng)回退到update之前的內(nèi)容了。
總結(jié):數(shù)據(jù)閃回是將數(shù)據(jù)退回到某個時間點,核心的語句有三個:
--查詢指定時刻的數(shù)據(jù) SELECT * FROM emp as of timestamp to_timestamp('2023-08-20 13:50:00','yyyy-MM-dd HH24:MI:SS'); --如果閃回恢復(fù)數(shù)據(jù)提示:因為未啟用行移動功能,不能閃回表。 執(zhí)行以下語句,允許行移動 alter table emp enable row movement; --閃回恢復(fù)數(shù)據(jù) flashback table emp to timestamp to_timestamp('2023-08-20 13:50:00','yyyy-MM-dd HH24:MI:SS');
注意:使用 truncate table 命令刪除的表數(shù)據(jù),無法通過flashback的方式找回數(shù)據(jù)。
到此這篇關(guān)于Oracle數(shù)據(jù)回退的實現(xiàn)的文章就介紹到這了,更多相關(guān)Oracle數(shù)據(jù)回退內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Oracle和MySQL中生成32位uuid的方法舉例(國產(chǎn)達夢同Oracle)
- Oracle中XML插入數(shù)據(jù)時的空格問題解決方案
- oracle定義常用函數(shù)的過程
- Oracle查看表操作歷史記錄并恢復(fù)數(shù)據(jù)的方法
- Oracle單實例升級補丁全過程記錄
- 關(guān)于Oracle數(shù)據(jù)庫dbLink的創(chuàng)建和使用詳解
- Oracle實現(xiàn)分頁三種不同的方式
- Oracle數(shù)據(jù)庫如何更改數(shù)據(jù)文件位置
- Oracle如何獲取指定表名稱批量修改表中的字段類型
- oracle設(shè)置mybatis自動生成id插入方式
- Oracle sql批量插入多條數(shù)據(jù)的實現(xiàn)
相關(guān)文章
解決Windows 7下安裝Oracle 11g相關(guān)問題的方法
本文將為大家介紹Windows 7下安裝Oracle 11g方面的有關(guān)問題解決方案。希望通過本文,能讓大家對11g這款產(chǎn)品有更多的認(rèn)識,需要的朋友可以參考下2015-08-08Oracle SQLPlus導(dǎo)出數(shù)據(jù)到csv文件的方法
這篇文章主要介紹了Oracle SQLPlus導(dǎo)出數(shù)據(jù)到csv文件,需要的朋友可以參考下2020-05-05通過Navicat連接Oracle數(shù)據(jù)庫的詳細步驟
本文介紹如何通過Navicat 連接Oracle數(shù)據(jù)庫,以往總是使用Oracle客戶端來連接Oracle數(shù)據(jù)庫,但是Oracle客戶端一般有幾百M的大小,而且安裝繁瑣配置麻煩,如果可以通過Navicat直接連接Oracle則會非常輕松方便,需要的朋友可以參考下2023-10-10Oracle如何獲取數(shù)據(jù)庫系統(tǒng)的當(dāng)前時間
這篇文章主要介紹了Oracle如何獲取數(shù)據(jù)庫系統(tǒng)的當(dāng)前時間問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12Oracle開發(fā)之分析函數(shù)(Top/Bottom N、First/Last、NTile)
本文主要是對Oracle分析函數(shù)查找前幾名、后幾名、最多、最少以及按層次查詢的介紹,需要的朋友可以參考下。2016-05-05