vcenter5.5升级到6.0失败的分析与思考--数据库大于50G
事件:vcenter5.5升级到6.0失败
创新互联公司是一家专业提供柘城企业网站建设,专注与网站设计、网站建设、H5建站、小程序制作等业务。10年已为柘城众多企业、政府机构等服务。创新互联专业网站设计公司优惠进行中。
1.升级时,有十几个Pl (存储过程)失效
2.30G temp 表空间很快就被用完,临时扩充表空间到99G,空间也快被用满。
3. 检查升级过程中执行的SQL语句,发现如下一条语句执行时间超长
INSERT INTO VPX_HIST_STAT1_224 SELECT INSERTED.COUNTER_ID,HS.TIME_ID,SUM(STAT_VAL) FROM VPX_HIST_STAT1_224 HS INNER JOIN VPX_STAT_COUNTER SC ON HS.COUNTER_ID = SC.COUNTER_ID INNER JOIN VPX_DEVICE D ON SC.DEVICE_ID=D.DEVICE_ID INNER JOIN VPX_OBJECT_HIERARCHY H ON SC.ENTITY_ID = H.STAT_ENTITY_ID INNER JOIN (SELECT SC.ENTITY_ID, SC.COUNTER_ID, CASE WHEN SD49.NAME='swapused' AND SD49.GROUP_NAME='mem' AND SD49.ROLLUP_TYPE=0 THEN (SELECT ID FROM VPX_STAT_DEF WHERE NAME='swapped' AND GROUP_NAME='mem' AND ROLLUP_TYPE=0) ELSE SC.STAT_ID END MODSTAT_ID, NC.AGGR_TO, NC.AGGR_TYPE FROM VPX_STAT_ID T INNER JOIN VPX_STAT_COUNTER SC ON SC.ENTITY_ID=T.ID INNER JOIN VPX_NEW_COUNTERS NC ON NC.COUNTER_ID = SC.STAT_ID INNER JOIN VPX_STAT_DEF SD49 ON SD49.ID = SC.STAT_ID) INSERTED ON H.PARENT_STAT_ENTITY_ID=INSERTED.ENTITY_ID AND INSERTED.MODSTAT_ID=SC.STAT_ID AND (INSERTED.AGGR_TYPE=H.ENTITY_TYPE OR H.ENTITY_TYPE='R' ) AND (H.ENTITY_TYPE=INSERTED.AGGR_TO OR (INSERTED.AGGR_TO='C' AND H.ENTITY_TYPE IN ('V','H'))) WHERE D.DEVICE_NAME IS NULL GROUP BY HS.TIME_ID,SC.STAT_ID,INSERTED.COUNTER_ID
现象: 此语句一直被执行,temp 里空间也是被此语句占满
4. 在升级界面没有反应一个多小时后,报升级失败。
分析:
升级过程在同版本的其他vc上非常顺利,但这个生产VC上却报错。检查了下库,发现在这个VC上,VCTBS表空间有74G,B比其他VC上的数据库都大。
翻看官方的KB,发现一个KB中提到如果数据库过大超50G,表的行数超8亿,容易出现升级缓慢和失败,需要重新减小数据库尺寸再升级。
如果vCenter Server数据库是非常大的(50 GB或更多),在vpx_hist_stat#表的行数很高(8亿以上),数据库汇总脚本可能难以处理的数据量。要使汇总的脚本运行速度更快,则需要减少vCenter Server数据库的大小。
分析:
要减小 vCenter Server 数据库的大小,可以将删除所有历史数据。 但为了安全,需要保留一些历史性能数据而不是全部删除。
解决:
1、确保已经完好备份 vCenter Server Database。
2、关闭 VMware VirtualCenter Server 服务及任何其他使用该数据库的服务
3、截断 VPX_HIST_STAT1
表及相应的 VPX_SAMPLE_TIME1
表。 截断完成后,验证汇总作业现在是否已成功完成。
要截断表,请执行以下 SQL 语句:
truncate table VPX_HIST_STAT1;
注意: 在 vCenter Server 5.1 和 5.5 中,表名称为 VPX_HIST_STAT1_n。truncate table VPX_SAMPLE_TIME1;
注意: 要减小 vCenter Server 数据库的大小,还可以删除 VPX_EVENT
、VPX_EVENT_ARG
和 VPX_TASK
表中的数据。 要删除这些表中的数据,请参见 Purging old data from the database used by vCenter Server (1025914) 或 Purging old data from the database used by VirtualCenter 2.x (1000125)。
如果汇总作业未成功完成,则您可能需要截断 VPX_HIST_STAT2
表及相应的 VPX_SAMPLE_TIME2
表。 继续截断 VPX_HIST_STAT[1-4]
表及相应的VPX_SAMPLE_TIME[1-4]
表,直到汇总作业成功完成。
注意: vCenter Server 4.1 和 5.0 中的以下其他表也可以截断以进一步减小 vCenter Server 数据库的大小。 在处理性能数据并将其移至VPX_HIST_STAT1
之前,VPX_TEMPTABLEx
表是性能数据的暂存/缓存区域。truncate table VPX_TEMPTABLE0;
truncate table VPX_TEMPTABLE1;
truncate table VPX_TEMPTABLE2;
实际解决办法:
按以下步骤来操作
1. https://kb.vmware.com/kb/2110031 下载ORACLE脚本
2. 上传到ORACLE服务器上
3. 运行脚本
SQL> @/2110031_Oracle_task_event_stat.sql
Table created.
…..
Enter value for 1: 1
Enter value for 2: 1
Enter value for 3: 1
-------------------------------------------------------------------
Database cleanup may take long time depends on size of VPX_TASK,
VPX_EVENT, VPX_SAMPLE_TIME1, VPX_SAMPLE_TIME2, VPX_SAMPLE_TIME3,
VPX_SAMPLE_TIME4 and all VPX_HIST_STATx_y tables.
-------------------------------------------------------------------
Staring cleanup database at 03-07-2017 09:48:41
---------------------------------------------------------------
Deleting tasks older than 03-06-2017 01:48:41
Deleting events older than 03-06-2017 01:48:54
Deleting statistics older than 03-06-2017 01:50:01
---------------------------------------------------------------
Cleanup database completed at 03-07-2017 09:50:44
Table dropped.
…
4. 正常升级.
5. 检查临时表空间使用率
TABLESPACE_NAME TOTAL_BYTES FREE_BYTES USE_BYTES USE
------------------------------ ----------- ----------- ----------- -------
SYSAUX 1,670.000 208.250 1,461.750 87.53%
UNDOTBS1 6,075.000 4,031.063 2,043.938 33.65%
VUM 1,024.000 1,013.688 10.313 1.01%
USERS 5.000 3.688 1.313 26.25%
SYSTEM 820.000 9.125 810.875 98.89%
VCTBS 73,727.984 62,865.250 10,862.734 14.73%
TEMP 28,672.000 23,132.000 5,540.000 19.32%
然后等升级完成就可以了
关于汇总脚本
要运行汇总脚本,请执行以下步骤:
使用 SQL Management Studio 连接到 vCenter Server 的 SQL 数据库。
导航到 SQL Server Agent > 作业。
选择各个汇总作业,然后右键单击并选择启动作业于步骤。
启动 VMware VirtualCenter Server 服务及任何其他在步骤 2 中停止的服务。
截断 vCenter Server 5.1、5.5 和 6.0 中的所有性能数据
有关截断 vCenter Server 和 vCenter Server Appliance 5.1、5.5 及 6.0 中数据的信息,请参见 Selective deletion of tasks, events, and historical performance data in vSphere 5.x and 6.x (2110031)
本文名称:vcenter5.5升级到6.0失败的分析与思考--数据库大于50G
本文URL:http://azwzsj.com/article/jjsdsh.html