1. 程式人生 > 其它 >兩條報警資訊的分析(第一篇) (r6筆記第70天)

兩條報警資訊的分析(第一篇) (r6筆記第70天)

任何規則都是固定的,但是人是活的,很多時候把一些細節之處結合起來,還是能夠發現一些潛在的問題。

早上收到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 % ------------------------------------ 主機名稱:[email protected] ------------------------------------ 恢復時間: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? 這個時候就需要簡單修改一下指令碼,把備份路徑挪過來,這個問題就徹底解決了。