一次歸檔報錯的處理和分析
昨天在睡覺前接到了一條報警簡訊,本來已經疲倦的身輕如燕,但是看到報警,還是警覺了起來
Filesystem Size Used Avail Use% Mounted on
/dev/sda8 243G 103G 129G 45% /home
/dev/sdb 1.7T 1.6T 29G 99% /U01
對於這個問題,自己為了火速進行處理,就從/U01下面開始找檔案進行清理,首要就是找歸檔檔案,但是失望的是發現歸檔檔案現在確實也不多了。而且目前的歸檔刪除策略也是半個小時刪除一次。截止到問題發生的時候,歸檔檔案只有4個,而且也是半個小時內生成的,就算刪除了也騰不出多少空間,更關鍵的是還需要到備庫去檢視是否歸檔已經接受。所以簡單確認之後從主庫刪除了已經被備庫應用的歸檔,省下來1個G多一點的空間,問題暫時解決了,就開始從其他目錄檢視是否還有更多的空間清理,但是發現除了一些歷史的日誌,其實可清理的空間也就不到1G.
所以這個時候問題很可能再次發生,需要馬上進行處理。
從目前的情況來看/U01下的空間確實屈指可數,改進空間已經不大了。那麼還有一個分割槽就是/home大概還有幾百個G還能勉強應付一下。
這個時候一種方法就是把歸檔路徑直接切換到/home分割槽下,但是這種變更很快會導致dg broker報警,為了減少給監控同學更多的解釋和對系統本身的影響,我決定下臨時把歸檔目錄切過去。
比如今天是12月27日,就在/home/下生成一個軟連結,比如我現在給自己幾天的buffer時間,這部分的100多G的空間就先在這個目錄下重新整理,不會有太大的抖動。
[oracle@tlbb3dbidb arch]$ ll
lrwxrwxrwx 1 oracle oinstall 71 Dec 27 01:17 2015_12_27 -> /U01/app/oracle/oradata/test/archive/TEST/archivelog/2015_12_27
lrwxrwxrwx 1 oracle oinstall 71 Dec 27 01:21 2015_12_28 -> /U01/app/oracle/oradata/test/archive/TEST/archivelog/2015_12_28
lrwxrwxrwx 1 oracle oinstall 71 Dec 27 01:22 2015_12_29 -> /U01/app/oracle/oradata/test/archive/TEST/archivelog/2015_12_29
lrwxrwxrwx 1 oracle oinstall 71 Dec 27 01:22 2015_12_30 -> /U01/app/oracle/oradata/test/archive/TEST/archivelog/2015_12_30
當然這個問題為什麼沒有早點發現,其實很早就發現了,但是對於這個統計庫的空間問題,閥值設定為90~95%,但是老是報警,而且又沒有更多的空間就擱置下來了。所以先這樣處理,自己也好協調跟進。
當然回過頭來,這麼多空間都消耗在哪裡了。可以從下面的圖形看出,其實最近的歸檔切換頻率在凌晨會有一個小高峰,應該是批量的資料處理。之後基本趨於穩定。
![](https://i.iter01.com/images/853eda964beaccbf901d6df5d98b0f31bf1e76873d5e674a508b8f1b9f981375.png)
所以對於這個問題的更深一層的分析,就是如果空間的消耗在逐漸增大,那麼這個空間的消耗瓶頸在哪裡。
其實想得到這個結果,也是分分鐘就會有結果。直接從dba_segments裡面查詢即可。可以看到下面的幾個表的空間佔用極高。
segment_name segment_type bytes_MB
LOGIN_LOG TABLE PARTITION 103331
M_START_LOG TABLE PARTITION 117842
MOL_TIME INDEX PARTITION 120922
M_ONLINE_LOG TABLE PARTITION 809661
這個M_ONLINE_LOG竟然佔用了近800多個G,作為一個分割槽表而言資料量也著實驚人。
那麼這部分資料是不是歷史資料太多了呢,發現資料量也是在逐漸遞增,而且都是近半年的資料。沒有之前的歷史資料了。
分割槽從4月份開始的資料增長情況如下:
![](https://i.iter01.com/images/ed62be84434a215e351224ced0b59afa82649e3e11930ce06a1a2961380335b2.png)
看來最近的資料增長情況還在不斷遞增,所以這個問題還是有很多的確認之處,是否需要這麼多的資料,如果確實需要,需要進一步考慮掛載新的分割槽,如果只是需要部分的資料,那麼就需要考慮一個持久的資料清理方案。夜深了,看看手機,應很晚了。工作是幹不完的,睡覺睡覺。
ZABBIX-監控系統:
------------------------------------
報警內容: DG_issue
------------------------------------
報警級別: PROBLEM
------------------------------------
監控專案: dg_issue:2015-12-27
00:35:17.0Log Transport ServicesErrorARC0: Encountered disk I/O error
195022015-12-27 00:35:17.0Log Transport ServicesErrorARC0: I/O error 19502
archiving log 1 to
'/U01/app/oracle/oradata/test/archive/TEST/archivelog/2015_12_27/o1_mf_1_71969_c7xjg564_.arc'
------------------------------------
報警時間:2015.12.27-00:35:22
Filesystem Size Used Avail Use% Mounted on
/dev/sda8 243G 103G 129G 45% /home
/dev/sdb 1.7T 1.6T 29G 99% /U01
對於這個問題,自己為了火速進行處理,就從/U01下面開始找檔案進行清理,首要就是找歸檔檔案,但是失望的是發現歸檔檔案現在確實也不多了。而且目前的歸檔刪除策略也是半個小時刪除一次。截止到問題發生的時候,歸檔檔案只有4個,而且也是半個小時內生成的,就算刪除了也騰不出多少空間,更關鍵的是還需要到備庫去檢視是否歸檔已經接受。所以簡單確認之後從主庫刪除了已經被備庫應用的歸檔,省下來1個G多一點的空間,問題暫時解決了,就開始從其他目錄檢視是否還有更多的空間清理,但是發現除了一些歷史的日誌,其實可清理的空間也就不到1G.
所以這個時候問題很可能再次發生,需要馬上進行處理。
從目前的情況來看/U01下的空間確實屈指可數,改進空間已經不大了。那麼還有一個分割槽就是/home大概還有幾百個G還能勉強應付一下。
這個時候一種方法就是把歸檔路徑直接切換到/home分割槽下,但是這種變更很快會導致dg broker報警,為了減少給監控同學更多的解釋和對系統本身的影響,我決定下臨時把歸檔目錄切過去。
比如今天是12月27日,就在/home/下生成一個軟連結,比如我現在給自己幾天的buffer時間,這部分的100多G的空間就先在這個目錄下重新整理,不會有太大的抖動。
[oracle@tlbb3dbidb arch]$ ll
lrwxrwxrwx 1 oracle oinstall 71 Dec 27 01:17 2015_12_27 -> /U01/app/oracle/oradata/test/archive/TEST/archivelog/2015_12_27
lrwxrwxrwx 1 oracle oinstall 71 Dec 27 01:21 2015_12_28 -> /U01/app/oracle/oradata/test/archive/TEST/archivelog/2015_12_28
lrwxrwxrwx 1 oracle oinstall 71 Dec 27 01:22 2015_12_29 -> /U01/app/oracle/oradata/test/archive/TEST/archivelog/2015_12_29
lrwxrwxrwx 1 oracle oinstall 71 Dec 27 01:22 2015_12_30 -> /U01/app/oracle/oradata/test/archive/TEST/archivelog/2015_12_30
當然這個問題為什麼沒有早點發現,其實很早就發現了,但是對於這個統計庫的空間問題,閥值設定為90~95%,但是老是報警,而且又沒有更多的空間就擱置下來了。所以先這樣處理,自己也好協調跟進。
當然回過頭來,這麼多空間都消耗在哪裡了。可以從下面的圖形看出,其實最近的歸檔切換頻率在凌晨會有一個小高峰,應該是批量的資料處理。之後基本趨於穩定。
![](https://i.iter01.com/images/853eda964beaccbf901d6df5d98b0f31bf1e76873d5e674a508b8f1b9f981375.png)
所以對於這個問題的更深一層的分析,就是如果空間的消耗在逐漸增大,那麼這個空間的消耗瓶頸在哪裡。
其實想得到這個結果,也是分分鐘就會有結果。直接從dba_segments裡面查詢即可。可以看到下面的幾個表的空間佔用極高。
segment_name segment_type bytes_MB
LOGIN_LOG TABLE PARTITION 103331
M_START_LOG TABLE PARTITION 117842
MOL_TIME INDEX PARTITION 120922
M_ONLINE_LOG TABLE PARTITION 809661
這個M_ONLINE_LOG竟然佔用了近800多個G,作為一個分割槽表而言資料量也著實驚人。
那麼這部分資料是不是歷史資料太多了呢,發現資料量也是在逐漸遞增,而且都是近半年的資料。沒有之前的歷史資料了。
分割槽從4月份開始的資料增長情況如下:
![](https://i.iter01.com/images/ed62be84434a215e351224ced0b59afa82649e3e11930ce06a1a2961380335b2.png)
看來最近的資料增長情況還在不斷遞增,所以這個問題還是有很多的確認之處,是否需要這麼多的資料,如果確實需要,需要進一步考慮掛載新的分割槽,如果只是需要部分的資料,那麼就需要考慮一個持久的資料清理方案。夜深了,看看手機,應很晚了。工作是幹不完的,睡覺睡覺。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23718752/viewspace-1965457/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 記一次報錯 symlink(): Protocol error 問題處理ProtocolError
- RMAN刪除歸檔日誌出現RMAN-0813錯誤的處理
- rails gem報錯的處理AI
- Python之錯誤異常和檔案處理Python
- ora-04045和ora-16000報錯處理
- OGG整合抽取模式丟失歸檔處理模式
- git上傳檔案時報錯常見的處理辦法Git
- vscode關於json檔案新增註釋報錯處理VSCodeJSON
- Gulp壓縮報錯處理
- 記一次PMML檔案的處理過程
- Python錯誤處理和異常處理(二)Python
- Oracle DataGuard歸檔日誌丟失處理方法Oracle
- 前端的水平線,錯誤處理和除錯前端除錯
- 故障分析 | MySQL convert 函式導致的字符集報錯處理MySql函式
- WEB安全漏洞掃描與處理(下)——安全報告分析和漏洞處理Web
- 說說你對異常處理和錯誤處理的理解
- Mysql自動處理同步報錯MySql
- Python 入門級報錯處理Python
- Too many open files報錯處理
- 開心檔之Go 錯誤處理Go
- Laravel Excpetions(錯誤處理) 原始碼分析Laravel原始碼
- 【ERROR】ORA-8103錯誤分析處理Error
- 怎麼將大量的電腦檔案進行歸類處理?
- 如何在 Go 中優雅的處理和返回錯誤(1)——函式內部的錯誤處理Go函式
- 使用RMAN增量備份處理Dataguard因歸檔丟失造成的gap
- PGA引發的ORA-04030報錯的處理思路
- CMake出錯的處理
- go的錯誤處理Go
- axios 的錯誤處理iOS
- C++錯誤和異常處理C++
- 六、函式、包和錯誤處理函式
- HP-UX執行Oracle相關命令報錯Memory fault(coredump)分析處理UXOracle
- Day03:檔案開啟;錯誤處理
- ORA-32701錯誤原因分析及處理方法
- Yii2 之錯誤處理深入分析
- 錯誤處理
- SpringMVC原始碼分析:POST請求中的檔案處理SpringMVC原始碼
- 在使用 zabbix 4 時, orabbix 會報錯的處理方法
- Spring處理@Configuration的分析Spring