好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > Oracle數據庫由dataguard備庫引起的log file sync等待問題

Oracle數據庫由dataguard備庫引起的log file sync等待問題

熱門標簽:網貸外呼系統合法嗎 地圖標注效果的制作 杭州網絡外呼系統運營商 鶴壁電話機器人價格 地圖標注坐標圖標 汽車4s店百度地圖標注店 電銷套路機器人 手機地圖標注門店 安陽企業電銷機器人供應商

導讀:

最近數據庫經常出現會話阻塞的報警,過一會又會自動消失,昨天晚上恰好發生了一次,于是趕緊進行了查看,不看不知道,一看嚇一跳,發現是由dataguard引起的log file sync等待。我們知道,通常log file sync等待都是由頻繁寫日志造成的,這次居然是由DG環境引起的。

(一)問題描述

數據庫:Oracle 11.2.0.4,單機版,有Dataguard環境

操作系統:centos 7.4

通過zabbix監控到的會話阻塞信息如下圖,這里是自定義的監控,解釋如下:

用戶usera,其session id為2663,session serial為27727,該會話未在執行SQL語句,但是卻一直處于非空閑等待,等待的事件為log file sync,一共等待了548s

(二)分析

查看報警期間的歷史會話信息:

select sample_time, session_id,session_serial#,session_type,user_id,sql_id,sql_plan_operation,event,
  blocking_session,blocking_session_serial#,PROGRAM,MACHINE 
from v$active_session_history a
where a.sample_time > to_date('2020-11-25 20:40:00','yyyy-mm-dd hh24:mi:ss')
and  a.sample_time  to_date('2020-11-25 20:59:00','yyyy-mm-dd hh24:mi:ss')
and  blocking_session is not null
order by a.sample_time;

可以看到,會話1333,2191,2663均被會話1331阻塞了,等待事件是log file sync,它們在等待的會話為1311。

查詢1331會話信息,發現是日志寫進程LGWR,1311會話不再被其它會話阻塞,可以判定該會話為阻塞源頭,1331會話的等待事件是LGWR-LNS wait on channel。

select sample_time, session_id,session_serial#,session_type,user_id,sql_id,event,
  blocking_session_status,blocking_session,PROGRAM,MACHINE 
from v$active_session_history a
where a.sample_time > to_date('2020-11-25 20:40:00','yyyy-mm-dd hh24:mi:ss')
and  a.sample_time  to_date('2020-11-25 20:59:00','yyyy-mm-dd hh24:mi:ss')
and  a.session_id = 1331
order by a.sample_time;

在本案例中,一共出現了2種類型的非空閑等待事件:

  • log file sync
  • LGWR-LNS wait on channel(阻塞源頭)

什么是log file sync:當用戶提交一個事務之后就開始等待log file sync,直到LGWR進程完成了對SCN的傳播和對應重做日志的寫入操作。所以log file sync的等待時間是由重做日志I/O時間和SCN傳播時間兩部分構成的,如果還使用了DataGuard,且日志傳送時使用了同步+確認(SYNC+AFFRIM)選項時,那么LGWR還需在用戶提交事務之后將重做日志信息傳遞到遠程備庫節點。總結一下,log file sync的計算公式如下:

用戶進程log file sync等待時間 = LGWR執行重做日志I/O時間 + SCN傳播時間 + LGWR傳送重做日志到備庫的時間。

在數據庫實例中,log file sync的等待步驟如下:

步驟①和②時所經歷的時間就是log file sync所經歷的時間。a1~a4是LGWR傳送重做日志到備庫的過程,b1~b4是LGWR傳播SCN的過程,c1~c2是LGWR將重做日志寫入到重做日志文件的過程。

a1~a4代表LGWR傳送重做日志到DataGuard備庫,過程如下:

a1:LGWR將事務對應的重做信息發送給本地節點的LNS(network server)進程

a2:LNS進程通過網絡將重做信息發送給備庫的RFS(remote file server)進程

a3:RFS進程將重做日志信息寫入到備庫的備用重做日志文件(Standby redo log),返回消息給主庫的LNS進程

a4:主庫的LNS進程通知LGWR進程重做信息已經寫入到備庫的備用重做日志文件

b1~b4代表LGWR傳播SCN,SCN是數據庫內部的時鐘,不重復,單項增長,SCN是針對數據庫的,不是針對實例的,也就是說,對于RAC數據庫,雖然有多個實例,這些實例會使用相同的SCN,但是每個實例都可以進行各自的任務,這就意味著實例之間需要傳播SCN。對于分布式數據庫(例如,使用了DB Link),也同樣存在著同步SCN的概念。同步SCN的過程如下:

b1:LGWR進程將事務提交的SCN發送給本地的一個LMS進程

b2:本地節點的LMS進程將包含了SCN的消息發送給所有遠程節點的LMS進程

b3:所有遠程節點的LMS進程接受到了SCN消息并反饋給本地節點的LMS進程

b4:本地節點的LMS進程通知LGWR,所有遠程節點都受到了事務的SCN

c1~c2代表LGWR執行重做日志寫I/O。過程如下:

c1:LGWR進程將redo buffer cache中的日志寫入到online redo log

c2:寫完之后LGWR會收到通知已完成

在分析完log file sync等待事件的過程之后,基本上可以知道其形成原因了。然而,新的問題又來了,log file sync等待由3部分原因構成,在我的環境中,到底是LGWR執行重做日志比較慢,還是SCN傳播時間存在異常等待,還是LGWR傳送重做日志到備庫存在性能瓶頸,這個時候我們就需要確認log file sync的并發現象了,我們繼續分析。

(1)由LGWR執行重做日志I/O引起的log file sync

如果是由于LGWR將日志寫入到online redo log引起的I/O問題,往往會伴隨著log file parallel write等待事件出現,也就是說,如果log file sync和log file parallel write一起出現,那么往往是存放在線日志文件的磁盤I/O出問題了,有可能是磁盤吞吐量較差,也有可能是頻繁的小I/O操作,磁盤I/O問題的主要解決方案如下:

  • 優化了redo日志的I/O性能,盡量使用快速磁盤,不要把redo log file存放在raid 5的磁盤上;
  • 加大日志緩沖區(log buffer);
  • 使用批量提交,減少提交的次數;

(2)由SCN傳播引起的log file sync

由SCN傳播引起的log file sync等待事件幾乎沒有見過,個人覺得SCN傳播引起log file sync的概率較小,可以忽略

SQL> SELECT NAME FROM v$event_name a WHERE a.name LIKE '%SCN%' OR a.name LIKE '%LMS%';

NAME
----------------------------------------------------------------
retry contact SCN lock master
ges master to get established for SCN op

(3)由LGWR傳送重做日志到備庫引起的log file sync

需要特別注意的是,只有在LOG_ARCHIVE_DEST_n參數中使用了"SYNC,AFFIRM"屬性時,log file sync等待事件才會與LGWR傳送日志有關,如果使用了其它屬性,不用考慮。

LNS進程DataGuard環境中主庫用來傳送日志到備庫的進程,查看所有與之相關的等待事件。

SQL> SELECT NAME FROM v$event_name a WHERE a.name LIKE '%LNS%';

NAME
----------------------------------------------------------------
LNS wait on ATTACH
LNS wait on SENDREQ
LNS wait on DETACH
LNS wait on LGWR
LGWR wait on LNS
LNS ASYNC archive log
LNS ASYNC dest activation
LNS ASYNC end of log
LNS simulation latency wait
LGWR-LNS wait on channel

回過頭,再次查看我們的生產環境的問題,是log file sync伴隨著LGWR-LNS wait on channel出現,再次確認數據庫的參數信息,發現數據庫運行在最大可用模式,備庫采用了同步(sync)方式傳送數據。

SQL> select name,open_mode,database_role,protection_mode,protection_level from v$database;

NAME  OPEN_MODE   DATABASE_ROLE PROTECTION_MODE  PROTECTION_LEVEL 
--------- -------------------- ---------------- -------------------- --------------------
ORCL2  READ WRITE   PRIMARY   MAXIMUM AVAILABILITY MAXIMUM AVAILABILITY


SQL> show parameter log
NAME       TYPE VALUE                        
----------------------------- ------- ---------------------------------------------------------------------------------------------------- 
log_archive_dest_2   string SERVICE=adg_orcl LGWR SYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)        
          DB_UNIQUE_NAME=adg_orcl

再進一步分析"LGWR-LNS wait on channel"等待事件:

什么是LGWR-LNS wait on channel:這個等待事件監視LGWR或LNS進程等待在KSR通道上接收消息所花費的時間(This wait event monitors the amount of time spent by the log writer (LGWR) process or the network server processes waiting to receive messages on KSR channels. Data Guard Wait Events (Doc ID 233491.1) )。

KSR通道的解釋:https://docs.oracle.com/en/database/oracle/oracle-database/12.2/refrn/DBA_HIST_CHANNEL_WAITS.html#GUID-682C58F4-5787-4C8E-844C-9DFE04612BDD。

可以斷定,數據庫的異常等待是由于主庫的LNS進程同步傳送在線日志信息給DG環境引起的,且引起的瓶頸在備庫端。想到我們的主庫是高配的物理服務器,備庫是低配的云主機(虛擬機),出現這種問題也就不足為奇了。

(三)解決方案

使用異步方式傳送日志信息,修改日志傳送方式為異步(async)傳送

SQL> alter system set log_archive_dest_2= SERVICE="adg_orcl" LGWR ASYNC VALID_FOR=(all_logfiles, primary_role) DB_UNIQUE_NAME="adg_orcl" scope=both;

-- 重新啟用通道
SQL> alter system set log_archive_dest_state_2= defer;
SQL> alter system set log_archive_dest_state_2= enable;

到此這篇關于Oracle數據庫由dataguard備庫引起的log file sync等待的文章就介紹到這了,更多相關Oracle dataguard備庫引起的log file sync等待內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Oracle備庫宕機啟動的完美解決方案
  • win平臺oracle rman備份和刪除dg備庫歸檔日志腳本
  • ORA-00349|激活 ADG 備庫時遇到的問題及處理方法

標簽:焦作 河源 柳州 酒泉 南陽 泰安 梧州 銀川

巨人網絡通訊聲明:本文標題《Oracle數據庫由dataguard備庫引起的log file sync等待問題》,本文關鍵詞  Oracle,數據庫,由,dataguard,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Oracle數據庫由dataguard備庫引起的log file sync等待問題》相關的同類信息!
  • 本頁收集關于Oracle數據庫由dataguard備庫引起的log file sync等待問題的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: ass最极品女人下部pic| 欧美日本一本在线播放| 中国老妇女bbxx| 色欧美与xxxxx| 蜜月A∨在线观看| 77久久爽无码| 欧美午夜精品久久久久久| mm在线观看免费视频完整版| 摸进她的内裤里疯狂揉她在线观看 | 色戒未删减在线看| A片扒开双腿进入做视频| 黄视频免费观看| 美女露出??让男生玩网站| 张玉梅的婬乱生活全集在线观看| 爱情岛论语亚洲线路一| 一本一道久久综合狠狠躁牛牛影视| 免费男女性潮高片无遮挡| vodafonewifi巨大黑有多好| 美国高清xxxxx18| 91无码人妻精品一区二区三区蜜桃| 欧美一级做一级爱a做片性| 在车里被撞了七八次高黄| 男无遮挡吃奶gift动态图| 两根粗大在她腿间进进出视频| 久久夜色精品亚洲AV图片红桃| av图片| 曰批40分钟视频免费看| 老头吃女人奶在线观看视频| 久热精品视频| 亚洲girl欣赏pics大全| 翘臀啪啪| 一女二男3p姿势与图势| 丰满熟女人妻中文字幕苍老师| 一级一片一AABB| 国产小萍萍挤奶喷奶水| 国偷自产短视频高清| 反三国演义在线阅读| 粗硬长猛持久| 莫菁被躁120分钟视频| 91九色TS另类国产人妖| 久久91精品综合国产首页|