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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- DATAGUARD中手工處理日誌GAP
- OracleDG資料庫gap處理一列Oracle資料庫
- 【CHECKPOINT】Oracle檢查點優化與故障處理Oracle優化
- 如何處理 Web 圖片優化?Web優化
- 百億級資料處理優化優化
- 前端優化之高併發處理前端優化
- Mysql優化系列之——優化器對子查詢的處理MySql優化
- Windows10系統優化(批處理)Windows優化
- 使用RMAN增量備份處理Dataguard因歸檔丟失造成的gap
- 汙水處理自動化控制與汙水處理廠集中控制
- [20190911]12c dml redo優化2.txt優化
- oracle redo各種狀態(inactive、active、current)損壞的處理方式Oracle Redo
- 介面自動化測試-apiAutoTest 優化之資料依賴處理API優化
- jackson對日期的處理(序列化與反序列化)
- research gap
- 優化 Go 錯誤處理,魔改 Go recover 靠譜嗎?優化Go
- SpringBoot中BeanValidation資料校驗與優雅處理詳解Spring BootBean
- redo log file 最佳化
- MySQL redo log最佳化MySql
- 如何優雅處理前端異常?前端
- 如何優雅的處理異常
- jeecg 國際化處理
- Vue格式化處理Vue
- Python3優雅操作-時間處理與定時任務Python
- 正規表示式 vs. 字串處理:解析優勢與劣勢字串
- web效能優化(理論)Web優化
- linux 訊號與處理Linux
- Android與ARM處理器Android
- Apache網頁優化與安全優化Apache網頁優化
- 介面異常狀態統一處理方案:優先業務端處理,再按需統一處理。
- 分析執行計劃優化SQLSQL語句處理的過程(轉)優化SQL
- TiDB 在攜程 | 實時標籤處理平臺優化實踐TiDB優化
- Redis 實戰 —— 07. 複製、處理故障、事務及效能優化Redis優化
- go-carbon 1.2.6 版本釋出,優化錯誤處理機制,棄用出錯直接panic的粗暴處理方式Go優化
- 如何優雅地處理前端異常?前端
- async/await 如何優美的處理異常?AI
- 29.Spring Boot中異常處理與REST格式處理Spring BootREST
- 隨機化處理技術隨機
- win10優化後開機慢怎麼解決_win10優化後開機慢如何處理Win10優化