使用RMAN對CDB執行閃回資料庫操作

eric0435發表於2017-12-18

對CDB執行閃回資料庫與對non-CDB執行閃回資料庫操作是類似的,具體操作步驟如下:
1.使用SQL*Plus連線到目標資料庫來判斷閃回操作的的目標SCN,還原點或時間點

SQL> SELECT OLDEST_FLASHBACK_SCN, OLDEST_FLASHBACK_TIME   FROM V$FLASHBACK_DATABASE_LOG;

OLDEST_FLASHBACK_SCN OLDEST_FLASH
-------------------- ------------
             5090113 17-DEC-17



SQL> SELECT CURRENT_SCN   FROM V$DATABASE;

CURRENT_SCN
-----------
    6003920

2.刪除表t1中的資料

SQL> select count(*) from t1;

  COUNT(*)
----------
        39

SQL> delete from t1;

39 rows deleted.

SQL> commit;

Commit complete.

3.關閉資料庫,並確保沒有任何例項開啟資料庫,然後啟動到mount狀態

SQL> shutdown  immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.

Total System Global Area 6442450944 bytes
Fixed Size                  8807168 bytes
Variable Size            1895828736 bytes
Database Buffers         4529848320 bytes
Redo Buffers                7966720 bytes
Database mounted.

4.執行flashback database命令將整個CDB閃回到指定的時間點

SQL> flashback database to scn 6003920;

Flashback complete.

5.在SQL*Plus命令視窗中將CDB設定為只讀狀態

SQL> alter database open read only;

Database altered.

6.如果閃回操作後滿足你所要求的結果,那麼可以執行以下兩個相互排斥的選項:
.使用resetlogs選項將資料庫開啟。如果當前資料庫為只讀狀態,那麼使用SQL*Plus執行以下命令:

shutdown immediate
startup mount
alter database open resetlogs

.使用Oracle Data Pump匯出你所需要的物件,然後使用RMAN來恢復資料庫到當前時間,透過對資料庫重新應用重做日誌中的所有改變來將
資料庫恢復到當前時間點從而撤消閃回資料庫所做的改變。

RMAN> recover database;

Starting recover at 18-DEC-17
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=11 instance=jy1 device type=DISK

starting media recovery
media recovery complete, elapsed time: 00:00:02

Finished recover at 18-DEC-17

Media recovery complete.
SQL> alter database open;

Database altered.

SQL> alter pluggable database all open read write;

Pluggable database altered.

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26015009/viewspace-2148790/,如需轉載,請註明出處,否則將追究法律責任。

相關文章