****欧欧美毛片4,国产午夜精品视频,97视频在线观看免费视频,久久七国产精品

數(shù)據(jù)恢復(fù)咨詢熱線:400-666-3702??

歡迎訪問南京兆柏數(shù)據(jù)恢復(fù)公司,專業(yè)數(shù)據(jù)恢復(fù)15年

兆柏數(shù)據(jù)恢復(fù)公司

?常見問題

?當(dāng)前位置: 主頁 > 常見問題

苦惱的數(shù)據(jù)庫主機(jī)重啟問題排查與解決

瀏覽量: 次 發(fā)布日期:2023-09-07 09:12:56

苦惱的數(shù)據(jù)庫主機(jī)重啟問題排查與解決


  情況是這樣的,有一套測試數(shù)據(jù)庫所在的主機(jī)在最近幾個月,每個月都會重啟一至兩次,由于數(shù)據(jù)庫配置了開機(jī)自啟動,且每次重啟時間都比較短暫,便沒有得到重視。最近由于測試人員的反饋,每當(dāng)主機(jī)重啟后呢會導(dǎo)致大片的測試應(yīng)用由于斷連導(dǎo)致無法使用,每次都需要重啟應(yīng)用才會好。那么我們就需要介入認(rèn)真排查一下問題所在了,恰巧最近一次的重啟時間為

  11 月 10 日 18:29 左右,需要針對此問題分析 os 重啟原因。

  測試數(shù)據(jù)庫所在的主機(jī)每個月都會重啟一至兩次,主機(jī)重啟時數(shù)據(jù)庫 alert 沒有任何日志,操作系統(tǒng)日志沒有異常信息,監(jiān)控平臺也是到每次重啟前就無法獲取到數(shù)據(jù)了,由于操作系統(tǒng)層參數(shù)配置,每次宕機(jī)都會生成 core dump。

  cat /etc/sysctl.conf | grep core

  kernel.core_pattern = /home/backup/crash/core-%e-円%s-%t

  AWR 報告分析

  因為數(shù)據(jù)庫因 os 重啟而重啟了,所以跨宕機(jī)時間點的 AWR 報告無法采集,只能采集宕機(jī)前的 AWR 報告,即 11 月 10 日

  17:00—18:00,從這個時間段 AWR 報告來看,數(shù)據(jù)庫負(fù)載不算太高,且數(shù)據(jù)庫各指標(biāo)也都比較正常,因為這個 AWR

  報告距離宕機(jī)時間還有半個小時,所以也無法準(zhǔn)確體現(xiàn)宕機(jī)時間點的數(shù)據(jù)庫狀態(tài)。ASH 報告分析

  通過收集到的 ASH 信息,當(dāng)時數(shù)據(jù)庫基本上是忙于 CPU 的調(diào)度與等待,“CPU + Wait for CPU” 等待事件比較多,但想要查看進(jìn)一步的信息就沒有了。

  數(shù)據(jù)庫日志分析

  宕機(jī)時間點附近 alert 日志、數(shù)據(jù)庫監(jiān)聽日志均沒有異常信息打印。OSW 日志分析

  OSWatcher 使用簡介

  OSW 是用于采集 OS 性能指標(biāo)的工具,調(diào)用 OS 的命令,對 OS 資源的占用可以忽略不計。

  OSW 包含兩個組件:

  oswbb  : 一組 shell 腳本,采集 OS 的性能指標(biāo)數(shù)據(jù)。

  oswbba : java 工具,分析 oswbb 采集的數(shù)據(jù),提供一些建議,根據(jù)采集的數(shù)據(jù)繪制 CPU,內(nèi)存,網(wǎng)絡(luò),I/O 的曲線圖。

  因為在上一次宕機(jī)也就是 11 月 2 日之后我部署了 OSW 工具,現(xiàn)在就可以看看宕機(jī)前的幾分鐘 OSW 抓取到的數(shù)據(jù),以此數(shù)據(jù)來分析宕機(jī)前 OS 狀態(tài)。

  從宕機(jī)前收集到的 OSW 數(shù)據(jù)來看,IO 和 CPU 的使用率是比較正常的,但 free memory 只有 300M 多了,初步判斷可能和操作系統(tǒng)內(nèi)存有關(guān)。收集特定時間段的 OSW 數(shù)據(jù)

  查看 OSW 的數(shù)據(jù)存儲位置

  收集指定時間段的日志,例如:

  使用 oswbba 分析 OSW

  注意要打開圖形化

  分析 archive 目錄下的所有 OSW 數(shù)據(jù)采集文件,并生成 HTML 報告。

  指定時間段分析 archive 目錄下的 OSW 數(shù)據(jù)采集文件,并生成 HTML 報告。

  打開圖形化界面然后執(zhí)行 oswbba.jar 便會生成類似于下面的 gif 圖形,通過此趨勢圖可以看到 18:28 分左右內(nèi)存和 Swap 出現(xiàn)峰值,也說明當(dāng)時內(nèi)存使用過多了。

  參考文檔:

  OSWatcher (Includes: [Video]) (文檔 ID 301137.1)

  OS Watcher User’s Guide (文檔 ID 1531223.1)

  OSWatcher Analyzer User Guide (文檔 ID 461053.1)操作系統(tǒng)日志分析

  宕機(jī)時間點附近 /var/log/messages 中也沒有異常信息打印。

  那么基于上面的這些信息基本上排查不到什么有用的信息了,唯一能有突破的就是前面說的每次重啟都生成的 core 文件了。我們知道在 Linux

  系統(tǒng)中,如果進(jìn)程崩潰了,系統(tǒng)內(nèi)核會捕獲到進(jìn)程崩潰信息,然后將進(jìn)程的 coredump 信息寫入到文件中,這個文件名默認(rèn)是 core

  。存儲位置與對應(yīng)的可執(zhí)行程序在同一目錄下,文件名是core,大家可以通過下面的命令看到 core 文件的存在位置,如下我的配置是在

  /home/backup/crash/ 目錄下。

  cat /proc/sys/kernel/core_pattern

  /home/backup/crash/core-%e-円%s-%t

  core 文件需要 gdb 命令打開分析,這里就不班門弄斧了,專業(yè)的事交給專業(yè)的人去干,通過系統(tǒng)工程師的分析,OS 所在主機(jī)的安全狗

  watchdog 進(jìn)程夯 120 秒導(dǎo)致主機(jī)重啟。這里就要說明下為何夯 120 秒主機(jī)就會重啟,因為配置了操作系統(tǒng)參數(shù)

  kernel.hung_task_panic = 1 導(dǎo)致主機(jī)重啟了。

  kernel.hung_task_panic

  操作系統(tǒng)工程師配置了這個內(nèi)核參數(shù) kernel.hung_task_panic=1 ,官方意思是如果內(nèi)核有進(jìn)程處于 D 狀態(tài)在 120s

  內(nèi)都沒有被調(diào)度,則默認(rèn)會觸發(fā) panic,說的通俗易懂點就是配置這個參數(shù)時當(dāng)主機(jī)有進(jìn)程夯 120

  秒時就會觸發(fā)主機(jī)重啟機(jī)制。那么問題就很明白了,每次的重啟都是由于有進(jìn)程夯了 120 秒觸發(fā)了這個參數(shù)的設(shè)置導(dǎo)致主機(jī)重啟。如果要關(guān)閉 hung

  task panic,則可以設(shè)置內(nèi)核參數(shù) kernel.hung_task_panic=0

  進(jìn)行關(guān)閉。所以這里呢我也就將這個參數(shù)注釋掉,默認(rèn)值就是 0。

  系統(tǒng)工程師通過 crash 工具分析 core dump 可以看到宕機(jī)時的 os 內(nèi)存使用已經(jīng)達(dá)到了 98%,并且 swap 也已經(jīng)使用了 68%。

  由此基本上可以看到是由于內(nèi)存耗盡導(dǎo)致重啟了。然后進(jìn)一步檢查數(shù)據(jù)庫內(nèi)存參數(shù)配置,目前此虛擬機(jī)的物理內(nèi)存為 32G,sga

  16G,pga  4G ,沒有配置內(nèi)存大頁,數(shù)據(jù)庫參數(shù) processes 設(shè)置為 2000,pga_aggregate_limit

  沒有值。那么在這種配置下數(shù)據(jù)庫連接數(shù)比較多的情況下,每個數(shù)據(jù)庫連接占用 3-5m 內(nèi)存多達(dá) 1000 多個鏈接的情況下在出現(xiàn)幾個排序的大

  SQL,很容易把內(nèi)存占完。

  通過以上的分析,基本可以確定,數(shù)據(jù)庫主機(jī)宕機(jī)的原因是內(nèi)存不足導(dǎo)致,一來操作系統(tǒng)內(nèi)存 32G 對數(shù)據(jù)庫而言沒有限制,二來數(shù)據(jù)庫存在大量連接會話,大量低效 SQL 占用大量內(nèi)存空間導(dǎo)致內(nèi)存資源不足。

  建議:

  1、增加主機(jī)物理內(nèi)存,從現(xiàn)在的 32G,增加至 64G;

  2、調(diào)整 SGA 和 PGA 大小并設(shè)置 pga_aggregate_limit;

  3、開啟內(nèi)存大頁;

  4、在操作系統(tǒng)層面對數(shù)據(jù)庫內(nèi)存使用進(jìn)行限制;

  5、取消內(nèi)核參數(shù) kernel.hung_task_panic

  先調(diào)整數(shù)據(jù)庫 SGA 和 PGA 大小。參數(shù) PGA_AGGREGATE_TARGET 起到的是目標(biāo)的作用,而非限制實際 PGA

  大小,參數(shù) PGA_AGGREGATE_LIMIT 是 12c 以后開始的新參數(shù),可以對 PGA 的內(nèi)存使用量作“硬性規(guī)定”。如果 PGA

  超過了 PGA_AGGREGATE_LIMIT 值,那么 Oracle 內(nèi)部按照以下順序,中斷或者終止使用了最多不可優(yōu)化的 PGA 內(nèi)存(the

  most untunable PGA)的會話或進(jìn)程:

  CKPT 進(jìn)程會檢查(每三秒檢查一次)并停掉使用了最多不可優(yōu)化 PGA 內(nèi)存的會話調(diào)用;

  如果 PGA 內(nèi)存使用量仍超過 PGA_AGGREGATE_LIMIT,則 CKPT 進(jìn)程會終止使用了最多不可優(yōu)化 PGA 內(nèi)存的會話和進(jìn)程.

  在 Oracle 12.1 的版本中會選擇以下三種情況中最大的值作為PGA_AGGREGATE_LIMIT 的值:

  1)2 GB

  2)PGA_AGGREGATE_TARGET 值的 2 倍

  3)參數(shù) PROCESSES 的值 * 3MB

  另外需要注意的是:該參數(shù)不會超過物理內(nèi)存大小減去總 SGA 大小的 120%。

  在 18c 以后的版本中,PGA_AGGREGATE_LIMIT 的值計算方法大概是如下的公式:

  PGA_AGGREGATE_LIMIT = (原始 PGA_AGGREGATE_LIMIT 值) + ((最大連接進(jìn)程數(shù)) * 4M)

  所以本次調(diào)整虛擬機(jī)內(nèi)存為 64G 后,設(shè)置 SGA、PGA 參數(shù)如下:

  然后需要開啟內(nèi)存大頁

  vm.min_free_kbytes 這個參數(shù)可以控制預(yù)留給虛擬機(jī)多少內(nèi)存,設(shè)置的太小會出現(xiàn)死鎖,設(shè)置的過大會出現(xiàn) OOM。為了滿足

  PF_MEMALLOC,需要一些最小的內(nèi)存分配;如果您將其設(shè)置為低于1024KB,系統(tǒng)將會變得微妙地破碎,并且在高負(fù)載下容易死鎖,設(shè)置過高會使你的機(jī)器立即

  OOM;通常經(jīng)驗值是設(shè)置物理內(nèi)存的 2%-5% 以內(nèi),單位是 KB,通常情況下 32G 內(nèi)存配置 2G,64G 內(nèi)存配置 5G 即

  5242880 ,128G 內(nèi)存 10G 即可。

  參考鏈接:https://www.kernel.org/doc/Documentation/sysctl/vm.txt

  內(nèi)存大頁,大內(nèi)存頁,標(biāo)準(zhǔn)大頁等均是同一個東西,之前寫的《Linux 透明大頁 THP 和標(biāo)準(zhǔn)大頁 HP》一文有過詳細(xì)介紹,這里就不再介紹了。

  memlock 參數(shù)指定用戶可以鎖定其地址空間的內(nèi)存量。在 /etc/security/limits.conf 文件中添加 memlock 的限制,一般情況下該值略微小于實際物理內(nèi)存的大小(單位為 KB),我的物理內(nèi)存是 64GB,可以設(shè)置為如下:

  通過以上設(shè)置后就可以關(guān)機(jī)修改內(nèi)存至 64G 然后開機(jī)檢查數(shù)據(jù)庫狀態(tài)了。

  經(jīng)過以上設(shè)置,觀察了一個多月的時間沒有出現(xiàn)過重啟或者資源不足的情況,在此簡單記錄一下排查過程以及用到的知識點,希望以后遇到類似的問題可以參考參考,如果小伙伴們有不同意見或建議,歡迎一起交流。

 

 

相關(guān)推薦

. 達(dá)夢數(shù)據(jù)庫重啟,達(dá)夢數(shù)據(jù)庫重啟操作指南與注意事項

. 數(shù)據(jù)庫論文參考文獻(xiàn),數(shù)據(jù)庫論文參考文獻(xiàn)綜述

. b30c換控制器,探尋九號電動車性能極限的奧秘

. 六安移動硬盤數(shù)據(jù)恢復(fù),專業(yè)技術(shù),守護(hù)您的數(shù)據(jù)安全

. deep sequence,揭秘高效內(nèi)容生成的秘密武器

. 深圳數(shù)據(jù)恢復(fù)公司排名,揭秘排名前三的數(shù)據(jù)恢復(fù)公司”

. 怎樣恢復(fù)刪除的硬盤數(shù)據(jù),詳解硬盤刪除數(shù)據(jù)恢復(fù)全攻略

. 硬盤數(shù)據(jù)恢復(fù)圖書,從原理到實踐的技術(shù)解析

. 數(shù)據(jù) 恢復(fù),揭秘數(shù)據(jù)丟失背后的原因與高效解決方案

. 沈河區(qū)硬盤數(shù)據(jù)恢復(fù)中心,專業(yè)服務(wù),守護(hù)您的數(shù)據(jù)安全”

. 硬盤數(shù)據(jù)恢復(fù)從哪學(xué),從原理到實踐的技術(shù)解析

. emc存儲怎么用,高效數(shù)據(jù)管理的核心策略

. 全免費的數(shù)據(jù)恢復(fù)工具,助您輕松找回丟失文件

. 移動硬盤維修的地方在哪,探尋專業(yè)維修地點

. deepfake制作,AI換臉的崛起與挑戰(zhàn)

. 病毒 移動硬盤數(shù)據(jù)恢復(fù),病毒侵襲下的移動硬盤數(shù)據(jù)恢復(fù)攻略

. 內(nèi)存數(shù)據(jù)庫排行,揭秘行業(yè)領(lǐng)先者

. 移動硬盤數(shù)據(jù)恢復(fù)正常,從誤刪到恢復(fù)的全方位指導(dǎo)

. 硬盤內(nèi)部儲存器,存儲技術(shù)的核心與未來趨勢

. 硬盤數(shù)據(jù)恢復(fù)流程圖片,從診斷到恢復(fù)的全方位指南