這篇分享snapshot standby的相關應用
oracle 11g Shapshot standby可以用來測試procedure(PL/SQL)或SQL所造成的影響,這算是它存在的最大價值。
其實早在10g r2(10.2.0.4)的版本,physics standby也有相同的功能,不過操作過程很繁瑣,但來到11g後我越來越愛oracle開發團隊,
將繁瑣的轉換過程變更為一句SQL(是的!你沒看錯),也因為這樣終於讓我有花得很值得的感覺(每年繳給Oracle保護費終於有回饋了),說到這裡小弟就馬上來演練整個操作過程。
文章均為自己見解,如有錯誤還請指教。
請確定flashback是否開啟。
1.開啟redo apply process(等到apply完畢)
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
2.關閉redo apply process
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
3.physics standby db轉換snapshot standby db
DB需mount才能轉換
alter database convert to snapshot standby;(很簡單的一句SQL就搞定了~Cool)
轉換後DB狀態變更為nomount
4.shutdown immediate/startup
成功轉換為shapshot standby後,刪除Table資料
上為primary原有資料筆數,下為snapshot standby刪除後資料筆數
接下來準備將shapshot standby還原physics standb,看筆數是否會恢復為65525
轉換physics standby
alter database convert to physical standby;
Shutdown immediate/startup mount;
Open redo apply
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
確認資料是否恢復
資料果然恢復(一筆都沒少)。有了這功能後我想以後要模擬生產資料庫資料,用來測試SQL或procedure就不用再浪費時間在資料匯入上摟。
下篇小弟將演練physics standby converted to temporarily logical standby。