从 vCenter Server 使用的数据库中清除旧数据 (2075138)(转)
Symptoms
免责声明: 本文为 Purging old data from the database used by VMware vCenter Server (1025914) 的翻译版本。 尽管我们会不断努力为本文提供最佳翻译版本,但本地化的内容可能会过时。 有关最新内容,请参见英文版本。
Purpose
- 无法登录 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
- 如果使用的是 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
免责声明:VMware 对第三方网站上数据、观点、建议或声明的可靠性不承担任何责任。包含此类链接不代表 VMware 认可、推荐此类站点的内容或接受相应的责任。
Related Information
使用以下 Microsoft SQL Studio 选项无助于清除 VPX_EVENT 和 VPX_TASK 表:
- 清除旧数据
- 截断表
- 收缩日志和数据库
- 重新创建汇总作业
从 vCenter Server 使用的数据库中清除旧数据 (2075138)(转)的更多相关文章
- 清空SQL Server数据库中所有表数据的方法(转)
清空SQL Server数据库中所有表数据的方法 其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之间可能形成相互约束关系,删除操作可能陷入 ...
- SQL点滴12—SQL Server备份还原数据库中的小把戏
原文:SQL点滴12-SQL Server备份还原数据库中的小把戏 备份数据库时出现一个不太了解的错误 ,错误信息“is formatted to support 1 media families, ...
- 清空SQL Server数据库中所有表数据的方法
原文:清空SQL Server数据库中所有表数据的方法 其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之间可能形成相互约束关系,删除操作可 ...
- SQL Server数据库账号密码变更后导致vCenter Server无法访问数据库
SQL Server数据库账号密码变更后导致vCenter Server无法访问数据库 1.1状况描述: 若SQL Server数据库的账号(这里以sa为例)密码发生了变更,那么连接数据的客户端vCe ...
- SQL Server 删除当前数据库中所有数据库 ,无视约束
Sql Server中清空所有数据表中的记录 清空所有数据表中的记录: exec sp_msforeachtable @Command1 ='truncate table ?' 删除所有数据表: e ...
- 【Sqlserver清空数据库中所有表数据】
脚本: CREATE PROCEDURE sp_DeleteAllData AS EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT AL ...
- C# 批量插入表SQLSERVER SqlBulkCopy往数据库中批量插入数据
#region 帮助实例:SQL 批量插入数据 多种方法 /// <summary> /// SqlBulkCopy往数据库中批量插入数据 /// </summary> /// ...
- C#实现MySQL数据库中的blob数据存储
在MySQL数据库中,有一种blob数据类型,用来存储文件.C#编程语言操作MySQL数据库需要使用MySQL官方组件MySQL.Data.dll. Mysql.Data.dll(6.9.6)组件下载 ...
- 批量替换数据库中所有用户数据表中字段数据类型为char和varchar到nvarchar的脚本
解决问题:字段类型为char的总是占用指定字节长度(末尾好多空白符号),varchar数据类型长度一个汉字占2个字节,内容存储为中文的字段个人建议全部使用nvarchar. 操作说明:打开SQL Se ...
随机推荐
- 在thinkphp框架中使用后台传值过来的数组,在hightcart中使用数组
js的数组是和php里面数组是不一样的,所以模板文件需要先接受,然后利用Js代码转化之后再使用,接受后台的数组有几种办法 1.后台传过来的json数组,利用Js是可以接受的,然后将json数据利用js ...
- WIN10系统触摸板快捷键
快捷的手势操作,有时候会让人脱离鼠标,只要不是非用不可的情况,基本上这些常用手势就能让我们摆脱鼠标携带不便或者桌子地方小的烦恼.iOS上的快捷手势很是受欢迎,win10上却鲜有人知晓,尤其是非开发人员 ...
- angular路由守卫
路由守卫是指当用户满足了某些要求之后才可以离开或者进入某个页面或者场景的时候使用.比如说只有当用户填写了用户名和密码之后才可以进入首页,比如说用户离开某个页面时明月保存信息提示用户是否保存信息后再离 ...
- linux 进程间通信的3种高级方式及优缺点
由于不同的进程运行在各自不同的内存空间中.一方对于变量的修改另一方是无法感知的.因此.进程之间的信息传递不可能通过变量或其它数据结构直接进行,只能通进程间通信来完成. 根据进程通信时信息量大小的不同, ...
- mybatis的mapper接口代理使用的三个规范
1.什么是mapper代理接口方式? MyBatis之mapper代理方式.mapper代理使用的是JDK的动态代理策略 2.使用mapper代理方式有什么好处 使用这种方式可以不用写接口的实现类,免 ...
- Java:现有线程T1/T2/T3,如何确保T1执行完成之后执行T2,T3在T2执行完成之后执行。
要实现多个线程执行完成先后,就要知道如何实现线程之间的等待,java线程等待实现是join.java的jdk中join方法实现如下: public final synchronized void jo ...
- NGUI----简单聊天系统一
1:聊天背景的创建 新建一个场景-----保存场景 NGUI---->Create-----Panel 选中UIRoot,然后新建一个sprite 选择图集 效果如下图 添加一个可拖拽的功能 选 ...
- WPF Uri
场景:自定义控件Generic.xaml样式引用资源字典Dictionary1.xaml. 方式:绝对路径. 方式1: <ResourceDictionary> <ResourceD ...
- js中的递归总结
主要从"变量+函数"和"函数+变量"两个方面说明解释. function fun() { // 自己调用自己,称为递归调用 fun(); console.log ...
- python 连接sqlite及操作
import sqlite3 #查询 def load(table): #连接数据库 con = sqlite3.connect("E:/Datebase/SQLiteStudio/Park ...