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 10g flashback databaseOracle 10gDatabase
- 在Oracle DG Standby庫上啟用flashback database功能OracleDatabase
- Oracle 10g expdp attach引數體驗Oracle 10g
- Oracle dataguard failover 實戰OracleAI
- 【FLASHBACK】Oracle flashback data archive 介紹OracleHive
- Oracle 10g 下載地址Oracle 10g
- oracle 10G特性之awrOracle 10g
- Scheduler in Oracle Database 10g(轉)OracleDatabase
- 10G DG SWITCH OVER
- ORACLE Flashback Query偽列Oracle
- ISO 映象安裝oracle 10gOracle 10g
- Oracle 10g RAC故障處理Oracle 10g
- Oracle 10g 增刪節點Oracle 10g
- oracle ADG與DG的區別Oracle
- 【DATAGUARD】Oracle Dataguard nologging 塊修復Oracle
- oracle dataguard broker 配置Oracle
- 【DATAGUARD】Oracle Dataguard物理備庫切換最佳實踐(sqlplus)OracleSQL
- oracle dg報錯Oracle
- Oracle:DG 的 switchoverOracle
- 驗證Oracle 10g線上整理碎片索引是否失效過程Oracle 10g索引
- Oracle 單機配置DataGuardOracle
- 【DATAGUARD】Oracle Dataguard體系架構詳解Oracle架構
- Oracle 11.2.0.4 physical dataguard和snapshot dataguard切換Oracle
- Oracle 備份恢復之 FlashbackOracle
- Oracle 11g RAC DG備庫gv$dataguard_stats apply lag值較大OracleAPP
- 【DG】Oracle11g異構平臺之Linux To Windows DataGuard安裝配置--duplicateOracleLinuxWindows
- Oracle DG 日常點檢Oracle
- Oracle DG管理Broker配置Oracle
- Oracle RAC+DG搭建Oracle
- oracle 19c dataguard silent install (oracle 19c dataguard 靜默安裝)Oracle
- Oracle 11.2 DataGuard RAC To RAC搭建Oracle
- Oracle之11g DataGuardOracle
- 【DATAGUARD】Oracle19c dataguard新特性及部署Oracle
- 10. Oracle常用高可用方案——10.1. DGOracle
- 關於Oracle 10g ASM磁碟大小的限制Oracle 10gASM
- windows2008R2安裝oracle 10gWindowsOracle 10g
- ORACLE9I升級到10G(zt)Oracle
- Oracle 10g RAC 資料儲存更換Oracle 10g
- oracle 10g函式大全–日期型函式Oracle 10g函式