oracle實驗記錄 (oracle 10G dataguard(10)flashback 與dg)
關於primary resetlogs 與 standby flashback
情況一:primary resetlogs時 standby還未應用(未開應用or實時應用)primary 要resetlogs後(從SCN 判斷)的 archived log
,那麼當primary resetlogs 併產生新的archived log時候 standby可以 正常接收新的archive log並應用~~但會忽略resetlogs 時,已經產生 在要resetlogs 後scn的archivelog,另外也可以用SCN方式判斷
primary的 TO_CHAR(RESETLOGS_CHANGE# - 2)>standby 的current_scn (都從v$database中查 ) 表示 standby不用有任何操作 可以繼續接受archivedlog並應用
SQL> alter system set log_archive_dest_2='service=standby1 valid_for=(online_log (primary)
files,primary_role) db_unique_name=standby1';
系統已更改。
SQL> shutdown immediate; (standby)
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> startup mount (standby)
ORACLE 例程已經啟動。
Total System Global Area 289406976 bytes
Fixed Size 1248576 bytes
Variable Size 96469696 bytes
Database Buffers 184549376 bytes
Redo Buffers 7139328 bytes
資料庫裝載完畢。
SQL> alter database flashback on; (standby,為standby開啟flashback database)
資料庫已更改。
SQL> select applied from v$archived_log;(standby)
APP
---
YES
YES
YES
YES
YES
SQL> select process,client_process,status,sequence# from v$managed_standby; (standby)
PROCESS CLIENT_P STATUS SEQUENCE#
--------- -------- ------------ ----------
ARCH ARCH CONNECTED 0
ARCH ARCH CONNECTED 0
RFS N/A IDLE 0
C:\>rman target / catalog rman/rman@orcl
恢復管理器: Release 10.2.0.1.0 - Production on 星期四 11月 12 15:31:01 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連線到目標資料庫: XH (DBID=3098165337)
連線到恢復目錄資料庫
RMAN> backup database ;
完成 backup 於 12-11月-09
SQL> select current_scn from v$database;(primary)
CURRENT_SCN
-----------
733042
SQL> drop table t1;(primary)
表已刪除。
SQL> alter system switch logfile;(primary) 產生一個 歸檔
系統已更改。
SQL>
SQL> select applied from v$archived_log;(standby)
APP
---
YES
YES
YES
YES
YES
NO~~~~~~~~~~~~~~~~~~~~~~~~`standby未應用
已選擇6行。
SQL> select current_scn from v$database;
CURRENT_SCN
-----------
727931
RMAN> run{startup force mount;
2> set until scn=733042;
3> restore database;
4> recover database;
5> sql'alter database open resetlogs';}
Oracle 例項已啟動
資料庫已裝載
SQL> select * from t1;(primary)
A
----------
1
2
3 ~~~~~~~~~~~~~~~~~~~~不完全恢復resetlogs open
SQL> SELECT TO_CHAR(RESETLOGS_CHANGE# - 2) FROM V$DATABASE; (primary)
TO_CHAR(RESETLOGS_CHANGE#-2)
----------------------------------------
733044
SQL> select current_scn from v$database;(standby)
CURRENT_SCN
-----------
727931
primary的 TO_CHAR(RESETLOGS_CHANGE# - 2)>standby 的current_scn (都從v$database中查 ) 表示 standby不用有任何操作 可以繼續接受archivedlog並應用
SQL> select applied from v$archived_log;(standby)
APP
---
YES
YES
YES
YES
YES
NO~~~~~~~~~~~~~~~~~~~~~~~還沒應用
已選擇6行。
SQL> insert into t1 values(4);(primary)
已建立 1 行。
SQL> commit;(primary)
提交完成。
SQL> alter system switch logfile;(primary)
系統已更改。
SQL> select process,client_process,status,sequence# from v$managed_standby;(standby)
PROCESS CLIENT_P STATUS SEQUENCE#
--------- -------- ------------ ----------
ARCH ARCH CLOSING 17
ARCH ARCH CLOSING 1
RFS ARCH IDLE 0
SQL> select applied from v$archived_log;(standby)
APP
---
YES
YES
YES
YES
YES
NO
NO~~~~~~~~~~~~接受新archive log
已選擇7行。
SQL> alter database recover managed standby database using current logfile disco (standby)
nnect from session;
資料庫已更改。
SQL> alter database recover managed standby database cancel;(standby)
資料庫已更改。
SQL> select applied from v$archived_log;(standby)
APP
---
YES
YES
YES
YES
YES
NO~~~忽略了這個 在resetlogs scn後 產生的 archived log(不是resetlog open後新產生的 archived log)
YES**********************應用了
已選擇7行。
SQL> select * from t1;
A
----------
1
2
3
4
啟動 backup 於 12-11月-09 SQL> alter database recover managed standby database disconnect from session;(standby) 資料庫已更改。 SQL> select process,client_process,status,sequence# from v$managed_standby;(standby) PROCESS CLIENT_P STATUS SEQUENCE# CURRENT_SCN 表已刪除。 SQL> alter system switch logfile;(primary) 系統已更改。 SQL> select applied from v$archived_log; APP 已選擇8行。 RMAN> run{startup force mount; A SQL> insert into t1 values(5);(primary) 已建立 1 行。 SQL> commit;primary) 提交完成。 SQL> alter system switch logfile;(primary) 系統已更改。 PROCESS CLIENT_P STATUS SEQUENCE# SQL> select applied from v$archived_log;(standby) 已選擇9行。 SQL> SELECT TO_CHAR(RESETLOGS_CHANGE# - 2) FROM V$DATABASE;(primary) TO_CHAR(RESETLOGS_CHANGE#-2) SQL> select current_scn from v$database;(standby) CURRENT_SCN Total System Global Area 289406976 bytes 閃回完成。 SQL> SQL> alter database recover managed standby database disconnect from session;(standby) 資料庫已更改。 SQL> select process,client_process,status,sequence# from v$managed_standby;(standby) PROCESS CLIENT_P STATUS SEQUENCE# SQL> select applied from v$archived_log;(standby) APP 已選擇9行。 資料庫已更改。 SQL> alter database open;(standby) 資料庫已更改。 A 這是一個強行啟用standby 到read write的操作,oracle不推薦 此操作,因為如果standby 沒開flashback database,那麼這是一個單向操作,standby轉換成primary後 永遠也轉換不成standby了,因為 在open後 這個過程將自動 resetlogs(standby)。因此,在 startup 之前要做一次 cold backup,因為以往的 backup 最多隻能 recover 到 standby database 被activated 這一點。 因此 這個是個單項過程 SQL> select db_unique_name ,database_role,open_mode,switchover_status from v$da DB_UNIQUE_NAME DATABASE_ROLE OPEN_MODE SWITCHOVER_STATUS SQL> create restore point test_point guarantee flashback database;(standby) 還原點已建立。 SQL> alter database activate standby database;(standby) 資料庫已更改。 Total System Global Area 289406976 bytes DB_UNIQUE_NAME DATABASE_ROLE OPEN_MODE SWITCHOVER_STATUS SQL> SQL> alter database commit to switchover to physical standby; (standby) 正常的轉換 無法進行 SQL> shutdown immediate; (standby) Total System Global Area 289406976 bytes 閃回完成。 資料庫已更改。 SQL> startup force (standby) Total System Global Area 289406976 bytes DB_UNIQUE_NAME DATABASE_ROLE OPEN_MODE SWITCHOVER_STATUS COUNT(*) SQL> alter system switch logfile;(primary) 系統已更改。 COUNT(*) 資料庫已更改。 SQL> select process,client_process,status,sequence# from v$managed_standby; (standby) PROCESS CLIENT_P STATUS SEQUENCE# SQL> select applied from v$archived_log;(standby) APP 已選擇10行。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12020513/viewspace-619720/,如需轉載,請註明出處,否則將追究法律責任。
情況2:standby開啟實時應用,或一直開著恢復模式,此時應用了primary 要resetlogs 後產生的 SCN,當primary resetlogs open後 此時standby 可以接受新archive log 或redo 但不會應用,需要flashback standby,既 primary的 TO_CHAR(RESETLOGS_CHANGE# - 2)
RMAN> backup database;
使用通道 ORA_DISK_1
--------- -------- ------------ ----------
ARCH ARCH CLOSING 2
ARCH ARCH CLOSING 1
RFS UNKNOWN IDLE 0
MRP0 N/A WAIT_FOR_LOG 3
SQL> select current_scn from v$database;(primary)
-----------
734858
SQL> drop table t1;(primary)
---
YES
YES
YES
YES
YES
NO
YES
YES~~~~~~~~~~~~~~~~~~應用了我們要 不完全恢復 scn 734858後 產生的resetlogs
2> set until scn=734858;
3> restore database;
4> recover database;
5> sql'alter database open resetlogs';}
SQL> select * from t1;(primary)
----------
1
2
3
4
SQL> select process,client_process,status,sequence# from v$managed_standby;(standby)
--------- -------- ------------ ----------
ARCH ARCH CLOSING 2
ARCH ARCH CLOSING 1
RFS N/A IDLE 0
MRP0 N/A WAIT_FOR_LOG 3
APP
---
YES
YES
YES
YES
YES
NO
YES
YES
NO~~~~~~~~~~~~~~~~resetlogs open後 新的archived log(insert t1 值=5)
----------------------------------------
734863
-----------
734935
standby alert.log 下面表明standby資料檔案是孤立的 來自resetlogs open前
Thu Nov 12 16:28:59 2009
Errors in file e:\standby\bdump\standby1_mrp0_4444.trc:
ORA-19909: datafile 1 belongs to an orphan incarnation
ORA-01110: data file 1: 'E:\STANDBY\DATAFILE\SYSTEM01.DBF'
SQL> shutdown immediate (standby)
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> startup mount (standby)
ORACLE 例程已經啟動。
Fixed Size 1248576 bytes
Variable Size 96469696 bytes
Database Buffers 184549376 bytes
Redo Buffers 7139328 bytes
資料庫裝載完畢。
SQL> flashback database to scn 734858;(standby)
--------- -------- ------------ ----------
ARCH ARCH CONNECTED 0
ARCH ARCH CONNECTED 0
MRP0 N/A WAIT_FOR_LOG 2
---
YES
YES
YES
YES
YES
NO
YES
YES
YES~~~~~~~~~~~~~~~`應用了
SQL> alter database recover managed standby database cancel;(standby)
SQL> select* from t1;(standby)
----------
1
2
3
4
5
另外 也可以 對standby 執行不完全恢復 (until scn),推薦用flashback database
關於alter database activate standby database
tabase;
------------------------------ ---------------- ---------- --------------------
standby1 PHYSICAL STANDBY READ ONLY NOT ALLOWED
Fixed Size 1248576 bytes
Variable Size 96469696 bytes
Database Buffers 184549376 bytes
Redo Buffers 7139328 bytes
資料庫裝載完畢。
資料庫已經開啟。
SQL> select db_unique_name ,database_role,open_mode,switchover_status from v$da
tabase;
------------------------------ ---------------- ---------- --------------------
standby1 PRIMARY READ WRITE SESSIONS ACTIVE ~~~~~~~~已經到 讀寫狀態
alter database commit to switchover to physical standby
*
第 1 行出現錯誤:
ORA-16416: 切換目標與主目標不同步
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> startup mount (standby)
ORACLE 例程已經啟動。
Fixed Size 1248576 bytes
Variable Size 100664000 bytes
Database Buffers 180355072 bytes
Redo Buffers 7139328 bytes
資料庫裝載完畢。
SQL> flashback database to restore point test_point; (standby)
SQL> alter database convert to physical standby; (standby)
ORACLE 例程已經啟動。
Fixed Size 1248576 bytes
Variable Size 100664000 bytes
Database Buffers 180355072 bytes
Redo Buffers 7139328 bytes
資料庫裝載完畢。
資料庫已經開啟。
SQL> select db_unique_name ,database_role,open_mode,switchover_status from v$da (standby)
tabase;
------------------------------ ---------------- ---------- --------------------
standby1 PHYSICAL STANDBY READ ONLY TO PRIMARY
SQL> select count(*) from v$archived_log; (standby)
----------
9
SQL> select count(*) from v$archived_log;(standby)
----------
10
SQL> alter database recover managed standby database disconnect from session; (standby)
--------- -------- ------------ ----------
ARCH ARCH CLOSING 2
ARCH ARCH CONNECTED 0
RFS UNKNOWN IDLE 0
MRP0 N/A WAIT_FOR_LOG 0
---
YES
YES
YES
YES
YES
NO
YES
YES
YES
YES
相關文章
- oracle實驗記錄 (oracle 10G dataguard(9)rman恢復與dg)Oracle
- oracle實驗記錄 (oracle 10G dataguard(8)rman 建立dg)Oracle
- oracle實驗記錄 (oracle 10G dataguard(7)physical dg轉換)Oracle
- Oracle 10g FLASHBACK DATABASE 實驗記錄Oracle 10gDatabase
- oracle實驗記錄 (oracle 10G dataguard(1)手工搭建)Oracle
- oracle實驗記錄 (oracle 10G dataguard(2)引數部分)Oracle
- oracle實驗記錄 (oracle 10G dataguard(3)檔案管理)Oracle
- oracle實驗記錄 (oracle 10G dataguard(6)保護模式)Oracle模式
- oracle實驗記錄 (oracle 10G dataguard(5)實時應用)Oracle
- oracle實驗記錄 (oracle 10G dataguard(4)redo傳輸&程式)Oracle
- oracle實驗記錄 (oracle 10G dataguard(11)建立logical standby)Oracle
- oracle實驗記錄 (flashback)Oracle
- oracle實驗記錄 (oracle 10G rman transport database)OracleDatabase
- oracle 10g flashback version query 和 flashback transaction query實驗Oracle 10g
- oracle實驗記錄 (oracle 10G 詳細分析undo)Oracle
- oracle 10g dg切換步驟記錄Oracle 10g
- oracle實驗記錄 (flashback,physical standby resetlogs)Oracle
- Oracle 10g flashbackOracle 10g
- oracle實驗記錄 (oracle 10G dbms_xplan的強化)Oracle
- oracle 10g flashback databaseOracle 10gDatabase
- ORACLE 10G DATAGUARD實戰步驟Oracle 10g
- flashback version query in oracle 10gOracle 10g
- Oracle 10g 六種FlashbackOracle 10g
- oracle實驗記錄 (oracle reset parameter)Oracle
- oracle 10g R2 dataguardOracle 10g
- oracle實驗記錄 (OMF)Oracle
- oracle實驗記錄 (NET)Oracle
- oracle實驗記錄 (audit)Oracle
- Oracle Flashback (9i & 10g) [zt]Oracle
- oracle實驗記錄 (子游標與解析)Oracle
- oracle實驗記錄 (oracle 資料字典)Oracle
- 物理DG!Oracle 10G Data Guard DemoOracle 10g
- oracle10g之flashback version query 和flashback transaction query 實驗Oracle
- oracle10g data guard(dg)__flashback_physical databaseOracleDatabase
- oracle 10g RAC + dataguard安裝文件Oracle 10g
- 【DataGuard】Oracle DataGuard 最高可用模式 故障實驗Oracle模式
- oracle實驗記錄 (基礎,truncate與delete區別實驗)Oracledelete
- Oracle Data Redaction實驗記錄Oracle