Oracle Database 20c新特性:PDB閃回功能增強

楊建榮的學習筆記 發佈 2020-06-14T04:17:50+00:00

資料庫閃回技術在Oracle Database 10g就向大家提供了。因為閃回不需要對數據文件做restore的動作,所以數據恢復的時間相比傳統RMAN進行恢復要快許多。

資料庫閃回技術在Oracle Database 10g就向大家提供了。因為閃回不需要對數據文件做restore的動作,所以數據恢復的時間相比傳統RMAN進行恢復要快許多。這項技術一直受到DBA的喜歡,比如經常可以使用表閃回,資料庫閃回快速修復人為造成的數據錯誤,也可以使用閃回查詢,了解記錄之前的狀態。但閃回技術不是萬能的,它也受到許多限制,但隨著資料庫版本的不斷更新,閃回功能在各個版本都得到了增強。

我們假設這樣的場景:今天是周三,我們發現某個PDB的數據出現人為錯誤,然後將這個PDB通過資料庫閃回技術,將資料庫閃回到周一,並使用resetlogs的方式打開這個PDB。閃回操作執行完成後,發現閃回的時間是錯誤的,不應該將這個PDB閃回到周一,而是應該閃回到周二。在Oracle Database 20c之前,如果出現上面的情況,恐怕就要使用其他技術對這個PDB進行恢復了。這也是為什麼,我們在使用閃回資料庫技術之前,我們先要進行查詢,確定正確的閃回時間點,否則就會出現如上圖所示,已經閃回到周一,再想閃回到周二就不可以了。

從20c開始,PDB的閃回功能得到了增強,即便是從周三閃回到了周一,也支持從周三閃回到周二。

接下來我們就通過實驗來驗證一下。

使用這項技術有三個前提條件:

1、資料庫啟動歸檔

2、資料庫開啟閃回

3、使用local undo我們還是使用之前實驗中所使用的Database 20c當中的pdb,名字為pdb1。假設我們在周一的時候,hr用戶下面有一個table,名字為fb_tab1,裡面有1000條記錄。

然後創建一個restore point名字叫做rp001。

接下來,我們向這個表中添加1000條記錄,認為是周二的數據情況,然後創建restore point名字為rp002。

使用同樣的方法,創建出周三的數據,然後創建restore point名字為rp003。

接下來,我們將PDB1關閉,然後閃回到第一個restore point:rp001,然後將資料庫以resetlogs方式打開。我們通過觀察,發現數據表中的記錄恢復到了1000條。

然後,我們再將資料庫PDB1,閃回到第二個restore point:rp002,這項操作在之前的版本中是不支持的,而從20c開始提供了很好的支持。我們看到數據表中的數據已經恢復到了restore point:rp002的狀態,有2000條數據。

如果您願意,可以將資料庫閃回到第三個restore point,這項操作在之前也是不支持的,而在20c當中是沒有問題的。

官宣:Oracle Database 20c(預覽版)雲端上線

Oracle Database 20c:區塊鍊表

Oracle Database 20c: In-Memory增強

Oracle Database 20c: JSON功能增強

Oracle Database 20c與DATA SAFE

Oracle Database 20c:In-Memory混合掃描

掃描下方QR Code即刻預約ADW演示

編輯:殷海英

關鍵字: