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亿,容易出现升级缓慢和失败,需要重新减小数据库尺寸再升级。

vcenter5.5升级到6.0失败的分析与思考--数据库大于50G

如果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_EVENTVPX_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. 1.       https://kb.vmware.com/kb/2110031 下载ORACLE脚本

  2. 2.       上传到ORACLE服务器

  3. 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.

 

  1. 4.       正常升级.

  2. 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%

 

 

然后等升级完成就可以了

 vcenter5.5升级到6.0失败的分析与思考--数据库大于50G

关于汇总脚本

  1. 要运行汇总脚本,请执行以下步骤:

    1. 使用 SQL Management Studio 连接到 vCenter Server 的 SQL 数据库。

    2. 导航到 SQL Server Agent > 作业

    3. 选择各个汇总作业,然后右键单击并选择启动作业于步骤

  2. 启动 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