巧用flashback database實現靈活的資料復原

來源:互聯網
上載者:User

巧用flashback database實現靈活的資料復原

之前寫了一篇文章分享了使用flashback database的特性來在測試環境中避免重複匯入大批量的資料,造成時間和儲存空間的浪費。
今天碰到的這個問題更有針對性和普遍性,在很多時候都需要一套獨立的環境來作為客戶的培訓和示範需要,環境中的資料一旦配置完成,一般是很少需要改動的。如果培訓完成後,第二天如果還有培訓或者示範,想得到原來的初始化資料就很困難了。
 這個時候我們可以嘗試使用flashback database來實現。
 在之前的例子中分享了根據時間點或者scn可以達到閃回資料庫的目的,其實還有一種方式比較普遍通用,就是使用restore point來做閃回資料庫的操作。
 假設環境初始化完成之後,我們可以直接設定一個restore point,在後期就不用過分關注時間點或者scn來做閃回操作了。
create restore point original_state_BASE guarantee flashback database;

設定了這個restore point之後,我們可以使用下面的指令碼來查看設定的這個復原點。
col NAME for a20
 col TIME for a35
 set lines 200
 col STORAGE_SIZE for a50
 SELECT NAME, SCN, TIME, DATABASE_INCARNATION# DI,GUARANTEE_FLASHBACK_DATABASE, STORAGE_SIZE/1024/1024/1024
 FROM V$RESTORE_POINT
 WHERE GUARANTEE_FLASHBACK_DATABASE='YES';
NAME                        SCN TIME                                        DI GUA STORAGE_SIZE/1024/1024/1024
 -------------------- ---------- ----------------------------------- ---------- --- ---------------------------
 ORIGINAL_STATE_BASE    4465165 17-APR-15 10.48.01.000000000 AM              1 YES                          0
 ORIGINAL_STATE          4465180 17-APR-15 10.48.10.000000000 AM              1 YES                  .68359375

 

設定了之後,如果後面需要閃回恢複就很容易了。
 參考指令碼如下,可以很快達到預期的目的。
set echo on feed on
 set time on timing on
 -spoo logs/restore_flashback.log
 select name from v$database;
 SELECT current_scn FROM v$database;
 col NAME for a20
 col TIME for a35
 set lines 100

 SELECT NAME, SCN, TIME, DATABASE_INCARNATION# DI,GUARANTEE_FLASHBACK_DATABASE, STORAGE_SIZE
 FROM V$RESTORE_POINT
 WHERE GUARANTEE_FLASHBACK_DATABASE='YES';

 shutdown immediate;
 startup mount;
 flashback database to restore point ORIGINAL_STATE;
 alter database open read only;
 shutdown immediate;
 startup mount;
 alter database open resetlogs;
 spoo off

當然了這個回退的原理就是flashback database,但是在特定的使用情境中就賦予了更多的實際意義。
 在這個基礎上如果根據業務需要,每周的某幾天需要做這個後援動作,就可以設定為crontab的方式來自動運行,就不用大半夜,大清早再去做這些回退了。

本文永久更新連結地址:

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.