標籤:snapshot standby
Snapshot Standby,此功能可將備庫置身於"可讀寫狀態"用於不方便在生產環境主庫中測試的內容,比如類比上線測試等任務。當備庫讀寫狀態下任務完成後,可以非常輕鬆的完成Snapshot Standby資料庫角色切換回備庫角色,恢複與主庫資料同步。在Snapshot Standby資料庫狀態下,備庫是可以接受主庫傳過來的日誌,但是不能夠將變化應用在備庫中。
物理備庫要轉換成Snapshot的前提條件
下面示範,如果切換成snapshot。
1. 停止備庫上的日誌應用。
DGMGRL> edit database 11gdg2 set state=APPLY-OFF;Succeeded.DGMGRL>
2. 開啟備庫資料庫閃回功能
SQL> alter database flashback on;Database altered.
3.將備庫轉為snapshot
DGMGRL> CONVERT DATABASE 11GDG2 TO SNAPSHOT STANDBY;Converting database "11gdg2" to a Snapshot Standby database, please wait...Database "11gdg2" converted successfully
4. 此時,我們在主庫上做些資料修改
SQL> select count(*) from t1; COUNT(*)----------56SQL> insert into t1 select * from t1;56 rows created.SQL> commit;Commit complete.
5. 在備庫中修改資料
SQL> conn / as sysdbaConnected.SQL> select open_mode from v$database;OPEN_MODE------------------------------------------------------------READ WRITESQL> conn scott/tigerConnected.SQL> create table t2 as select * from t1;Table created.SQL> select count(*) from t2; COUNT(*)----------56SQL>
6. 將snapshot轉為physical standby
DGMGRL> CONVERT DATABASE 11GDG2 TO PHYSICAL STANDBY;Converting database "11gdg2" to a Physical Standby database, please wait...Operation requires shutdown of instance "dgtst" on database "11gdg2"Shutting down instance "dgtst"...Database closed.Database dismounted.ORACLE instance shut down.Operation requires startup of instance "dgtst" on database "11gdg2"Starting instance "dgtst"...ORACLE instance started.Database mounted.Continuing to convert database "11gdg2" ...Operation requires shutdown of instance "dgtst" on database "11gdg2"Shutting down instance "dgtst"...ORA-01109: database not openDatabase dismounted.ORACLE instance shut down.Operation requires startup of instance "dgtst" on database "11gdg2"Starting instance "dgtst"...ORACLE instance started.Database mounted.Database "11gdg2" converted successfully
將備庫開啟
SQL> alter database open read only;Database altered.
7. 檢查備庫中t2表是否還存在
SQL> conn scott/tigerConnected.SQL> select * from t2;select * from t2 *ERROR at line 1:ORA-00942: table or view does not existSQL>
8.看看轉換到snapshot後,對主庫做的更改資料有沒有被應用。
SQL> select count(*) from t1; COUNT(*)---------- 112SQL>
和第4步結論是一樣的 。
本文出自 “叮咚” 部落格,請務必保留此出處http://lqding.blog.51cto.com/9123978/1682805
Oracle學習之DATAGUARD(十一) snapshot database