Document Id
2075138
Symptoms
免責聲明: 本文為 Purging old data from the database used by VMware vCenter Server (1025914) 的翻譯版本。 盡管我們會不斷努力為本文提供最佳翻譯版本,但本地化的內容可能會過時。 有關最新內容,請參見英文版本。
Purpose
如果您的 vCenter Server 無法啟動,請確認VPX_EVENT和VPX_TASK表是否已滿並根據需要手動清空數據庫。
vCenter Server 數據庫已滿時:
- 無法登錄 vCenter Server。
- VMware VirtualCenter Server 服務可能會在啟動后立即停止。
- Microsoft SQL 事件日志報告以下錯誤:
無法為數據庫 'VCDB' 中的對象 'dbo.VPX_EVENT'.'VPXI_EVENT_USERNAME' 分配空間,因為 'PRIMARY' 文件組已滿。請刪除不需要的文件、刪除文件組中的對象、將其他文件添加到文件組或為文件組中的現有文件啟用自動增長,以便增加可用磁盤空間。(Could not allocate space for object 'dbo.VPX_EVENT'.'VPXI_EVENT_USERNAME' in database 'VCDB' because the 'PRIMARY' filegroup is full. Create disk space by deleting unneeded files, dropping objects in the filegroup, adding additional files to the filegroup, or setting autogrowth on for existing files in the filegroup.)
Resolution
要解決此問題,請手動清除或截斷 vCenter Server 數據庫。
注意:VMware 建議您先停止 VMware VirtualCenter Server 服務並為您的數據庫創建完整、可靠的備份,再嘗試執行此過程。
注意:
- 如果使用的是 SQL 2005 Express,則可能需要下載並安裝 Microsoft SQL Server Management Studio Express。
- SQL Express 2005/2008(vCenter Server 5.x 與 SQL Express 2008 打包在一起)支持最多 5 個主機和 50 個虛擬機。如果您的環境超出這些閾值,必須將數據庫升級到 SQL Standard 版本。
- 如果可用磁盤空間不足,在此過程中數據庫事務日志可能會被填滿。對於 SQL Server,如果無法提供所需的磁盤空間,一種可選方案是在此操作執行期間對數據庫采用“簡單”恢復模式。
清除任務和事件表
注意:如果清除數據庫需要較長時間,請截斷事件和任務表來清理數據庫。
要清除
VPX_EVENT
表中的數據,請執行以下操作:
- 連接到
Servername\SQL Database
並使用相應憑據登錄。 - 單擊數據庫展開,然后依次選擇 VIM_VCDB >表。
注意:默認情況下,vCenter Server 數據庫的名稱為VIM_VCDB
,除非在一開始創建時進行了重命名。 - 右鍵單擊 dbo.VPX_PARAMETER 表,再單擊打開。
注意:如果使用的是 SQL Server 2008,則右鍵單擊 dbo.VPX_PARAMETER 表,並單擊編輯前 200 行。 - 將 event.maxAge 修改為30,並將 event.maxAgeEnabled 值修改為 true。
- 將 task.maxAge 修改為30,並將 task.maxAgeEnabled 值修改為 true。
注意:為縮短數據清除時間,請在多個時間間隔內運行上述步驟:
- 確保留用 event.maxAge 的默認值 task.maxAge.
- 執行步驟 6 來運行清理任務。
- 將 event.maxAge 和 task.maxAge 值減少 60,然后運行清理任務。
- 重復步驟 a 到 c,直到值達到 30 並執行最終清除過程。
- 運行內置的存儲過程:
- 導航到 VIM_VCDB>可編程性>存儲過程。
- 右鍵單擊 dbo.cleanup_events_tasks_proc,然后選擇執行存儲過程。
這將根據為 maxAge 指定的日期從 vpx_event, vpx_event_arg 和 vpx_task 表中清除數據。 - 成功完成清理操作后,關閉 SQL Management Studio,然后啟動 VMware Virtual Center Server 服務。
- 確保默認統計級別設置為 1:
- 使用 vSphere Client 以管理員身份登錄 vCenter Server。
- 轉到管理>vCenter Server 設置>統計。
- 在“統計間隔”下,確保“統計級別”列設置為1。
- 要更改該值,可選擇間隔時間,單擊編輯,然后從列表中選擇1 級。
注意:
- 執行
dbo.cleanup_events_tasks_proc
可能會花費較長時間,具體視數據庫大小而定。 - 由於事務日志將基於要清除的數據以多個間隔來填充,因此操作可能失敗。在需要時您必須縮小 Transaction 日志,然后重新運行
dbo.cleanup_events_tasks_proc
。
截斷事件和任務表
要截斷事件和任務表,請運行以下腳本:
alter table VPX_EVENT_ARG drop constraint FK_VPX_EVENT_ARG_REF_EVENT, FK_VPX_EVENT_ARG_REF_ENTITY
alter table VPX_ENTITY_LAST_EVENT drop constraint FK_VPX_LAST_EVENT_EVENT
truncate table VPX_TASK
truncate table VPX_ENTITY_LAST_EVENT
truncate table VPX_EVENT
truncate table VPX_EVENT_ARG
alter table VPX_EVENT_ARG add constraint FK_VPX_EVENT_ARG_REF_EVENT foreign key(EVENT_ID) references VPX_EVENT (EVENT_ID) on delete cascade,
constraint FK_VPX_EVENT_ARG_REF_ENTITY foreign key (OBJ_TYPE) references VPX_OBJECT_TYPE (ID)
alter table VPX_ENTITY_LAST_EVENT add constraint FK_VPX_LAST_EVENT_EVENT foreign key(LAST_EVENT_ID)
references VPX_EVENT (EVENT_ID) on delete cascade
alter table VPX_EVENT_ARG drop constraint FK_VPX_EVENT_ARG_REF_EVENT, FK_VPX_EVENT_ARG_REF_ENTITY
alter table VPX_ENTITY_LAST_EVENT drop constraint FK_VPX_LAST_EVENT_EVENT
truncate table VPX_TASK
truncate table VPX_ENTITY_LAST_EVENT
truncate table VPX_EVENT
truncate table VPX_EVENT_ARG
alter table VPX_EVENT_ARG add constraint FK_VPX_EVENT_ARG_REF_EVENT foreign key(EVENT_ID) references VPX_EVENT (EVENT_ID) on delete cascade,
constraint FK_VPX_EVENT_ARG_REF_ENTITY foreign key (OBJ_TYPE) references VPX_OBJECT_TYPE (ID)
alter table VPX_ENTITY_LAST_EVENT add constraint FK_VPX_LAST_EVENT_EVENT foreign key(LAST_EVENT_ID)
references VPX_EVENT (EVENT_ID) on delete cascade
免責聲明:VMware 對第三方網站上數據、觀點、建議或聲明的可靠性不承擔任何責任。包含此類鏈接不代表 VMware 認可、推薦此類站點的內容或接受相應的責任。
Related Information
使用以下 Microsoft SQL Studio 選項無助於清除 VPX_EVENT 和 VPX_TASK 表:
- 清除舊數據
- 截斷表
- 收縮日志和數據庫
- 重新創建匯總作業