兩條報警資訊的分析(第一篇) (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
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
...
Filesystem Size Used Avail Use% Mounted on?
/dev/sdb1 2.0T 77G 1.8T 5% /U02?
這個時候就需要簡單修改一下指令碼,把備份路徑挪過來,這個問題就徹底解決了。