【OCP最新題庫解析(052)–題21】Table EMP resides in the USERS tablespace.

  • 2019 年 10 月 10 日
  • 筆記

Q

題目

Table EMP resides in the USERS tablespace.

Examine this command:

SQL> DROP TABLE emp PURGE;

Which two methods would you use to recover EMP?

A. Flashback Table.

B. re-creating the table and reinserting the rows.

C. performing a tablespace point in time recovery of USERS. 表空間基於時間點的恢復

D. Flashback Transaction Backout.

E. Flashback Drop.

A

答案

Answer:BC

注意,本題中的DROP使用了PURGE選項,刪除後不進入回收站,所以,E選項是錯誤的。

TSPITR(Tablespace Point-In-Time Recover,表空間基於時間點恢復)也稱為小範圍的不完全恢復,用於將一個或多個表空間恢復到過去某個時間點的狀態,而其它表空間仍然保持現有狀態。通過執行TSPITR可將一個或多個表空間快速恢復到以前的某個時間。

例如,早上9點鐘,DROP了users表空間的表A,10點鐘創建了表B並插入了數據,現在執行TSPITR到9點鐘就可以恢復users表空間的表A。需要注意的是,在執行TSPITR之前可以使用SYS.TS_PITR_OBJECTS_TO_BE_DROPPED視圖將執行TSPITR後將被刪除的對象查詢出來並使用expdp導出到本地,在執行完TSPITR之後,再將這些對象impdp導入即可實現不丟數據的恢復。有關TSPITR的具體操作過程可以參考我的BLOG:http://blog.itpub.net/26736162/viewspace-1671741。

TSPITR可在下列情況下使用:

① 恢復因錯誤的TRUNCATE TABLE語句而丟失的數據。

② 從表邏輯損壞中恢復。

③ 撤消隻影響部分資料庫的批作業或DML語句的結果。

④ 將邏輯方案恢復到與物理資料庫其餘部分不同的時間點。

TSPITR的相關數據字典視圖:

SELECT * FROM SYS.TS_PITR_CHECK;–檢查表空間是否是自包含

SELECT * FROM SYS.TS_PITR_OBJECTS_TO_BE_DROPPED;–檢查哪些對象執行TSPITR後將被刪除

& 說明:

有關TSPITR的具體操作過程可以參考我的BLOG:http://blog.itpub.net/26736162/viewspace-1671741/

Oracle中閃回技術分類圖如下所示:

閃回技術分類:

(1)閃回查詢(Flashback Query):查詢過去某個時間點或某個SCN值對應的表中的數據資訊,即從回滾段中讀取一定時間內對錶進行操作的數據,恢復錯誤的DML操作。

(2)閃回版本查詢(Flashback Version Query):查詢過去某個時間段或某個SCN段內表中數據的變化情況。

(3)閃回事務查詢(Flashback Transaction Query):查看某個事務或所有事務在過去一段時間對數據進行的修改。

(4)閃回表(Flashback TABLE):將表恢復到過去的某個時間點或某個SCN值時的狀態。

(5)閃回刪除(Flashback DROP):將已經刪除的表及表上的索引恢復到刪除前的狀態,但索引名不會恢復到刪除前的狀態。

(6)閃回資料庫(Flashback Database):將資料庫恢復到過去某個時間點或某個SCN值時的狀態。

(7)閃回數據歸檔(Flashback Data Archive):通過將變化數據另外存儲到創建的閃回歸檔區中,用來和Undo區別開來,這樣就可以為閃回歸檔區單獨設置存儲策略,使之可以閃回到指定時間之前的舊數據而不受Undo策略的影響。

有關閃回需要注意以下幾點:

(1)閃回查詢、閃回版本查詢、閃回事務查詢以及閃回表主要是基於回滾(Undo)表空間中的回滾資訊實現的。

(2)閃回刪除是基於Oracle中的回收站(Recycle Bin)特性實現的。

(3)閃回資料庫是基於閃回恢復區(Flash Recovery Area)中的閃回日誌來實現的。

(4)閃回數據歸檔是基於閃回歸檔區中的數據來實現的。