1. 程式人生 > >vcenter postgresql 空間滿,導致無法啟動問題的處理。

vcenter postgresql 空間滿,導致無法啟動問題的處理。

vcenter現在只支援postgresql 和 oracle。用了embed的vpostgresql。

有一天忽然發現,vcenter服務連線不上。登入到伺服器後,發現/storage/db空間使用100%。

臨時恢復辦法,我是這樣處理的。

1、給vcenter 掛載一個更大的磁碟,分割槽,格式化。

2、然後將 /storage/db 下的所有內容複製到   新的分割槽     cp -P -r

3、修改/etc/fstab   將新分割槽代替原有分割槽 掛載到/storage/db

4、重新啟動

這時候,可以正常啟動,發現 /storage/db  增長依然非常迅猛。每天幾個G,根本停不下來。。。。。。。

查閱相關文章 說要控制 資料庫記錄日誌的事物級別  ,記錄週期等等依然無法解決。。

登入到 vpostgresql   

cd   /opt/vmware/vpostgres/9.0/bin

./psql  -U vc -W VDBC

這個密碼存放在/etc/vmware-VPX/embeddb. cfg 檔案內  但我 沒輸入密碼也進去了。。。。

使用

SELECT relname, relpages FROM pg_class ORDER BY relpages DESC;
能夠檢視那個表佔用空間最大

我這裡是 VPX_EVENT_ARG這個

沒辦法

truncate  VPX_EVENT_ARG;

一下釋放了50G空間。。。

http://www.vmware.com/cn/support/support-resources/pubs/vsphere-esxi-vcenter-server-pubs/vsphere-vcenter-server-55u2-release-notes.html#resolvedissues 

中提到了這個問題,但vmware 也只是能提供警告。。。

http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2078305

http://kb.vmware.com/selfservice/search.do?cmd=displayKC&docType=kc&docTypeID=DT_KB_1_1&externalId=1025914

http://kb.vmware.com/selfservice/search.do?cmd=displayKC&docType=kc&docTypeID=DT_KB_1_1&externalId=1007453

http://pubs.vmware.com/vsphere-55/index.jsp?topic=%2Fcom.vmware.vsphere.vcenterhost.doc%2FGUID-84DE30DD-E1C4-4E6D-899D-4756FE77CB15.html

以上是相關的一些文章

但是依然沒有找到資料庫增長的原因。

我懷疑和 vcenter 中整合的第三方 vshield vswitch 等管理軟體有關。。。這些騙錢的傢伙。。

目前能想到的辦法就是  

觀察資料庫增長的速率,保證足夠的空間,寫個指令碼,定時執行 truncate 相關的表。。。。。。

清除資料的指令碼如下

#!/bin/bash

cd /opt/vmware/vpostgres/9.0/bin

service vmware-vpxd stop

./psql -U root -w -d VCDB --command "truncate vpx_event,vpx_event_arg,vpx_entity_last_event;"

service vmware-vpxd start

然後設成定時自動執行指令碼就可以了。