Oracle最高可用性架構之Data Guard管理
管理日誌傳輸服務
==================================
1.檢查日誌傳輸服務
SQL> select thread#,instance_name from gv$instance; --檢查例項名稱對應的執行緒號
SQL> select thread#,dest_id,max(sequence#) --查詢每個例項所有目的地生成的日誌的最大序列號
from v$archived_log
group by thread#,dest_id
order by thread#;
(注:dest_id等於1對應初始化引數配置中的log_archive_dest_1,表示本地歸檔目的地;等於2對應初始化引數配置中的
log_archive_dest_2,表示遠端Standby資料庫目的地)
測試例子:
SQL> alter system archive log current;
SQL> r
SQL> select thread#,dest_id,max(sequence#)
from v$archived_log
group by thread#,dest_id
order by thread#;
(注:RAC所有例項的日誌成功歸檔到所有目的地,證明RAC的日誌傳送服務工作正常)
問題排查:
SQL> select error from v$archive_dest_status;
(注:如果日誌傳輸服務沒有正常工作,可以通過此表檢視原因)
2.檢視Standby資料庫Standby Redo日誌的使用情況
說明:在日誌的實時傳輸過程中,需要使用到Standby資料庫的Standby Redo日誌。
SQL> select thread#,sequence#,archived,status from v$standby_log; --stnadby資料庫端執行
SQL> select thread#,sequence#,status from v$log; --主資料庫端執行
(注:如果主資料庫的current聯機Redo日誌與Standby資料庫的active狀態的Standby Redo日誌序列號相同,證明啟用了實時傳輸)
3.監控日誌傳輸效能
a.在Redo源資料庫執行以下SQL語句顯示目的地2的響應時間柱狀圖
SQL> select frequency,duration
from v$redo_dest_resp_histogram
where dest_id = 2
and frequency > 1
(注:可以看出響應時間為xx秒的命中率為xx秒)
b.在Redo源資料庫執行以下SQL語句顯示目的地2的最慢響應時間
SQL> select max(duration)
from v$redo_dest_resp_histogram
where dest_id = 2
and frequency > 1;
c.在Redo源資料庫執行以下SQL語句顯示目的地2的最快響應時間
SQL> select min(duration)
from v$redo_dest_resp_histogram
where dest_id = 2
and frequency > 1;
4.自動發現和解決日誌缺失
當Redo傳送恢復時,Redo傳輸服務可自動察覺Redo缺失,以下為減少Redo缺失解決時間的方式:
a.Redo傳輸壓縮
使用LOG_ARCHIVE_DEST_n引數的COMPRESSION屬性,明確在傳輸到目的地之前壓縮Redo資料
b.並行Redo傳輸網路會話
使用LOG_ARCHIVE_DEST_n引數的MAX_CONNECTIONS屬性,明確建立更多的會話用於傳送Redo,解決Redo缺失
5.手動解決日誌缺失
1)物理Standby資料庫日誌缺失
SQL> select * from v$archive_gap; --在物理Standby資料庫執行
SQL> select name --在主資料庫執行
from v$archive_log
where thread# = 1
and dest_id = 1
and sequence# >= 7 and sequence# <= 10;
拷貝日誌到物理Standby資料庫,並在物理Standby資料庫執行:
SQL> alter database register logfile '/physical_standby/thread1_dest/arcr_1_7.arc';
SQL> alter database register logfile '/physical_standby/thread1_dest/arcr_1_8.arc';
SQL> alter database register logfile '/physical_standby/thread1_dest/arcr_1_9.arc';
SQL> alter database register logfile '/physical_standby/thread1_dest/arcr_1_10.arc';
2)邏輯Standby資料庫日誌缺失
SQL> select thread#,sequence#,file_name --在邏輯Standby資料庫執行
from dba_logstdby_log L
where next_change# not in
(select first_change# from dba_logstdby_log where L.thread# = thread#)
order by thread#,sequence#;
拷貝日誌到邏輯Standby資料庫,並在邏輯Standby資料庫執行:
SQL> alter database register logical logfile '/disk1/oracle/dba/log-129880008_7.arc';
SQL> alter database register logical logfile '/disk1/oracle/dba/log-129880008_8.arc';
SQL> alter database register logical logfile '/disk1/oracle/dba/log-129880008_9.arc';
SQL> alter database register logical logfile '/disk1/oracle/dba/log-129880008_10.arc';
6.Redo傳輸服務等待事件
等待事件 描述
LNS wait on ATTACH 建立連線到所有ASYNC和SYNC Redo傳輸目的地的Redo傳輸會話話費的總時間
LNS wait on SENDREQ Redo資料被寫到所有ASYNC和SYNC傳輸目的地話費的總時間
LNS wait on DETACH 終止連線到所有ASYNC和SYNC Redo傳輸目的地的傳輸Redo資料話費的總時間
==================================
監控/管理日誌應用服務
==================================
1.檢查告警日誌
Fri Sep 21 00:42:36 2012
alter database recover managed standby database disconnect
Attempt to start background Managed Standby Recovery process (racdg)
Fri Sep 21 00:42:36 2012
MRP0 started with pid=24, OS id=4536
MRP0: Background Managed Standby Recovery process started (racdg)
started logmerger process
Fri Sep 21 00:42:41 2012
Managed Standby Recovery not using Real Time Apply
Parallel Media Recovery started with 8 slaves
Waiting for all non-current ORLs to be archived...
All non-current ORLs have been archived.
2.查詢資料字典
SQL> select process,status,thread#,sequence#,block#,blocks --在Standby資料庫執行
from v$managed_standby where process!='ARCH';
(注:MRP0為介質恢復程式)
3.啟動Redo Apply
SQL> alter database recover managed standby database; --在前臺啟動Redo Apply
(注:如果開始一個前臺會話,控制權不會返回到命令提示符)
SQL> alter database recover managed standby database disconnect from session; --在後臺啟動Redo Apply
(注:以上語句開始一個單獨的伺服器程式,立即返回控制權給使用者。當恢復程式在後臺執行時,執行RECOVER語句的視窗能繼續執行其它工作
disconnect from session選項表示Redo Apply在後臺會話中進行,以上兩種方式都只會在發生日誌切換的時候才應用日誌)
SQL> alter database recover managed standby database using current logfile; --在前臺啟動實時應用
(注:using current logfile子句,表示Redo在接收到的時候就應用)
SQL> alter database recover managed standby database using current logfile disconnect from session; --在後臺啟動Redo實時應用
4.停止Redo Apply
SQL> alter database recover managed standby database cancel;
==================================
修改Data Guard保護模式
==================================
1.驗證引數配置
不同保護模式對應LOG_ARCHIVE_DEST_n引數的配置要求
最高可用性 最大效能 最大保護
AFFIRM NOAFFIRM AFFIRM
SYNC ASYNC SYNC
DB_UNIQUE_NAME DB_UNIQUE_NAME DB_UNIQUE_NAME
2.設定資料保護模式
啟動主資料庫在MOUNT模式,如果是RAC資料庫,關閉所有的節點,只啟動一個節點在MOUNT模式
SQL> alter database set standby database to maximize {availability|performance|protection}; --在主資料庫修改
SQL> alter database open;
最後開啟RAC的其它節點的例項
3.檢視資料庫保護模式
SQL> select protection_mode,protection_level from v$database; --在主資料庫執行檢視主資料庫的保護模式
SQL> select dest_id,database_mode,recovery_mode,protection_mode --在主資料庫執行檢視目的地的資料庫模式
from v$archive_dest_status
where dest_id = 2;
==================================
快照Standby資料庫
==================================
1.將物理Standby資料庫轉換為快照Standby資料庫
步驟1: 停止物理Standby資料庫的Redo Apply
步驟2: 如果物理Standby資料庫是RAC,關閉所有例項,只保留一個例項
步驟3: 確保Standby資料庫在MOUNT模式,且沒有被開啟
步驟4: 確保閃回恢復區被配置
步驟5: 執行以下命令將物理Standby資料庫轉換為快照Standby資料庫:
SQL> alter database convert to snapshot standby;
2.將快照Standby資料庫轉換為物理Standby資料庫
步驟1: 如果Standby資料庫是RAC,關閉所有例項只保留其中一個例項
步驟2: 確保資料庫在MOUNT模式,但是沒有開啟
步驟3: 執行以下命令將快照Standby資料庫轉換為物理Standby資料庫
SQL> alter database convert to physical standby;
(注:轉換之後資料庫被解除安裝,必須重啟。當Redo Apply開始啟用時,快照Standby資料庫接收到的Redo資料將自動被應用)
==================================
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29339097/viewspace-1064842/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle最高可用性架構之Data Guard概述Oracle架構
- 【ASK_ORACLE】Oracle Data Guard(一)DG架構Oracle架構
- DATA GUARD架構(一)架構
- ORACLE RAC GUARD架構——RAC GUARD概念和管理Oracle架構
- 介紹ORACLE DATA GUARD——DATA GUARD概念和管理Oracle
- DATA GUARD部署模式——DATA GUARD概念和管理模式
- oracle data guard!!Oracle
- Oracle Data Guard配置Oracle
- Data Guard Broker系列之四:資料庫管理資料庫
- Oracle Data Guard Broker元件Oracle元件
- Oracle Data Guard簡介Oracle
- Oracle Data Guard 介紹Oracle
- ORACLE Data Guard--IOracle
- DATA GUARD 最大可用性模式優缺點2模式
- Oracle 11g Data Guard Enabling Active Data GuardOracle
- [Data Guard]Oracle10g Data Guard學習筆記(一)Oracle筆記
- [Data Guard]Oracle10g Data Guard學習筆記(二)Oracle筆記
- [Data Guard]Oracle10g Data Guard學習筆記(三)Oracle筆記
- Oracle DG(Data Guard)支援異構平臺說明Oracle
- Oracle Data Guard 支援的異構平臺 說明Oracle
- 1 關於 Oracle Data GuardOracle
- 2 Oracle Data Guard 安裝Oracle
- 1 Oracle Data Guard Broker 概念Oracle
- Oracle Data Guard和Broker概述Oracle
- Oracle 11g Data GuardOracle
- Oracle11g Data GuardOracle
- Oracle Data Guard Failover(activate)OracleAI
- DATA GUARD概念和管理總結
- Data Guard維護管理三之處理archivelog gapHive
- 4.1.6 Oracle Restart 與 Oracle Data Guard 整合OracleREST
- 管理ORACLE RAC GUARD——RAC GUARD概念和管理Oracle
- 8 Oracle Data Guard Broker 屬性Oracle
- 9 Oracle Data Guard 故障診斷Oracle
- 【DG】Oracle Data Guard官方直譯Oracle
- ORACLE DATA GUARD -一般概念Oracle
- Oracle11g Data Guard[zt]Oracle
- Oracle RAC + Data Guard 環境搭建Oracle
- Oracle Data Guard 理論知識Oracle