一次Oracle集群腦裂問題分析處理

問題描述

填寫問題的基礎信息。

系統名稱

數據庫集群

IP地址

xxxxxx

操作系統

Linux

數據庫

Oracle 11.2.0.4

癥狀表現

問題的癥狀表現如下

4月26號晚22點02分左右,HIS集群發生腦裂,十幾分鐘后(22.18)一節點集群率先獲得集群控制權,

與此同時,一節點向而節點發起了member kill 以及 node kill請求

隨后,22.25分二節點以incomplete狀態node kill重啟集群件,并嘗試加入集群

但是遇到了中裁盤不能訪問的故障,直到22.37分再次被節點1驅逐

處理過程

處理過程推薦按照時間以列表形式,將處理過程時間點,處理內容。

1、從集群日志來看,最開始的異常時來自二節點的check scan_listener失敗,大概在21.59分就發生:

2、查看對應的trace日志,看一下當時為什么check失敗了

trace日志顯示21.59.42秒對scan的check都還是成功的,59分55秒check出現了timeout。

3、然后接著就是一節點上實例掛了,一節點集群日志顯示如下:

查看對應的trace日志發現就是當時的實例掛了,繼續查看當時的數據庫日志

4、兩節點的數據庫日志顯示如下:

一節點:

二節點:

可以發現在22.02.51左右,二節點向一節點發送一些IPC請求出現timeout情況,過了一會(22.04)一節點實例被二節點驅逐(member kill),這個應該就是本次問題最開始的故障了。

4、繼續排查為什么實例會出現IPC Send Timeout原因,注意看當時二節點的IPC Send Timeout進程有很多(不是固定的某一個進程),有Oracle自己的并行進程,還有客戶的JDBC連接進程,懷疑這種Timeout問題應該是和私網性能有關,隨即查看對應時間私網心跳是否有延遲或者丟包,并未發現異常。但是在一節點服務器上發現對應時間段有大量的packet reassembles failed。

基本可以確認二節點向一節點發送IPC Timeout是由于一節點網絡包重組失敗造成的。(之前也有類似的案例)

什么是IP packet reassembles failed?

在linux平臺使用netstat -s命令時會看到packet reassembles failed項, 記錄的是IP重組包失敗的累計數據值,什么時候要重組呢?當IP包通信存在碎片時。在網絡通信協議中MTU(最大傳輸單元)限制了每次傳輸的IP 包的大小,一種是源端和目標端使用了不同的MTU時會交生碎片,這里需要先確認傳輸過程中的MTU大小配置,確認使用了相同的MTU;還有就是當傳送的數據大于MTU時,回分成多個分片傳遞。這時調整MTU就不可能解決所有的IP包碎片的問題,可以通過加大通信的buffer值,盡可能保留更多的數據在源端拆包,目標端緩存等接收完整后再重組校驗。 在LINUX系統中調整BUFFER使用ipfrag_low_thresh 和ipfrag_high_thresh參數,如果調整了這個參數仍有較大的重組失敗還可以加大ipfrag_time 參數控制IP 碎片包在內存中保留的秒數時間。

如果在ORACLE RAC環境中一個節點突然產生了大量的數據包輸送給另一個節點,如應用設計問題,如數據文件cache fusion或歸檔只能一個節點訪問時,都加大了網絡通信量,這里需要檢查網絡負載及丟包或包不一致的現象,因為ORACLE在網絡通信中使用了UDP和IP通信協議,這兩類信息都需要關注。

5、為什么一節點上會在對應時間出現大量的網絡包失敗呢?這一般有以下幾個原因:

A.節點之間有流量傳輸,并且有大量的巨幀包傳輸。

B.主機、交換機等網絡相關參數設置問題。

C.主機CPU、內存資源不足導致。

D.A條件和B條件的相互作用。

條件A:

繼續排查出問題前數據庫實例內部是否有異常,收集了對應時間段的ash、awr以及addm報告,報告顯示對應時間段數據庫出現了大量的gc等待事件

gc相關的等待事件一般都是和集群上的熱塊爭用有關,集群上的熱塊交換依賴于RAC的私網,當出現大量的GC相關等待事件說明當時有一些SQL需要跨界點訪問熱點數據塊,大量熱點數據塊的傳輸就滿足的條件A。

條件B:

查看主機上的規定reassembles buffer 尺寸的大小,發現如下:

兩個節點都是滿足最佳實踐的要求的,但是如果還是出現大量的packet reassembles faile 問題,可以考慮開啟巨幀傳輸(調整MTU值),當然這個也需要交換機能夠支持。

條件C:

通過監控工具,未發現當時一節點主機有CPU\內存不足等問題。

條件D:

有些時候網絡流量不大,網絡帶寬沒有跑滿的情況下,條件A和條件B的相互作用也會導致大量的packet reassembles failed,就是當網絡傳輸的數據包都通過大量IP分片的方式進行傳輸,fragmentation rate比較高,那么主機網卡采用較小的MTU值進行傳輸(接收),當reassembles buffer滿,也會出現大量的packet reassembles failed,本次故障中通過監控工具發現是有大量的網絡包通過IP分片方式進行傳輸:

問題原因

問題原因如下

數據庫有SQL產生大量的GC等待事件,集群上的熱塊需要跨節點進行傳輸,有大量的網絡包采用IP分片的方式進行傳輸,目標端主機不能及時將接收到的巨幀包進行重組,誘發實例間IPC Send Timeout,進而出發集群member kill以及后續的node kill,最后集群需要花費一些時間完成重組。

問題解決

問題解決如下

1、對于容易產生大量GC的SQL盡量在一個節點運行,本次抓到的一些SQL如下:

抓到多個SQL如下:

📎addmrpt_2_78505_78506.txt

主要有如下SQL:

7r5mtbybcggnk	  
一節點執行次數:3347,平均時間1.03秒  ,二節點執行次數131次,平均時間10.71秒                      764wd65m5y2sf	 一節點執行次數:460 ,平均時間 3.69秒,二節點執行次數 453次,平均時間2.06秒

2、如果可以,開啟私網心跳巨幀傳輸(需要交換機硬件支持)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/90287.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/90287.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/90287.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

0基礎法考隨手筆記 02(刑訴法專題04 辯護與代理)

0基礎法考隨手筆記 02(刑訴法專題04 辯護與代理) 1.值班律師相關權力義務2. 3. 4.什么是強制醫療 注意:為強制醫療指派的律師,是訴訟代理人,不是辯護人,因為此人不會被追究刑事責任。 “強制醫療” 是刑事訴…

HF86611_VC1/HF86611Q_VC1:多通道USB HiFi音頻解碼器固件技術解析

引言隨著音頻技術的不斷發展,多通道音頻處理和多接口兼容性成為現代音頻設備的重要需求。本文將介紹一款基于XMOS XU316技術的多通道USB HiFi音頻解碼器固件——HF86611_VC1/HF86611Q_VC1,這是一款專為多接口HiFi音頻應用設計的軟件解決方案。產品概述HF…

python---列表(List)

文章目錄創建列表基本操作訪問元素(索引)切片操作修改列表常用方法列表推導式多維列表列表是 Python 中最基本、最常用的數據結構之一,它是一個有序的可變集合,可以包含不同類型的元素。創建列表 # 空列表 empty_list [] empty_…

ESP32-S3學習筆記<3>:UART的應用

ESP32-S3學習筆記<3>:UART的應用1. 頭文件包含2. UART的配置2.1 uart_num的選擇2.2 uart_config的設定2.2.1 baud_rate/波特率設置2.2.2 data_bits/數據位數設置2.2.3 parity/奇偶校驗位設置2.2.4 stop_bits/停止位設置2.2.5 flow_ctrl/流控位…

【Vue3】加載高德地圖案例

官方API:展示地圖-入門教程-地圖 JS API 2.0 | 高德地圖API 1、獲取高德Key 參考:準備-地圖 JS API 2.0 | 高德地圖API 2、創建工程 npm create vitelatest 3、下載依賴集運行項目 npm install npm i amap/amap-jsapi-loader --save npm run dev 4、編寫核心…

【工具】Pycharm隱藏側邊燈泡提示

問題描述 在Pycharm中,每行前面很容易出現一個小燈泡,有時候很影響操作,需要將其取消掉設置方法打開設置 按 CtrlAltS 打開設置對話框或者通過菜單 File → Settings(在 macOS 上是 PyCharm → Preferences)導航到外觀…

XSS相關理解

由于本人對一小部分dom型xss、原型鏈污染和存儲型xss理解不夠透徹,因此在本篇文章中原型鏈污染和存儲型xss偏重進行概念理解或簡單的代碼理解,隨后會慢慢補充 文章目錄1 XSS概述1.1 什么是XSS?1.2 XSS主要分三種類型2 XSS基礎2.1 XSS基礎練習…

Odoo:免費開源的金屬制品行業ERP管理軟件

引言開源智造Odoo數字化解決方案專家團隊意識到,在當今全球市場中,將盈利能力和競爭力最大化的機會促使許多金屬制品制造商投資于推進業務發展的新技術。金屬制品會計軟件是企業用來處理他們業務和增加利潤的解決方案。某金屬制品加工工藝流程圖&#xf…

Ubuntu22.04配置GTest測試框架

前言 鴻蒙系統的代碼倉庫使用GTest作為單元測試的工具。特性開發時,需要寫demo以驗證開發思路。因此有必要搭建GTest開發環境配合鴻蒙特性開發做開發demo。 我測試環境是wsl2 Ubuntu22.04 LTS。 搭建過程 安裝必備C組件 sudo apt install -y unzip g gcc cmake …

學習日志15 python

1 filter() 函數filter(function, iterable)filter函數是python中的高階函數, 第一個參數是一個篩選函數, 第二個參數是一個可迭代對象, 返回的是一個生成器類型, 可以通過next獲取值。filter() 函數是 Python 內置的高階函數,其主要功能是對可迭代對象中的每個元素…

Linux 環境下安裝 MySQL 8.0.34 二進制 詳細教程 附docker+k8s啟動

文章目錄Linux 環境下安裝 MySQL 8.0(二進制)詳細教程準備工作安裝依賴包下載并解壓 MySQL下載 MySQL 二進制包解壓 MySQL移動目錄并創建 MySQL 用戶配置 MySQL配置數據目錄與日志目錄編輯配置文件 /etc/my.cnf初始化 MySQL 數據庫配置啟動腳本與環境變量…

HTML ISO-8859-1: 完全解析

HTML ISO-8859-1: 完全解析 引言 ISO-8859-1,又稱為 Latin-1,是一種廣泛使用的字符編碼標準,特別是在HTML文檔中。本文將詳細介紹ISO-8859-1編碼的特點、應用場景以及如何在使用HTML時正確地使用ISO-8859-1編碼。 ISO-8859-1編碼概述 定義 ISO-8859-1編碼是一種單字節編…

c++學習第3篇編輯器——centos7.9.2009系統離線安裝clion軟件并成功調試c++程序

遠程linux服務器安裝clion0 前提2個:1 下載CLion-2021.1.1.tar.gz安裝包2 上傳到linux系統并解壓3 修改linux系統里的/etc/ssh/sshd_config文件中的X11UseLocalhost 注釋去掉并設為no4 安裝xauth5 安裝MobaXterm軟件并使用ssh組件打開clion5.1 如果打不開clion,報錯…

20250722解決在Ubuntu 24.04.2下編譯RD-RK3588開發板的Android13出現找不到lz4的問題

20250722解決在Ubuntu 24.04.2下編譯RD-RK3588開發板的Android13出現找不到lz4的問題 2025/7/22 15:21緣起:在Ubuntu 24.04.2下編譯RD-RK3588開發板的Android13。 報錯:/bin/sh: 1: lz4: not found為了簡單起見,直接在 榮品的技術支持QQ群的 …

加載用戶設置時遇到錯誤找到一個帶有無效“icon“的配置文件。將該配置文件默認為無圖標。確保設置“icon“時,該值是圖像的有效文件路徑“

"C:\Users\Yourname\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json 修改所有icon字段位none 如:{"guid": "{bf61c995-08cc-4a56-b781-5dba411ef19c}","hidden": false,"icon&…

如何提升連帶消費?從新零售“人-貨-場”模型拆解

目錄 一、分析背景 二、新零售分析思路和分析方法 1.具體分析思路 2.分析方法 三、新零售“人-貨-場”分析的實操步驟 1.數據收集 2.數據處理 3.圖表制作 四、總結 想讓線上引來的顧客,在店里多買幾件? 連帶消費可是實體店賺錢的“秘密武器”&a…

Java異常處理核心原理與最佳實踐

Java異常處理核心原理與最佳實踐 場景: 你開發的文件處理工具在讀取用戶上傳的文件時突然崩潰,控制臺拋出FileNotFoundException。用戶的操作被中斷,數據丟失。這種糟糕的體驗正是異常處理機制要解決的核心問題——如何在程序出錯時優雅地恢復…

Ubuntu 安裝 Odoo 17 詳細教程

Ubuntu 安裝 Odoo 17 詳細教程 本教程將指導您在 Ubuntu 系統上從源代碼安裝 Odoo 17。Odoo 是一款功能強大的開源 ERP 和 CRM 軟件套件。本教程適用于希望自行配置和管理 Odoo 環境的用戶,尤其適合開發者和系統管理員。 教程概述 本教程將涵蓋以下步驟&#xff…

鯤鵬·卓識系列2.45G傳感器型有源標簽:以國產化技術重塑安全監測與人員管理新標準

標題:鯤鵬卓識系列2.45G傳感器型有源標簽:以國產化技術重塑安全監測與人員管理新標準 隨著工業4.0和智慧城市建設的加速推進,安全生產、環境監測和人員管理成為各行業的核心需求。在軍事、工業、倉儲、能源等領域,溫濕度、煙霧、油…

騰訊云推出CodeBuddy:革新AI全棧開發體驗

文章目錄一、前言二、安裝流程三、CodeBuddy 核心功能3.1 AI輔助開發3.2 Coding Design Chat 三大模式3.3 Boost Prompt3.4 Figma 集成3.5 Componen 控件庫3.6 Config MCP3.7 Upload Images 圖片上傳和管理3.8 Preview功能3.9 Deploy 一鍵部署3.10 項目展示 | MCP生成小紅書卡片…