兩條報警資訊的分析(第一篇)

jeanron100發表於2015-09-26
任何規則都是固定的,但是人是活的,很多時候把一些細節之處結合起來,還是能夠發現一些潛在的問題。
早上收到zabbix的報警,是兩條看似很平常的簡訊。
一封郵件內容如下,這是一封報警郵件
報警內容: Free disk space is less than 20% on volume /U01
------------------------------------
報警級別: PROBLEM
------------------------------------
監控專案: Free disk space on /U01 (percentage):7.42 % 
------------------------------------ 
報警時間:2015.09.26-03:06:21
另外一封的內容如下,這是一封報警恢復郵件,證明狀態已經正常了。
監控專案: Free disk space on /U01 (percentage)_50.19 %
------------------------------------
主機名稱:db2_s@10.127.xxxxxx
------------------------------------
恢復時間:2015.09.26-03:07:21
從這兩封郵件來看,似乎在3點左右的時間段有什麼特定的操作,消耗了大量的空間,最後又恢復了正常。
檢視檔案系統的使用情況如下:
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda9             6.0G  681M  5.0G  12% /
tmpfs                  48G   25G   24G  51% /dev/shm
/dev/sda3             485M   36M  424M   8% /boot
/dev/sda10            151G   71G   72G  50% /U01
/dev/sda5              32G  176M   30G   1% /tmp
/dev/sda8             9.9G  1.5G  7.9G  16% /usr
/dev/sda7              15G  564M   14G   4% /var
/dev/sdb1             2.0T  846G 1008G  46% /U02
經過檢視,發現這是一個備庫,同時備份庫也定期做一個全備以備不時之需。備份目錄在/U01下面,而/U02下面是資料檔案的目錄。透過這些資訊不知道大家能夠發現什麼。我們先放下看。
檢視了/U01下面的空間情況,得知在3點左右的時候資料庫做了一個全備,做完備份之後會清理掉兩天前的備份。
全備是透過rman來做的,備份集的大小為60G左右。每天都會生成一次全備,這樣備份目錄下就有兩天內的備份,大概是130G左右。如果按照這個公式來看。
?SQL> select (60+71)/151 from dual;
(60+71)/151
-----------
 .867549669
確實很容易觸發報警閥值,這個時候要麼就是默然接受這個現實,因為備份也確實需要,舊備份也確實需要刪除。當然我們也可以適當的清理一些額外的空間,最後分析來分析去,發現有些冗餘
日誌還是可以刪除的。比如這個庫開了幾個埠,常年下來就會有大量的登入日誌。這些目前沒有特別的審計還是不需要的,可以刪除。
$ ll
total 16
drwxr-xr-x 13 oracle oinstall 4096 Jun  5  2013 listener_1522
drwxr-xr-x 13 oracle oinstall 4096 Jun  5  2013 listener_1523
drwxr-xr-x 13 oracle oinstall 4096 Feb 17  2014 listener_1531
drwxr-xr-x 13 oracle oinstall 4096 Jun  5  2013 listener_1532
$ cd *1531
$ du -sh ./*
402M    ./alert
176M    ./trace
但是這麼下來,也只是清理近2G的空間,還是起不了太大的作用。這個時候仔細檢視問價系統的使用情況發現了奇怪的地方。
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda10            151G   71G   72G  50% /U01
/dev/sdb1             2.0T  846G 1008G  46% /U02
rman備份是基於資料塊,沒有啟用壓縮,備份集才60G左右,那麼這個庫本身就不大,但是資料目錄/U02卻又近2T的空間,如果說資料檔案的冗餘也可以理解,而且我們一般不會給資料庫給太大
的空間範圍。像這個情況下,資料庫使用近800多G,但是備份集才60G左右,懸殊有點太大了。
檢視錶空間的使用情況發現只佔用了近70G,那麼剩下的空間都被貪汙了?
進一步分析發現,在一個目錄下存在著一個很就的備份,佔用了近769G的空間。
$ du -sh .
769G    .
$ ll
total 806290444
-rw-r----- 1 oracle oinstall 130758828032 Apr  3  2014 full_DB_20140402_3574
-rw-r----- 1 oracle oinstall 120367751168 Apr  3  2014 full_DB_20140402_3575
-rw-r----- 1 oracle oinstall  75769864192 Apr  3  2014 full_DB_20140402_3576
-rw-r----- 1 oracle oinstall  96318881792 Apr  3  2014 full_DB_20140402_3577
-rw-r----- 1 oracle oinstall  96617996288 Apr  4  2014 full_DB_20140402_3578
-rw-r----- 1 oracle oinstall  89356836864 Apr  4  2014 full_DB_20140402_3579
...
明白了這點之後,再次檢視發現空間就大大減少了。剩餘了近1.8T,真是太富有了。
Filesystem            Size  Used Avail Use% Mounted on?
/dev/sdb1             2.0T   77G  1.8T   5% /U02?
這個時候就需要簡單修改一下指令碼,把備份路徑挪過來,這個問題就徹底解決了。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23718752/viewspace-1810021/,如需轉載,請註明出處,否則將追究法律責任。

相關文章