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
然後設成定時自動執行指令碼就可以了。