如何使用SQL命令删除vCenter Server里的陈旧数据?

日期: 2009-03-10 作者:Eric Siebert翻译:唐琼瑶 来源:TechTarget中国 英文

VMware的vCenter Server数据库就如同VMware的存储库。在vCenter里,几十个表格存储着资源、集群、VMware分布式资源调度程序、快照、VMware ESX主机、虚拟机、警告、性能参数、任务和事件等信息。   问题是如果环境里拥有许多VMware主机服务器和虚拟机,数据库增长得非常大。不过增长的空间主要来自少数几个包括任务、事件和历史性能数据的表格(参见下面的描述)。

从vCenter Server数据库删除无关的任务和事件能节约空间、提升系统性能、加速备份和最小化数据库崩溃的概率。在本文中,TechTarget中国的特约虚拟化专家Eric Siebert将介绍如何使用……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

VMware的vCenter Server数据库就如同VMware的存储库。在vCenter里,几十个表格存储着资源、集群、VMware分布式资源调度程序、快照、VMware ESX主机、虚拟机、警告、性能参数、任务和事件等信息。

  问题是如果环境里拥有许多VMware主机服务器和虚拟机,数据库增长得非常大。不过增长的空间主要来自少数几个包括任务、事件和历史性能数据的表格(参见下面的描述)。从vCenter Server数据库删除无关的任务和事件能节约空间、提升系统性能、加速备份和最小化数据库崩溃的概率。在本文中,TechTarget中国的特约虚拟化专家Eric Siebert将介绍如何使用微软的SQL Server从vCenter数据库删除不需要的信息。
  
  操作vCenter表格数据

  不过在清理文件之前,你应该明白vCenter Server的表格数据。下面是有关这些表格的信息类型简要。

  任务信息。这个表格包括在vCenter Server执行的所有任务的信息。

  VPX_TASK

  事件信息。这个表格包括所有发生在vCenter Server的事件的信息。对于每一个事件,VPX_EVENT表格里占有一行,由于EVENT_ID字段,有一行或更多行在VPX_EVENT_ARG。

  VPX_EVENT
  VPX_EVENT_ARG

  历史参数。这些表格包括vCenter Server所管理的主机与虚拟机的性能记数信息。对于vCenter Server 2.0.x服务器来说,这个信息存储在单个的VPX_HIST_STAT表格里。但在vCenter Server 2.5里,这种方式改变了:每天的性能数据存储在VPX_HIST_STAT1里,然后融入VPX_HIST_STAT2计算每周数据,最后,融入VPX_HIST_STAT4计算每年数据。此外,有四个样本时间表格用于VMware迁移技巧——白皮书历史性能表格。

  VPX_HIST_STAT (VC 2.0.x)
  VPX_HIST_STAT1 (VC 2.5)
  VPX_HIST_STAT2 (VC 2.5)
  VPX_HIST_STAT3 (VC 2.5)
  VPX_HIST_STAT4 (VC 2.5)
  VPX_SAMPLE_TIME1 (VC 2.5)
  VPX_SAMPLE_TIME3 (VC 2.5)
  VPX_SAMPLE_TIME3 (VC 2.5)
  VPX_SAMPLE_TIME4 (VC 2.5)

vCenter Server

  使用vCenter Server清除数据

  通过更改参数间隔配置,能间接地使用vCenter Server清除数据。当你更改某个间隔,只有关于这个间隔的数据被清除。例如,如果你只更改每周间隔,就清除了每周数据,但没有清除每天、每月和每年的数据。你也能更改所收集的数据或者禁用间隔,这将减少VPX_HIST_STAT表格的大小。

  有几大原因需要删除这个数据。首先是为了降低在数据库服务器上使用的空间数量。在大型环境里,这样的的数据库很容易就增长到20GB,虽然这可能对于运行在大型本地磁盘上的SQL Server不成问题,但在使用不同存储区域网络的磁盘空间的数据库服务器上就有问题。

  第二个原因是性能。数据库越大,搜寻数据和完成如更新索引这样的数据库操作就更花费时间。最后,拥有的数据越少,数据库越有效率,发生崩溃的概率也越小。备份数据库的时间也更少。

  底线是问问自己是否真的需要那么多的历史任务和历史事件数据。你在一年前检查过新年数据吗?旧的性能数据对于偶尔的定点有价值。不过如果不需要这种功能,就清除旧数据。同样,首先考虑不要收集数据。你可能只收集每天和每周的数据用于故障检修的目的,并禁用比较久的每月和每年的数据。

  检查表格大小

  使用SQL命令,能检查表格的大小。对于SQL数据库来说,使用SQL*Plus或另外的SQL客户端在登录到数据库,使用以下的SQL命令:

  select count (*) from VPX_EVENT

  这个命令显示了表格里的行数(或记录)。对于其他表格,更改表格名称查看。

  select num_rows * avg_row_len from user_tables where table_name = 'VPX_EVENT'

  这个命令以字节形式显示表格正在使用的磁盘空间数量,不包括剩余的表格空间。

  select bytes from user_segments where segment_name = 'VPX_EVENT'

  这个命令以字节形式显示表格正在使用的磁盘空间数量,包括剩余的表格空间。

SQL Servers

  对于SQL Servers,通过以下命令,能使用SQL Query Analyzer工具(作为SQL server的一部分安装)。

  在Query窗口输入:

  use <VC database name>

  然后输入:

  EXEC sp_spaceused <table name>

  接下来点击Execute Query图标或按F5。这将运行sp_spaceused存储程序(本质上是一个SQL服务器脚本),显示这个表格的信息,包括正在使用的行数、保存在表格里以千字节显示的磁盘空间数量以及数据所占据的表格空间的数量。想查看其他表格的这些信息,只需要用其他表格名称输入上面的命令。

vCenter Server

  现在我们知道了表格的情况和如何决定它们的大小,我们就能清除数据了。在这系列的下一篇文章中,我们将介绍如何使用VMware所提供的SQL脚本清除数据。

相关推荐