數據庫備份與恢復是數據庫管理員必須掌握的。沒有任何系統能免遭硬盤物理損壞、粗心用戶的錯誤操做、或一些可能會威脅到存儲數據的潛在災難的侵襲。爲了可以最大限度地恢復數據庫數據,保證數據庫的安全運行,應該選擇最合理的備份方法來防止各類故障所致使的用戶數據丟失,本次主要介紹三種備份恢復技術,即RMAN技術、數據泵技術及閃回技術。sql
備份的定義及分類
數據庫
恢復的定義及分類
express
恢復就是發生故障後,利用已備份的數據或控制文件,從新創建一個完整的數據庫。恢復分爲如下兩種類型。api
1)實例恢復:當oracle實例出現失敗後,oracle自動進行的恢復。安全
2)介質恢復:當存放數據庫的介質出現故障時所作的恢復。介質恢復又分爲徹底恢復和不徹底恢復。服務器
徹底恢復:將數據庫恢復到數據庫失敗時的狀態。這種恢復是經過裝載數據庫備份,並用所有的重作日誌作到的。session
不徹底恢復:將數據庫恢復到數據庫失敗前的某一時刻的狀態。這種恢復是經過裝載數據庫備份並應用部分的重作日誌作到的。進行不徹底恢復後,必須在啓動數據庫時用resetlogs選型重設聯機重作日誌oracle
1、使用RMAN工具ide
RMAN(recovery manager)是oracle的一個重要工具,用於備份和恢復數據庫文件、歸檔日誌和控制文件。也能夠用來執行徹底或不徹底的數據庫恢復。RMAN有3種不一樣的用戶接口:命令行方式,GUI方式(集成在OEM中的備份管理器)、api方式(用於集成到第三方的備份軟件中)。它具備以下優勢:工具
1)支持在線熱備份
2)支持多級增量備份
3)支持並行備份、恢復
4)減小所須要的備分量
5)備份、恢復使用簡單
RMAN有豐富的特性集。隨着oracle新版本的發佈,RMAN特性也不斷加強,使得RMAN幾乎在任何狀況下均可以備份和恢復數據庫。其中不少的新特性都是針對平常工做中所遇到的問題和困難開發的。
1.RMAN組件
1)target database(目標數據庫)
目標數據庫就是須要RMAN對其進行備份與恢復的數據庫。RMAN能夠備份數據文件、控制文件、歸檔日誌文件、spfile。
2)server session(服務器會話)
RMAN啓動數據庫上的oracle服務器進程,並創建一個與目標數據庫的會話。由目標數據庫上的服務器進程進行備份、還原、恢復的實際操做。
3)RMAN repository(RMAN資料庫)
RMAN使用過程當中會用到的控制信息,是一些關於備份、歸檔日誌及RMAN活動的元數據。
4)recovery catalog(恢復目錄)
恢復目錄是創建在RMAN恢復目錄數據庫上的一種schema對象,用於保存RMAN資料庫數據。
恢復目錄是一個可選的組件。RMAN會將資料庫數據記錄在目標數據庫的控制文件中,但這樣不夠安全,由於一旦目標數據庫的控制文件損壞就意味着全部的RMAN備份失效。因此建議在單獨的一個數據中創建恢復目錄另外保存一份資料庫數據。
對於
對於大部分中等環境的企業環境,將RMAN備份信息存儲在恢復目錄數據庫中,而不是存儲在目標數據庫的控制文件中,這樣可以發揮RMAN工具的所有功能,此外,RMAN的不少高級功能也只有在建立了恢復目錄的環境下才被支持。
5)MML(媒體管理庫)
MML(media management layer)是第三方工具或軟件,用於管理對磁帶的讀寫與文件的跟蹤管理,若是你要想直接經過RMAN備份到磁帶上,就必須配置媒體管理層,媒體管理層的工具和RMAN共同完成備份與恢復。
6)快閃恢復區
快閃恢復區是oracle數據庫用於保存全部與恢復相關的文件的默認磁盤位置。這些相關文件包括歸檔日誌、RMAN備份、控制文件自動備份、複用的控制文件和重作日誌副本及閃回日誌文件。
7)輔助數據庫
在正常使用時,RMAN會與目標數據庫一塊兒使用,若是建立了恢復目錄數據庫,那麼也會與恢復目錄數據庫一塊兒使用。在某些狀況下,但願建立輔助數據庫,輔助數據庫是使用RMAN從目標數據庫的備份中建立新的數據庫。輔助數據庫能被建立做爲備用數據庫使用。在產品數據庫發生災難時,可以在不丟失任何數據及停機時間最短的狀況下切換至備用數據庫。
2.建立恢復目錄
恢復目錄存在於RMAN的目錄數據庫中,相似於標準的數據庫目錄,主要包含以下幾個部分的信息。
1)備份和恢復信息,能夠是多個目標數據庫
2)RMAN腳本,能夠存儲供重複使用
3)關於數據文件和日誌文件的本分信息
4)關於目標數據庫的表空間和數據文件的信
建立恢復目錄數據庫
在恢復目錄數據庫中建立RMAN用戶並受權
在恢復目錄數據庫中建立恢復目錄
3.註冊目標數據庫到恢復目錄
登陸目標數據庫,若是要對目標數據庫進行註冊,能夠按照如下操做
至此,完成了目標數據庫在恢復目錄中的註冊操做,此時就可使用RMAN的恢復目錄對目標數據庫進行備份和恢復操做。
4.通道分配
使用RMAN進行備份和恢復操做時,必須進行通道的分配,一個通道是RMAN和目標數據庫之間的一個鏈接,通道指定了某種類型的設備用於備份和恢復,RMAN可使用的通道設備包括磁盤與磁帶兩種。
(1)自動通道配置
使用CONFIGURE命令配置自動通道
語法格式以下:
CONFIGURE DEVICE TYPE sbt/disk PARALLELISM n; 指定自動通道並行個數
CONFIGURE DEFAULT DEVICE TYPE TO sbt/disk; 指定自動通道的默認設備
在語法中:
sbt/disk:磁帶/磁盤
n:設置自動通道的個數
例如:指定RMAN能夠打開5個磁盤通道
(2)手動通道配置
在RUN塊中使用ALLOCATE CHANNEL手動分配通道
語法格式以下:
RUN
{
ALLOCATE CHANNEL 通道名稱 DEVICE TYPE 設備類型;
......
}
例如:指定3個磁盤通道,分別是ch1、ch2和ch3
(3)顯示通道配置參數
使用SHOW ALL命令能夠顯示已經配置過的和有默認值的參數,其中包括通道參數
5.備份與恢復的相關概念與操做
(1)備份集與備份片
備份集:備份集是第一次備份的集合,它包含本次備份的全部備份片,以oracle專有的格式保存,是一個邏輯數據的集合。
備份片:一個備份集由若干個備份片組成,每一個備份片是一個單獨的輸出文件,一個備份片的大小是有限制的,它的大小不能大於文件系統所支持的文件長度的最大值。
(2)配置備份集文件的格式
使用BACKUP命令進行備份時,須要明確備份文件的存儲路徑及文件名稱格式。其路徑和格式可使用FORMAT參數進行統一設置。FORMAT格式由兩部分組合,即存儲路徑和文件名稱。
若是沒有使用FORMAT指定存儲路徑和文件名稱格式,則默認狀況下BACKUP所產生的備份集將存儲在快閃恢復區中,RMAN自動使用%U來確保文件名稱不會重複。
FORMAT命令格式以下:
FORMAT ‘格式字符串’
其中格式字符串的文件名稱部分可使用替換變量,例如:FORMAT ‘/backup/rmanback/%U’
經常使用的替換變量以下:
%c:備份片的拷貝數
%d:數據庫名稱
%D:位於該月中的第幾天(DD)
%M:位於該年中的第幾月(MM)
%F:一個基於DBID的惟一的名稱,它的形式爲C-||||||-YYYYMMDD-QQ。其中||||||爲該數據庫的DBID,YYYYMMDD爲日期,QQ是一個1-256的序列。
%n:數據庫名稱,向右填補到最大8個字符
%u:一個8個字符的名稱,它是根據備份集個數與建立時間信息成成的。
%p:該備份集的備份片號,從1開始到建立的文件數
%U:系統生成的一個惟一文件名,對於備份片來講,它的含義至關於%u_%p_%c。
%s:備份集的號
%t:備份集時間戳
%T:年月日格式(YYYYMMDD)
(3)備份與恢復命令
① BACKUP命令用於備份數據庫文件,能夠將多個文件、表空間,整個數據庫以備份集形式備份到磁盤或磁帶上。在RUN命令外使用BACKUP命令,會自動使用自動通道;在RUN命令內使用BACKUP命令,若是定義了手動通道,則優先使用手動定義通道。
② 使用RMAN備份的數據庫也只能使用RMAN提供的恢復命令進行恢復。RMAN的恢復目錄中存儲了目標數據庫的備份信息。RMAN根據恢復目錄中存儲的信息,自動將數據庫同步恢復到某一個數據一致的狀態。
RMAN恢復數據庫時用到兩個命令,即RESTORE和RECOVER。RESOTRE命令將備份數據恢復到指定的目錄,RECOVER命令對數據庫實施同步恢復。
n RESOTRE命令:因爲備份集中的備份片是以專有的RMAN格式存儲的,須要使用RESTORE命令進行重建,重建的結果是自動產生目標數據庫的物理文件結構。
n RECOVER命令:負責把歸檔日誌文件用於重建的數據文件,來完成數據庫的同步恢復。在執行RECOVER命令時,RMAN須要讀取歸檔日誌,若是沒有歸檔日誌,或者數據庫運行在非歸檔模式下,則恢復過程會報錯。
案例:在歸檔方式下備份與恢復
要用RMAN進行聯機備份操做。數據庫就必須位於歸檔模式。恢復目錄必須打開,目標數據庫進程必須啓動,數據庫已經加載或者打開。
備份和恢復整個數據庫
查看當前數據模式爲非歸檔模式
修改模式爲歸檔模式
備份和恢復整個數據庫,自動分配通道,FORMAT默認使用%U,備份集存儲在數據庫快閃恢復區內,備份文件包括數據文件,控制文件,重作日誌文件和參數文件。
查看快閃恢復區,發現備份成功了
若是還要包含歸檔日誌文件,則要加上plus archivelog關鍵字,delete input的意思是在備份完成後,刪除archivelog文件。
經過自動分配通道,經過FORMAT制定具體的路徑和格式
也能夠手動分配通道,備份數據庫
恢復整個數據庫(數據庫要在mount狀態下執行)
刪除system01.dbf
再次開啓數據庫實例
此時數據庫沒法啓動了,由於刪除了system01.dbf
使用sys鏈接RMAN,重建數據庫物理文件
同步恢復
打開數據庫
system01.dbf表空間已經被恢復了
2.備份和恢復表空間
表空間備份
多個表空間備份
若是隻丟失了特定的表空間的數據文件,那麼能夠選擇只恢復這個表空間,而不是恢復整個數據庫,表空間恢復能夠在不關閉數據庫的狀況下進行,只須要將須要恢復的表空間offline
模擬刪除表空間
恢復表空間
查看錶空間文件已經恢復了
(3)數據文件的備份與恢復
查看數據文件
備份數據文件users01.dbf(備份和恢復的時候能夠指定文件號,也能夠指定文件名)
查看數據文件
刪除數據文件user01.dbf
對數據文件或表空間作恢復的時候數據文件和表空間必定要處於offline狀態, 數據文件丟失了,但數據庫實例還能夠用
此時數據文件4的狀態爲recover
恢復數據文件
將數據文件datafile 4處於online狀態
查看數據文件的狀態,已經變成online狀態了
2、使用數據泵技術實現邏輯備份
邏輯備份是建立數據庫對象的邏輯副本,並存入一個二進制轉儲文件的過程。從本質上說,邏輯備份與恢復實際就是對數據庫實施數據的導入和導出。
導出:
導出即數據庫的邏輯備份,實質是讀取一個數據庫集並將這個數據集寫入一個文件(擴展名一般是dmp),這些記錄的導出與物理位置無關。
導入:
導入及數據庫的邏輯恢復,實質是讀取被導出的二進制轉儲文件並將其恢復到數據庫
1.使用數據泵技術導入/導出
數據泵(data pump)是一種在數據庫之間或在數據庫與操做系統以前高速傳輸的技術。數據泵工具運行在服務器上,數據庫管理員須要指定數據庫目錄來保存轉儲的數據
基於命令行的數據泵導出步驟以下
(1)鏈接Oracle數據庫
(2)建立一個操做目錄
(3)授予用戶操做dump_dir目錄的權限
(4)建立測試用戶yyy並受權
5)導出scott用戶下的表
使用expdp命令導入數據(能夠按照表導出,按照用戶模式導出,按照表空間導出和全庫導出),使用impdp命令導入數據(能夠按照表導入,按照用戶模式導入,按照表空間導入和全庫導入)
(6)刪除emp表
(7)導入emp表
(8)查看emp表已經還原
(9)將導出的scott用戶下的dept和emp表導入yyy用戶下
使用yyy用戶登陸查看錶
(10)導出scott用戶模式
(11)導入scott用戶模式
(12)將scott中全部的對象導入yyy中
查看yyy用戶的表,發現多了不少
(13)導出表空間
導出yyy表空間(提早建立一個yyy表空間)
在表空間yyy建立一個表ccc
導出表空間
(14)導入表空間
導入以前刪除表空間,相關的表也會刪除
導入表空間以前,須要建立一個yyy表空間
導入表空間
查看錶已經恢復回來了
(15)導出整個數據庫
(16)導入整個數據庫
3、使用閃回技術
1.閃回技術概述
爲了使數據庫可以從任何邏輯誤操做中迅速恢復,oracle退出了閃回技術。採用該技術,能夠對行級和事務級的數據變化進行恢復,減小了數據恢復的時間,並且操做簡單,經過sql語句就能夠實現數據的恢復,大大提升了數據庫恢復的效率。閃回技術是數據庫恢復技術歷史上一次重大的進步,從根本上改變了數據恢復。
閃回技術包括如下各項:
1)閃回查詢(flashback query):查詢過去某個時間點或某個SCN(system change number,系統更改號)值時表中的數據信息。
2)閃回版本查詢(flashback version query):查詢過去某個時間段或某個SCN段內表中數據的變化狀況。
3)閃回事務查詢(flashback transaction query):查看某個事務或全部事務在過去一段時間對數據進行的修改。
4)閃回數據庫(flashback database):將數據庫恢復到過去某個時間點或某個SCN值時的狀態。
5)閃回刪除(flashback drop):將已經刪除的表及相關聯的對象恢復到刪除前的狀態。
6)閃回表(flashback table):將表恢復到過去的某個時間點或某個SCN值時的狀態
SCN:scn是當Oracle數據庫更新後,有dbms自動維護而累積遞增的一個數字,能夠經過查詢數據字典V$DATABASE中的CURRENT_SCN得到當前的SCN號。
注意:
閃回數據庫是基於閃回恢復區(Flash Recovery Area)特性實現的,若是要使用閃回數據庫技術,還須要啓用閃回恢復區
閃回刪除是基於回收站(Recycle Bin)特性實現的,若是要使用閃回刪除技術,還須要啓用回收站
閃回查詢、閃回版本查詢、閃回事務查詢以及閃回表主要是基於撤銷表空間中的回滾信息實現的
2.閃回恢復區
1)閃回恢復區的含義
Oracle推薦指定一個閃回恢復區(flash recovery area)做爲存放備份與恢復相關文件的默認位置,這樣oracle就能夠實現自動的基於磁盤的備份與恢復(automatic disk-based backup and recovery)。那麼,什麼是閃回恢復區?簡單地說,閃回恢復區是一塊用以存儲恢復相關的文件的存儲空間,容許用戶集中存儲全部恢復相關的文件。以下集中文件能夠放到閃回恢復區中。
控制文件
歸檔的日誌文件
閃回日誌
控制文件和SPFILE自動備份
RMAN備份集
數據文件拷貝
2)閃回恢復區的優勢
閃回恢復區提供了一個集中化的存儲區域,很大程度上減小了管理開銷,這是其最主要的優勢,另外,與RMAN結合使用能夠進行快速恢復。
3)設置閃回恢復區
若是使用dbca建立的數據庫,在安裝時能夠設定閃回恢復區的位置及大小。
閃回恢復區主要經過如下3個初始化參數來設置和管理。
Db_recovery_file_dest:指定閃回恢復區的位置
Db_recovery_file_dest_size:指定閃回恢復區的可用空間大小
Db_flashback_retention_target:該參數用來控制閃回日誌中數據保留的時間,或者說,但願閃回數據庫可以恢復到的最先的時間點。單位爲MIN,默認爲1440min,也就是一天。固然,實際上可退回的時間還取決於閃回恢復區的大小,由於裏面保存了回退所須要的閃回日誌,因此這個參數要和db_recovery_file_dest_size配合修改。
若是要撤銷閃回恢復區,把初始化參數DB_RECOVERY_FILE_DEST的值清空便可。
注意:db_recovery_file_dest_size只有在db_recovery_file_dest清空以後才能夠清空。
4)設置閃回數據庫
設置可閃回恢復區以後,要啓用閃回數據庫的功能,還須要進一步配置。數據庫必須已經處於歸檔模式,再設置閃回數據庫。
設置閃回數據庫的步驟以下:
(1)啓用歸檔模式。閃回數據庫只能處於歸檔模式
SQL> shutdown immediate;
SQL> startup mount;
SQL> alter database archivelog;
數據庫未設置閃回數據庫
(2)創建閃回區,設置閃回數據庫的數據保留週期爲一天,以min爲單位
(3)啓用閃回日誌
(4)查詢是否成功啓用閃回恢復區
(5)查詢是否成功啓用閃回數據庫
5)取消閃回恢復區
將db_recovery_file_dest參數設置爲空,能夠停用閃回恢復區,可是,若是已經啓用閃回數據庫,則不能取消閃回恢復區,因此必須先禁用閃回數據庫,才能取消閃回恢復區
步驟以下;
(1)關閉數據庫
SQL> shutdown immediate;
(2)裝載數據庫
SQL> startup mount;
(3)關閉數據庫閃回
SQL> alter database flashback off;
(4)打開數據庫
SQL> alter database open;
(5)修改閃回參數
SQL> alter system set db_recovery_file_dest='';
3.閃回錯誤操做技術
1、閃回數據庫
閃回數據庫可以使數據迅速回滾到之前的某個時間點或者某個SCN上,這對於數據庫從邏輯錯誤中恢復特別有用,並且也是大多數發生邏輯損害時恢復數據庫的最佳選擇。
做用相似於數據庫的倒帶按鈕。
能夠在用戶形成了邏輯數據損壞的狀況下使用
1)閃回數據庫語法格式
FLASHBACK DATABASE [database] TO
[SCN | TIMESTAMP expression]|
[BEFORE SCN | TIMESTAMP expression]
參數說明
n TO SCN:將數據庫恢復到指定SCN的狀態
n TO TIMESTAMP:將數據庫恢復到指定的時間點
n TO BEFORE SCN:將數據庫恢復到指定SCN的前一個SCN狀態
n TO BEFORE TIMESTAMP:將數據庫恢復到指定時間點前的狀態
2)閃回數據庫操做的限制:
n 數據文件損壞或丟失等介質故障不能使用閃回數據庫進行恢復。閃回數據庫只能基於當前正常運行的數據文件。
n 閃回數據庫功能啓動後,若是發生數據庫控制文件重建或利用備份恢復控制文件,則不能使用閃回數據庫。
n 不能使用閃回數據庫進行數據文件收縮操做。
n 不能使用閃回數據庫將數據庫恢復到在閃回日誌中可得到最先的SCN以前的SCN,由於閃回日誌文件在必定條件下被刪除,而不是始終保存在閃回恢復區中。
案例:使用SCN閃回數據庫
1)查詢數據庫當前的SCN
2)改變數據庫的當前狀態,模擬建立表bxjg,並插入一條數據。
3)進行閃回數據庫恢復,將數據庫恢復到建立表以前的狀態,即SCN爲1132741
4)用RESETLOGS選項打開數據庫,並驗證數據庫的狀態(bxjg表應該不存在)
5)能夠經過查詢數據字典視圖v$flashback_database_log來得到可以閃回的最先的scn號,及閃回時值最先不能小於該值。同理,若是經過時間點閃回,則閃回時間也不能小於查詢獲得的最先時間。
設置顯示時間格式
查詢數據庫中當前最先的閃回SCN和時間
6)按照指定時間閃回數據庫
首先查詢數據系統當前時間
改變數據庫當前狀態,模擬建立表test2,並插入一條數據
進行閃回數據庫恢復,將數據庫恢復到建立表以前的狀態。
使用RESETLOGS打開數據庫
驗證數據庫的狀態test2表是否存在。
2.閃回表
閃回表是將表恢復到過去的某個時間點或者指定的SCN而不用恢復數據文件,爲DBA提供了一種在線、快讀、便捷的恢復方式,能夠恢復對標進行的修改、刪除、插入等錯誤的操做。
利用閃回表技術恢復表中數據的過程,其實是對錶進行DML操做的過程。Oracle自動維護與表相關聯的索引、觸發器、約束等。
(1)爲了使用數據庫閃回表功能,必須知足下列條件
n 用戶具備flashback any table系統權限,或者具備所操做表的flashback對象權限。
n 用戶具備所操做表的select、insert、delete、alter對象權限
n 啓動被操做表的row movement特性,能夠採用下列方式進行。
SQL> Alter table 表名 enable row movement
(2)閃回表操做的基本語法爲
FLASHBACK TABLE [schema.]table TO
SCN|TIMESTAMP expression
[ENABLE|DISABLE TRIGGERS]
參數說明
SCN:將表恢復到指定的SCN時狀態
TIMESTAMP:將表恢復到指定的時間點
ENABLE|DISABLE TRIGGER:在恢復表中數據的過程當中,表上的觸發器是激活仍是禁用(默認爲禁用)
注意:SYS用戶或以AS SYSDBA身份登陸的用戶不能執行閃回表操做
案例:使用SCN閃回表
1)使用scott用戶登陸,建立一個表,並插入數據,並提交
2)查詢當前SCN號,若是當前用戶沒有權限查詢v$database,則以sys用戶登陸,授予當前用戶訪問數據字典的權限。
3)更新數據(把id=1的名字改爲batianhu,刪除id=3的數據),而且提交
4)啓動test3表的ROW MOVEMENT特性
5)將test3表恢復到2018-04-08 14:44:00,並查詢
6)將表test3恢復到scn爲的狀態1133309
3.閃回刪除
閃回刪除能夠恢復使用drop table語句刪除的表,是一種對意外刪除的表的恢復機制。
閃回刪除功能的實現主要是經過oracle數據庫中的「回收站」技術實現的。在oracle數據庫中,當執行drop table 操做時,並不當即回收表及、及其關聯的對象的空間,而是將它們重命名後放入一個稱爲「回收站」的邏輯容器中保存,直到用戶決定永久刪除它們或存儲該表的表空間存儲空間不足時,表才能真正被刪除。爲了使用閃回刪除技術,必須開啓數據庫的「回收站」。
(1)啓動回收站,將參數recyclebin設置爲ON,在默認狀況下「回收站」已啓動
(2)查看「回收站」。當執行drop table操做時,表及其關聯對象被命名後保存在「回收站」中,能夠經過查詢user_recyclebin,dba_recyclebin視圖得到被刪除的表及其關聯對象信息。
注意:不支持sys用戶,system表空間下的對象也不能從回收站裏拿到,故使用sys或者system用戶登陸時,查詢爲空
3)若是在刪除表時使用了PURGE短語,則表及其關聯對象被直接釋放,空間被回收,相關信息不會進入「回收站」中。
創建表,而且使用purge短語刪除
查看在回收站裏面沒有
4)清空回收站
因爲被刪除表及其關聯對象的信息保存在「回收站」中,其存儲空間並無釋放,所以須要按期清空「回收站」,或清楚「回收站」中沒有用的對象(表、索引、表空間),釋放其所佔的磁盤空間。
語法以下:
PURGE [TABLE 表名 | INDEX index]
[RECYCLEBIN | DBA_RECYCLEBIN] | [TABLESPACE tablespace [USER user]]
參數說明:
TABLE:從回收站中清除指定的表
INDEX:從回收站中清除指定的索引,並回收其磁盤空間
RECYCLEBIN:清空用戶「回收站」,並回收全部對象的磁盤空間
DBA_RECYCLEBIN:清空整個數據庫系統的「回收站」,只有具備SYSDBA權限的用戶纔可使用
TABLESPACE :清除「回收站」中指定額表空間,並回收磁盤空間
USER:清除回收站中指定表空間中特定用戶的對象,並回收磁盤空間
5)閃回刪除操做
FLASHBACK TABLE [schema.]table TO BEFORE DROP [RENAME TO table]
注意:只有本地管理的,非系統表空間中的表可使用閃回刪除操做
案例:閃回刪除示例
新建表,插入數據並提交
刪除表
閃回表
或者閃回表以後從新命名
4、閃回查詢技術
閃回查詢:容許根據時間點或SCN查看舊的數據。除了能夠查看舊數據,須要時能夠經過檢索舊數據來撤銷錯誤的更改。
基本語法以下:
Select column_name[,...]
From table_name
[as of scn | timestamp expression]
[Where condition]
參數說明:
As for timestamp:基於時間的閃回查詢
As of scn:基於scn的閃回查詢
案例:閃回查詢實例
1)使用scott用戶登陸,對emp表基於as of timestamp的閃回查詢
2)更新員工號爲7844的工資,更新爲2000,並提交事物
3)再次更新員工號爲7844的工資,更新兩次,提交事物
4)再次更新員工號爲7844的工資,更新爲3500,並提交事物
5)查詢7844號員工的當前工資
6)查詢7844號員工前一個小時的工
7)查詢第一個事務提交,第二個事物尚未提交時7844號員工的工資
8)若是須要,能夠將數據恢復到過去某個時刻的狀態