vcenter postgresql 空间满,导致无法启动问题的处理。

本文介绍了一种vCenter中PostgreSQL数据库空间迅速增长的问题及解决方案,通过挂载更大磁盘并定时清理特定表来缓解空间压力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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


然后设成定时自动执行脚本就可以了。









<think>我们正在处理vCenter6.7VCSA证书过期问题。根据引用[1]和引用[2],我们可以按照以下步骤操作:1.首先确认证书过期的具体类型。vCenter6.7的证书包括多种:SSL证书(rui.crt)、STS证书、解决方案用户证书等。其中STS证书过期会导致服务无法启动,需要优先处理。2.根据引用[1],如果STS证书未过期,则可以直接更新其他证书。但如果STS证书过期,则需要先更新STS证书。3.更新证书的主要工具是`certificate-manager`,位于`/usr/lib/vmware-vmca/bin/`目录下。4.具体步骤:a.登录到vCenterServerAppliance的管理控制台(通过SSH或直接控制台)。b.检查证书状态,特别是STS证书:```bashopensslx509-in/etc/vmware-sso/keys/ssosignature.key-text-noout|grep"NotAfter"```c.如果STS证书已过期,则需要先重置STS证书。可以使用以下命令:```bash/usr/lib/vmware-vmca/bin/certificate-manager```选择选项1(重置STS证书),然后按照提示操作。注意:在输入主机名时,必须使用FQDN(完全限定域名),即使最初是用IP地址部署的,也要使用FQDN(如果已经配置了DNS)或者IP地址(如果使用IP部署且没有DNS)。但强烈建议使用FQDN以避免问题。d.如果STS证书未过期,则按照引用[1]中的KB文章(https://kb.vmware.com/s/article/2097936)选择选项8(更新所有证书)来更新其他证书。e.在更新过程中,系统会提示输入主机名(Hostname)和VMCA名称(VMCAName)。根据引用[1]的说明:-在「Hostname」输入vCenter的FQDN(如果是以IP部署的,则输入IP地址)。-在VMCAName输入与Hostname相同的值。f.完成证书更新后,需要重启vCenter服务:```bashservice-control--restart--all```5.注意:如果vCenter服务因为证书问题已经无法启动,那么更新证书后应该能够解决。但如果在更新过程中遇到问题,可能需要手动替换证书或进行其他修复。6.另外,引用[2]提到在部署vCenter6.7时使用FQDN可以避免很多问题。因此,在更新证书时使用FQDN是非常重要的。7.如果更新证书后服务仍然无法启动,需要检查日志:```bashtail-f/var/log/vmware/vpxd/vpxd.log```查看是否有与证书相关的错误信息。8.如果遇到问题,还可以参考VMware官方知识库文章:https://kb.vmware.com/s/article/2108297(针对vCenter6.7证书过期的详细步骤)。9.重要提示:在操作前备份vCenter,以防万一。根据以上步骤,我们可以解决vCenter6.7VCSA证书过期的问题。注意:以上步骤适用于vCenter6.7。对于其他版本,步骤可能略有不同。如果用户的问题仍未解决,可能需要更详细的错误信息来进一步排查。生成相关问题:1.如何检查vCenterSTS证书是否过期?2.更新vCenter证书后服务无法启动怎么办?3.如何备份vCenter证书?</think>### VMware vCenter 6.7 VCSA 证书过期解决方案 以下是针对vCenter 6.7 VCSA证书过期的完整修复流程,基于官方最佳实践和实际故障处理经验: --- #### 1. **证书状态诊断** ```bash # 检查所有证书过期状态 for cert in $(find /etc/ -name "*.crt" -o -name "*.key"); do echo -n "$cert: " openssl x509 -enddate -noout -in $cert 2>/dev/null || echo "Not a certificate" done # 重点检查STS证书(常见故障点) openssl x509 -in /etc/vmware-sso/keys/ssosignature.key -noout -dates ``` - **关键判断**: - 若输出`notAfter`早于当前日期 → **证书已过期** - 若无输出或报错 → **证书文件损坏** --- #### 2. **证书更新流程**(使用官方工具) ```bash # 启动证书管理工具 /usr/lib/vmware-vmca/bin/certificate-manager ``` **操作步骤**: 1. 选择选项 **8** (更新所有证书) 2. 在`Hostname`输入 **vCenter的FQDN**(非IP地址) 3. 在`VMCA Name`输入与Hostname相同的值 4. 确认所有替代名称(SAN)正确 5. 接受默认密码(直接回车) 6. 等待操作完成(约5-10分钟)[^1] > **重要提示**:如果初始部署使用IP地址,此处必须使用相同IP作为Hostname --- #### 3. **服务重启与验证** ```bash # 强制重启所有服务 service-control --stop --all service-control --start --all # 检查关键服务状态 service-control --status | grep -E 'vpxd|sts' ``` - **预期输出**:`vmware-vpxd is running` 和 `vmware-stsd is running` --- #### 4. **高级修复场景** **场景1:证书工具执行失败** ```bash # 手动重置STS证书 /usr/lib/vmware-vmca/bin/certificate-manager --reset-sts # 重新生成SSL证书 /usr/lib/vmware-vmca/bin/certificate-manager --regenerate --cert rui ``` **场景2:服务仍无法启动** ```bash # 检查数据库证书(常见被忽略点) openssl x509 -in /storage/db/vpostgres/server.crt -noout -dates # 若过期则更新 cp /etc/vmware-vpx/ssl/rui.crt /storage/db/vpostgres/server.crt service-control --restart vmware-postgres ``` --- #### 5. **部署预防措施**(未来避免问题) 1. **部署时**: - 必须使用**FQDN**而非IP地址[^2] - 确保DNS正反向解析正确 - 选择合适规模配置(避免"小型"配置) 2. **运维时**: ```bash # 添加证书到期监控(crontab每月执行) echo "0 0 1 * * openssl x509 -checkend 2592000 -in /etc/vmware-vpx/ssl/rui.crt" >> /etc/crontab ``` - 证书到期前30天触发告警 --- #### 故障修复流程图 ```mermaid graph TD A[证书过期] --> B{使用certificate-manager} B -->|成功| C[重启服务] B -->|失败| D[手动重置STS] D --> E[检查数据库证书] E -->|正常| C E -->|过期| F[替换DB证书] F --> C C --> G{服务状态} G -->|正常| H[完成] G -->|异常| I[检查vpxd.log] I --> J[根据日志修复] ``` > **操作风险提示**:证书更新后需清除浏览器缓存,所有连接vCenter的客户端需重新信任证书
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值