Redo Gap 處理與優化
理論背景
當redo data 傳送發生中斷時就會產生redo gap。當redo 傳送恢復正常以後,redo transport service 會自動檢測redo gap併傳送缺失的redo 到destination。解決redo gap的時間與gap 的數量和網路有一定的關係。 Gap越少,網路越好,解決gap就會越快。
手工解決 Gap 問題
在Oracle 11g裡,Data Guard 切換多了一個新的功能:flush redo。
SQL> alter system flush redo to target_db_name;
Flush 能把沒有傳送的redo 從主庫傳送到standby庫。 只要主庫能啟動到mount 狀態,
那麼Flush 就可以把沒有傳送的歸檔和current online redo 傳送到備庫。
1 解決物理standby Gap問題
1.1 物理standby 庫上執行如下SQL,判斷是否存在gap:
SQL> SELECT * FROM V$ARCHIVE_GAP;
THREAD# LOW_SEQUENCE# HIGH_SEQUENCE#
----------- ------------- --------------
1 8 11
1.2 主庫查詢,確認一下:
SQL> SELECT NAME FROM V$ARCHIVED_LOG WHERE THREAD#=1 AND DEST_ID=1 AND SEQUENCE# BETWEEN 7 AND 11;
NAME
--------------------------------------------------------------------------------
/primary/thread1_dest/arcr_1_8.arc
/primary/thread1_dest/arcr_1_9.arc
/primary/thread1_dest/arcr_1_10.arc
1.3 把這些歸檔copy到物理standby,並使用ALTER DATABASE REGISTER LOGFILE應用這些歸檔:
SQL> ALTER DATABASE REGISTER LOGFILE '/physical_standby1/thread1_dest/arcr_1_7.arc';
SQL> ALTER DATABASE REGISTER LOGFILE '/physical_standby1/thread1_dest/arcr_1_8.arc';
SQL> ALTER DATABASE REGISTER LOGFILE '/physical_standby1/thread1_dest/arcr_1_9.arc';
2 解決邏輯standby Gap問題
2.1 對於logical standby database,在logical standby database上查詢DBA_LOGSTDBY_LOG檢視。
SQL> COLUMN FILE_NAME FORMAT a55
SQL> SELECT THREAD#, SEQUENCE#, FILE_NAME 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#;
THREAD# SEQUENCE# FILE_NAME
---------- ---------- -----------------------------------------------
1 6 /disk1/oracle/dbs/log-1292880008_6.arc
1 10 /disk1/oracle/dbs/log-1292880008_10.arc
正常情況下,這裡每個trhead只返回一個最高值,這裡返回2個,說明的7,8,9確實了。
2.2 Copy 缺失的log file到logical standby database,然後註冊:
SQL> ALTER DATABASE REGISTER LOGICAL LOGFILE '/disk1/oracle/dbs/log-1292880008_7.arc';
SQL> ALTER DATABASE REGISTER LOGICAL LOGFILE '/disk1/oracle/dbs/log-1292880008_8.arc';
SQL> ALTER DATABASE REGISTER LOGICAL LOGFILE '/disk1/oracle/dbs/log-1292880008_9.arc';
優化:
在網路條件不好的情況下,Redo transport services有2個可選的引數,可以提高恢復速度:
(1)Redo Transport Compression
壓縮屬性是在LOG_ARCHIVE_DEST_n 引數中指定,指定後,會在傳送之前對redo data進行壓縮,從減少傳送的時間。
日誌檔案的壓縮比很高,對效能會有很大的提高。但會消耗一定的CPU 資源。
(2)Parallel Redo Transport Network Sessions
MAX_CONNECTIONS 屬性同樣也是在LOG_ARCHIVE_DEST_n 引數中指定,可以指定多個sesion 來同時傳送redo data。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31383567/viewspace-2135151/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 物理Data Guard中哪個程式處理Redo GAP
- DG發現gap處理流程
- 【CHECKPOINT】Oracle檢查點優化與故障處理Oracle優化
- redo log file 優化優化
- DATAGUARD中手工處理日誌GAP
- Data guard archive GAP 故障處理案例Hive
- 【DG】 DataGuard 中處理archive gap的方法Hive
- 如何處理 Web 圖片優化?Web優化
- 百億級資料處理優化優化
- 前端優化之高併發處理前端優化
- OracleDG資料庫gap處理一列Oracle資料庫
- 批量處理物理備庫出現archive gapHive
- redo log檔案丟失處理措施
- XP服務優化批處理.bat優化BAT
- 多表連線SQL優化如何處理SQL優化
- 在DATAGUARD中手工處理日誌GAP的方法
- Mysql優化系列之——優化器對子查詢的處理MySql優化
- oracle - redo 損壞或刪除處理方法Oracle
- STREAMS筆記(3) REDO清理 & 異常處理筆記
- Data Guard維護管理三之處理archivelog gapHive
- Windows10系統優化(批處理)Windows優化
- CUDA程式優化心得之錯誤處理優化
- 資料庫優化之表碎片處理資料庫優化
- 汙水處理自動化控制與汙水處理廠集中控制
- [zt] 手工處理Standby 歸檔間隔(gap)的問題
- 一個20秒SQL慢查詢優化的經歷與處理方案SQL優化
- Android 記憶體洩露優化處理Android記憶體洩露優化
- 熱點塊處理是首先應該處理物件呢?還是優化sql。物件優化SQL
- ORACLE DATAGUARD中手工處理日誌v$archive_GAP的方法OracleHive
- Redo丟失的4種情況及處理方法
- Online Redo Log損壞處理實驗(上)
- Online Redo Log損壞處理實驗(中)
- Online Redo Log損壞處理實驗(下)
- Redo 丟失的4種情況的處理方法
- 用push_subq優化批處理統計SQL優化SQL
- 一次PLSQL處理LOB欄位的優化SQL優化
- 圖形影象處理-之-彩色轉化到灰度的速度優化優化
- 資料庫索引設計與優化讀書筆記--《三》SQL處理過程資料庫索引優化筆記SQL