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

如何使用SQL命令删除vCenter Server里的陈旧数据,第1张

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清除数据。当你更改某个间隔,只有关于这个间隔的数据被清除。例如,如果你只更改每周间隔,就清除了每周数据,但没有清除每天、每月和每年的数据。你也能更改所收集的数据或者禁用间隔,这将减少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 Query Analyzer工具(作为SQL server的一部分安装)。

在Query窗口输入:

use

然后输入:

EXEC sp_spaceused

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

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

vCenter Server 有一项“数据库保留策略”设置可供您用来指定何时应删除 vCenter Server 任务和事件。由于这些设置不影响性能数据记录,因此仍可以使用本文所附的脚本从数据库中清除或收缩旧记录。

要访问 vSphere Client 中的数据库保留策略设置,请按以下步骤 *** 作:

单击管理 >vCenter Server 设置 >数据库保留策略。

本文所附的脚本支持从 vCenter Server 中清除性能数据。

小心:请勿对 VirtualCenter 2.x 数据库运行本文所附的脚本。有关在 VirtualCenter 2.x 中清除数据的信息,请参见从 VirtualCenter 2.x 使用的数据库中清除旧数据 (1000125) (Purging old data from the database used by VirtualCenter 2.x (1000125))。

注意:SQL Express 2005/2008(vCenter Server 5.x 所捆绑的版本为 SQL Express 2008)最多支持 5 台主机和 50 台虚拟机。如果您的环境超出此阈值,必须将您的数据库升级到 SQL Standard。

您好,很高兴为您解答。

vCenter日志以文本文件的形式保存在vCenter服务器上,默认位置是

C:\Documents &Settings\All Users\Application Data\VMware\VMware Virtual Center\Logs.

因为当vCenter Server 服务运行的时候,最新版本的日志文件正在使用中,所以如果要清理的话,必须先暂时停下此服务。

步骤:

1. 停止 VMware vCenter Server 服务

2. 打开资源管理器并找到C:\Documents &Settings\All Users\Application Data\VMware\VMware Virtual Center\Logs

3. 如果需要将日志文件归档的话,可以选择所有vpxd-*.log文件,发送到一个压缩文件,并取一个有意义的文件名(比如2010Jan-Dec-vCenter-Log.zip),并把这个归档文件保存到一个安全的地方

4. 删除该目录中的内容,包括vpxd-index索引文件

5. 重启VMware vCenter Server 服务

6. 查看并验证 vpxd-*.log文件(包括起第一个日志vpxd-0.log)应该已经被创建了。

注意:停掉VMware vCenter Server 服务并不会影响到任何虚机的运行。但是,vSphere Client的连接会被重置。此外,所有日志文件会被自动以Tar+Gzip方式压缩,并且会以循环覆盖的方式保存9个(默认值)历史记录和一个当前的日志记录。

如若满意,请点击右侧【采纳答案】,如若还有问题,请点击【追问】

希望我的回答对您有所帮助,望采纳!

~ O(∩_∩)O~


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9965037.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-03
下一篇2023-05-03

发表评论

登录后才能评论

评论列表(0条)

    保存