oracle實驗記錄 (oracle 10G dataguard(6)保護模式)
standby的 3種保護模式
maximum protection最高保護模式:
要求
要求
redo寫程式:LGWR
網路傳輸:sync
,磁碟i/0 :affirm ,預設(noaffirm)
需要standbylogfile
設定為這個後:
當主庫primary寫redo日誌的時候 必須同時寫入standby standbylogfile,全完後事務才會提交,如果故障導致主資料庫無法向至少一個遠端
備重做日誌寫其重做流,則主資料庫會關閉
maximum availability 最高實用性
要求:
redo寫程式:LGWR
網路傳輸 sync
磁碟i/o affirm
需要 standbylogfile
設定後:當主庫primary寫redo日誌時候,必須同時寫入standby standbylogfile ,完成後事務才可以提交,當有故障導致主庫無法寫重做流到備用庫的standby logfile時候,主庫會自動轉為‘最大效能’模式繼續執行 直到故障消除時候~自動轉為 最高可用性~~~~~,不會shutdown 主庫
Maximum performance 最大效能
要求
rodo寫程式: lgwr,arcn
網路傳輸:SYNC ,ASYNC
磁碟i/o affirm ,noaffirm
standbylogfile ,可以要,也可以不要
設定後:primary寫redo時候,事務就可以提交,寫入也可是不同步的,有故障導致無法寫入時候,不會shutdown 主庫
實驗 3種方式SQL> select protection_mode,db_unique_name,open_mode,database_role from v$databa (standby)
se;
PROTECTION_MODE DB_UNIQUE_NAME OPEN_MODE DATABASE_ROLE
-------------------- ------------------------------ ---------- ----------------
MAXIMUM PERFORMANCE standby1 READ ONLY PHYSICAL STANDBY
SQL> select protection_mode,db_unique_name,open_mode,database_role from v$databa (primary)
se
2 ;
PROTECTION_MODE DB_UNIQUE_NAME OPEN_MODE DATABASE_ROLE
-------------------- ------------------------------ ---------- ----------------
MAXIMUM PERFORMANCE xh READ WRITE PRIMARY
預設情況是 最高效能模式
SQL> col dbid format a10
SQL> select dbid,group#,bytes,status ,first_change#,last_change# from v$standby (standby)
log;
DBID GROUP# BYTES STATUS FIRST_CHANGE# LAST_CHANGE#
---------- ---------- ---------- ---------- ------------- ------------
3097375337 4 52428800 ACTIVE 1480745 1481300
UNASSIGNED 5 52428800 UNASSIGNED 0 0
SQL> show parameter log_archive_dest_2 (primary)
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_2 string service=standby1 lgwr net_time
ut=10 db_unique_name=standby1
SQL> alter system set log_archive_dest_2='service=standby1 affirm lgwr sync db_u (primary)
nique_name=standby1';
系統已更改。
最高保護模式
SQL> startup force mount (primary)
ORACLE 例程已經啟動。
Total System Global Area 289406976 bytes
Fixed Size 1248576 bytes
Variable Size 104858304 bytes
Database Buffers 176160768 bytes
Redo Buffers 7139328 bytes
資料庫裝載完畢。
SQL> alter database set standby database to maximize protection; (primary)
資料庫已更改。
SQL> alter database open; (primary)
資料庫已更改。
SQL> select protection_mode,db_unique_name,open_mode,database_role from v$databa (standby )
se;
PROTECTION_MODE DB_UNIQUE_NAME OPEN_MODE DATABASE_ROLE
-------------------- ------------------------------ ---------- ----------------
MAXIMUM PROTECTION standby1 READ ONLY PHYSICAL STANDBY
SQL> select protection_mode,db_unique_name,open_mode,database_role from v$databa (primary)
se;
PROTECTION_MODE DB_UNIQUE_NAME OPEN_MODE DATABASE_ROLE
-------------------- ------------------------------ ---------- ----------------
MAXIMUM PROTECTION xh READ WRITE PRIMARY
現在是 最高保護模式, STANDBY 不允許 shutdown
SQL> shutdown immediate;(standby )
ORA-01154: 資料庫忙。現在不允許開啟, 關閉, 裝載和解除安裝
SQL> alter database recover managed standby database cancel; (standby )
alter database recover managed standby database cancel
*
第 1 行出現錯誤:
ORA-16136: 受管備用恢復未啟用
SQL> shutdown immediate; (standby )
ORA-01154: 資料庫忙。現在不允許開啟, 關閉, 裝載和解除安裝
SQL> select group# from v$standby_log;
GROUP#
----------
4
5
SQL> alter database drop standby logfile group 4;
alter database drop standby logfile group 4
*
第 1 行出現錯誤:
ORA-00261: 正在歸檔或修改日誌 4 (執行緒 1)
ORA-00312: 聯機日誌 4 執行緒 1: 'E:\STANDBY\STANDBY04.LOG'
正在使用的 standby logfile 是不允許刪除的
SQL> alter database drop standby logfile group 5;
資料庫已更改。
沒使用的 standby logfile可以刪除
SQL> alter database add standby logfile group 5 'e:\standby\standby05.log' reuse
;
資料庫已更改。
SQL>
最高實用性
SQL> startup force mount(primary)
ORACLE 例程已經啟動。
Total System Global Area 289406976 bytes
Fixed Size 1248576 bytes
Variable Size 109052608 bytes
Database Buffers 171966464 bytes
Redo Buffers 7139328 bytes
資料庫裝載完畢。
SQL> alter database set standby database to MAximize AVAILABILITY; (primary)
資料庫已更改。
SQL> alter database open; (primary)
資料庫已更改。
SQL> select protection_mode,db_unique_name,open_mode,database_role from v$databa (primary)
se;
PROTECTION_MODE DB_UNIQUE_NAME OPEN_MODE DATABASE_ROLE
-------------------- ------------------------------ ---------- ----------------
MAXIMUM AVAILABILITY xh READ WRITE PRIMARY
SQL> select protection_mode,db_unique_name,open_mode,database_role from v$databa (standby)
se;
PROTECTION_MODE DB_UNIQUE_NAME OPEN_MODE DATABASE_ROLE
-------------------- ------------------------------ ---------- ----------------
MAXIMUM AVAILABILITY standby1 READ ONLY PHYSICAL STANDBY
SQL> shutdown immediate;(standby)
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
當standby 關閉,在最高可用性模式時候,PRIMARY 的redo傳輸不到standby,primary會自動轉換成 最高效能模式
關於日誌應用
SQL> select dest_id,status,applied_seq#,recovery_mode from v$archive_dest_status (standby)
;
DEST_ID STATUS APPLIED_SEQ# RECOVERY_MODE
---------- --------- ------------ -----------------------
1 VALID 0 IDLE
2 VALID 0 IDLE
3 INACTIVE 0 IDLE
4 INACTIVE 0 IDLE
5 INACTIVE 0 IDLE
6 INACTIVE 0 IDLE
7 INACTIVE 0 IDLE
8 INACTIVE 0 IDLE
9 INACTIVE 0 IDLE
10 INACTIVE 0 IDLE
11 VALID 103 IDLE
已選擇11行。
SQL> select process,client_process,status,sequence# from v$managed_standby; (standby)
PROCESS CLIENT_P STATUS SEQUENCE#
--------- -------- ------------ ----------
ARCH ARCH CLOSING 110
ARCH ARCH CLOSING 111
RFS LGWR IDLE 112
RFS ARCH IDLE 0
RFS UNKNOWN IDLE 0
SQL> alter database recover managed standby database using current logfile disco (standby)
nnect from session;
這是 開啟實時應用,既應用主庫由LGWR 傳遞的日誌(經過LNSN,RFS)到standby的 standby logfile,由standby的MPR0程式應用
SQL> select dest_id,status,applied_seq#,recovery_mode from v$archive_dest_status (standby)
;
DEST_ID STATUS APPLIED_SEQ# RECOVERY_MODE
---------- --------- ------------ -----------------------
1 VALID 0 MANAGED REAL TIME APPLY
2 VALID 0 MANAGED REAL TIME APPLY
3 INACTIVE 0 MANAGED REAL TIME APPLY
4 INACTIVE 0 MANAGED REAL TIME APPLY~~~~~~~~~~ 狀態為 實時應用
5 INACTIVE 0 MANAGED REAL TIME APPLY
6 INACTIVE 0 MANAGED REAL TIME APPLY
7 INACTIVE 0 MANAGED REAL TIME APPLY
8 INACTIVE 0 MANAGED REAL TIME APPLY
9 INACTIVE 0 MANAGED REAL TIME APPLY
10 INACTIVE 0 MANAGED REAL TIME APPLY
11 VALID 103 MANAGED REAL TIME APPLY
已選擇11行。
SQL> select process,client_process,status,sequence# from v$managed_standby; (standby)
PROCESS CLIENT_P STATUS SEQUENCE#
--------- -------- ------------ ----------
ARCH ARCH CLOSING 110
ARCH ARCH CLOSING 111
RFS LGWR IDLE 112
RFS ARCH IDLE 0
RFS UNKNOWN IDLE 0
MRP0 N/A APPLYING_LOG 107~~~~~~~~~~~~~~~~多了mpro程式,狀態為 應用 日誌
已選擇6行。
SQL> alter database recover managed standby database cancel;(結束 standby恢復)
資料庫已更改。
SQL> select process,client_process,status,sequence# from v$managed_standby; (standby)
PROCESS CLIENT_P STATUS SEQUENCE#
--------- -------- ------------ ----------
ARCH ARCH CLOSING 110
ARCH ARCH CLOSING 111
RFS LGWR IDLE 112
RFS ARCH IDLE 0
RFS UNKNOWN IDLE 0
SQL> select dest_id,status,applied_seq#,recovery_mode from v$archive_dest_status (standby)
;
DEST_ID STATUS APPLIED_SEQ# RECOVERY_MODE
---------- --------- ------------ -----------------------
1 VALID 0 IDLE
2 VALID 0 IDLE
3 INACTIVE 0 IDLE
4 INACTIVE 0 IDLE
5 INACTIVE 0 IDLE
6 INACTIVE 0 IDLE
7 INACTIVE 0 IDLE
8 INACTIVE 0 IDLE
9 INACTIVE 0 IDLE
10 INACTIVE 0 IDLE
11 VALID 103 IDLE
已選擇11行。
SQL> alter database recover managed standby database disconnect from session;
資料庫已更改。
應用 standby接收primary的archived log (由於配置了standby logfile那麼archived log為standby logfile的歸檔)
SQL> select process,client_process,status,sequence# from v$managed_standby;
PROCESS CLIENT_P STATUS SEQUENCE#
--------- -------- ------------ ----------
ARCH ARCH CLOSING 110
ARCH ARCH CLOSING 111
RFS LGWR IDLE 112
RFS ARCH IDLE 0
RFS UNKNOWN IDLE 0
MRP0 N/A WAIT_FOR_LOG 112 ~~~注意mpr0的狀態 為等待 archive_log,有了 新的 未應用的archive_log,狀態會為APPLYING_LOG
已選擇6行。
SQL> select dest_id,status,applied_seq#,recovery_mode from v$archive_dest_statu
;
DEST_ID STATUS APPLIED_SEQ# RECOVERY_MODE
---------- --------- ------------ -----------------------
1 VALID 0 MANAGED
2 VALID 0 MANAGED
3 INACTIVE 0 MANAGED~~~~~~~~~~~~~~~~~~~~~~~狀態為管理模式
4 INACTIVE 0 MANAGED
5 INACTIVE 0 MANAGED
6 INACTIVE 0 MANAGED
7 INACTIVE 0 MANAGED
8 INACTIVE 0 MANAGED
9 INACTIVE 0 MANAGED
10 INACTIVE 0 MANAGED
11 VALID 103 MANAGED
已選擇11行。
SQL> alter database recover managed standby database cancel;
資料庫已更改。
關於disconnect from session 子句
SQL> alter database recover managed standby database ; 不加的話 執行恢復 standby的session將 hang住
SQL> alter database recover managed standby database cancel; (只有在standby的 另一session關閉恢復,hang住的session 才可以繼續操作)
資料庫已更改。
SQL> alter database recover managed standby database ;
alter database recover managed standby database
*
第 1 行出現錯誤:
ORA-16043: 已取消維持的恢復會話
ORA-16037: 使用者已請求取消受管恢復操作
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12020513/viewspace-619715/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle實驗記錄 (oracle 10G dataguard(1)手工搭建)Oracle
- oracle實驗記錄 (oracle 10G dataguard(5)實時應用)Oracle
- oracle實驗記錄 (oracle 10G dataguard(2)引數部分)Oracle
- oracle實驗記錄 (oracle 10G dataguard(3)檔案管理)Oracle
- oracle實驗記錄 (oracle 10G dataguard(8)rman 建立dg)Oracle
- oracle實驗記錄 (oracle 10G dataguard(10)flashback 與dg)Oracle
- oracle實驗記錄 (oracle 10G dataguard(4)redo傳輸&程式)Oracle
- oracle實驗記錄 (oracle 10G dataguard(7)physical dg轉換)Oracle
- oracle實驗記錄 (oracle 10G dataguard(11)建立logical standby)Oracle
- 【DataGuard】不能沒有你,我的Standby ——Oracle DataGuard最大保護模式 故障實驗Oracle模式
- 【DataGuard】Oracle DataGuard 資料保護模式切換Oracle模式
- oracle實驗記錄 (oracle 10G dataguard(9)rman恢復與dg)Oracle
- 【DataGuard】Oracle Dataguard三種保護模式特點總結Oracle模式
- 聊聊Dataguard的三種保護模式實驗(上)模式
- 聊聊Dataguard的三種保護模式實驗(下)模式
- 【DataGuard】Oracle DataGuard 最高可用模式 故障實驗Oracle模式
- oracle實驗記錄 (oracle 10G rman transport database)OracleDatabase
- 6 Oracle Data Guard Protection Modes 保護模式Oracle模式
- Oracle 10g FLASHBACK DATABASE 實驗記錄Oracle 10gDatabase
- oracle實驗記錄 (oracle 10G 詳細分析undo)Oracle
- dataguard三種保護模式模式
- DataGuard切換保護模式模式
- oracle實驗記錄 (oracle 10G dbms_xplan的強化)Oracle
- oracle實驗記錄 (恢復-rman維護(1))Oracle
- oracle實驗記錄 (恢復-rman維護(2))Oracle
- 建立DATAGUARD最大保護模式-測試手記模式
- oracle實驗記錄 (oracle reset parameter)Oracle
- 探索Oracle11gR2 之 DataGuard_03 三種保護模式Oracle模式
- oracle實驗記錄 (flashback)Oracle
- oracle實驗記錄 (OMF)Oracle
- oracle實驗記錄 (NET)Oracle
- oracle實驗記錄 (audit)Oracle
- oracle實驗記錄 (oracle 資料字典)Oracle
- Oracle Data Redaction實驗記錄Oracle
- oracle實驗記錄 (block cleanout)OracleBloC
- oracle實驗記錄 (dump undo)Oracle
- oracle實驗記錄 (inlist card)Oracle
- Oracle DataGuard 常用維護命令參考手冊 [轉載記錄]Oracle