首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >vcenter内嵌和外链数据库的解析

vcenter内嵌和外链数据库的解析

作者头像
孙杰
发布2019-10-29 14:41:24
1.7K0
发布2019-10-29 14:41:24
举报
文章被收录于专栏:云技术+云运维云技术+云运维

vcenter支持内嵌和外链数据库,也是其两种常见的部署模式。

vcenter支持内嵌,内嵌的数据库默认是vpostgresql.

wKioL1njdMWAlSagAAFPX3vUHVg511.png-wh_50
wKioL1njdMWAlSagAAFPX3vUHVg511.png-wh_50

内嵌数据库适合小型部署,安装简单方便,无需配置ODBC

小规模时可以选择嵌入式数据库,但大规模时通常选择Oracle数据库。

另一点就是PSC,小规模也是内嵌,但大规模、多VC最好使用单独的一个psc

wKiom1njeJzDcyZsAAL23GkClMQ622.png-wh_50
wKiom1njeJzDcyZsAAL23GkClMQ622.png-wh_50

还有就是VCNEGER是部署在windows系统上的,后面一般是SQL SERVER 数据库。sql2008 R2可以用于小型部署(最多5个主机和 50 个虚拟机)的捆绑数据库。

如果VCENTER部署的VCENTER SERVER APPLIANCE,则在

vCenter Server Appliance 5.0.1 版本后对嵌入式数据库使用的是 PostgreSQL, 而非 IBM DB2(IBM DB2 在 vCenter Server Appliance 5.0 中使用)。

外部的数据库一般多是oracle,需要在windows的VCENTER中配置ODBC和启用VCENTER相关服务.如果是vCenter Server Appliance就不用了。

vCenter Server Appliance 6.0以下不支持 IPv6,6.5是支持的。

wKiom1njepqTKZBlAANlzTCLCg4116.png-wh_50
wKiom1njepqTKZBlAANlzTCLCg4116.png-wh_50
wKiom1njemuzILDhAAIXwEeZSKw602.png-wh_50
wKiom1njemuzILDhAAIXwEeZSKw602.png-wh_50

注意:

vCenter Server Appliance 5嵌入式数据库配置为管理包含 5 台以上主机和 50 个以上虚拟机的清单。如果将嵌入式数据库与 vCenter Server Appliance 配合使用,则超出这些限制会引起许多问题,包括导致 vCenter Server 停止响应。

vCenterServer 6.0默认捆绑的PostgreSQL数据库适用于最多包含20 个主机和200个虚拟机的环境。对于vCenterServer Appliance,可在最多包含1,000个主机和10,000个虚拟机的环境中使用嵌入式PostgreSQL数据库,但嵌入的数据库卸载就随VC APPLIANCE没了,我们生产都是外接的oracle数据库。

在5.5版本中,即使是外链的ORACLE数据库,也不能超过50GB、表行数超8亿,否则升级到6.0时超满,需要做清理才能升。

wKiom1nje-7S0Of4AAKGrS-RZ8Y623.png
wKiom1nje-7S0Of4AAKGrS-RZ8Y623.png

补充清理数据库的语句:

use vcdb;--vcdb是vCenter数据库的名称,如果是其它名称,请将脚本中所有的vcdb更换成实际的名称。

deletefrom dbo.VPX_EVENT_ARG;--删除事件日志表

12.

deletefromdbo.VPX_EVENT;--删除事件日志表

droptable dbo.VPX_HIST_STAT1;--删除表dbo.VPX_HIST_STAT1;

16.

droptable dbo.VPX_HIST_STAT2;--删除表dbo.VPX_HIST_STAT2;

17.

droptable dbo.VPX_HIST_STAT3;--删除表dbo.VPX_HIST_STAT3;

18.

droptable dbo.VPX_HIST_STAT4;--删除表dbo.VPX_HIST_STAT4;

USE [VCDB]

/****** 重建表对象:Table [dbo].[VPX_HIST_STAT1]脚本日期:  12/17/2013 15:32:57 ******/

SETANSI_NULLSON

GO

SETQUOTED_IDENTIFIERON

GO

CREATETABLE [dbo].[VPX_HIST_STAT1](

[COUNTER_ID]  [bigint] NOTNULL,

[TIME_ID] [bigint]  NOTNULL,

[STAT_VAL]  [bigint] NOTNULL

)ON [PRIMARY]

/****** 重建表对象:Table [dbo].[VPX_HIST_STAT1]完成******/

USE [VCDB]

/****** 重建表对象:Table [dbo].[VPX_HIST_STAT2]脚本日期:  12/17/2013 15:33:30 ******/

SETANSI_NULLSON

GO

SETQUOTED_IDENTIFIERON

GO

CREATETABLE [dbo].[VPX_HIST_STAT2](

[COUNTER_ID]  [bigint] NOTNULL,

[TIME_ID] [bigint]  NOTNULL,

[STAT_VAL]  [bigint] NOTNULL

)ON [PRIMARY]

/****** 重建表对象:Table [dbo].[VPX_HIST_STAT2]完成脚本日期:  12/17/2013 15:33:30 ******/

USE [VCDB]

GO

/****** 重建表对象:Table [dbo].[VPX_HIST_STAT3]脚本日期:  12/17/2013 15:34:20 ******/

SETANSI_NULLSON

GO

SETQUOTED_IDENTIFIERON

GO

CREATETABLE [dbo].[VPX_HIST_STAT3](

[COUNTER_ID]  [bigint] NOTNULL,

[TIME_ID] [bigint]  NOTNULL,

[STAT_VAL]  [bigint] NOTNULL

)ON [PRIMARY]

/****** 重建表对象:Table [dbo].[VPX_HIST_STAT3]完成  ******/

USE [VCDB]

GO

/****** 重建表对象:Table [dbo].[VPX_HIST_STAT4]脚本日期:  12/17/2013 15:34:57 ******/

SETANSI_NULLSON

GO

SETQUOTED_IDENTIFIERON

GO

CREATETABLE [dbo].[VPX_HIST_STAT4](

[COUNTER_ID]  [bigint] NOTNULL,

[TIME_ID] [bigint]  NOTNULL,

[STAT_VAL]  [bigint] NOTNULL

)ON [PRIMARY]

/****** 重建表对象:Table [dbo].[VPX_HIST_STAT4]完成  ******/

/****** 收缩数据库  ******/

USE [VCDB]

GO

DBCC  SHRINKDATABASE(N'VCDB')

GO

/****** 收缩数据库  ******/

到了6.5版本,功能更强,内嵌和外链的数据库规模差别就不大了。

wKiom1njfITRu2sFAAEJSUDIyE4848.png
wKiom1njfITRu2sFAAEJSUDIyE4848.png

另一个问题

如何让Linux版VMware vCenter支持MySQL

研究微软SQL的定义表格,使MySQL表最接近微软SQL表。以文件/usr/lib/vmware-vpx/VCDB_mssql.sql开始,我创建了一个后来VCDB_mysql.sql文件。

  转换如下,然而这些变化将迫使vCenter只支持UTF - 8的字符串。你可以轻松地支持UTF - 16 ,但在规模指数为1000字节的MySQL,还是有一定限度的,并且有些类型的nvarchar领域会延伸并通过这个限制。

  NTEXT类型转换为TEXT类型或BLOB类型 (如果你想支持UTF - 16 ) NVARCHAR类型转换为VARCHAR nvarchar类型转换为varchar

ACCESSIBLE和INTERVAL被视为MySQL的关键字所以他们需要使下面的转换:

INTERNAL to `INTERVAL`

ACCESSIBLE to `ACCESSIBLE`

  最后,在Microsoft SQL Server和MySQL一些相同的功能,不会做同样的事情-特别是isnull函数。这是MySQL中的一个争论点,而不是等同于isnull函数的Microsoft SQL或Oracle的nvl函数。这一变化情况如下:

isnull change to ifnull

ISNULL changed to IFNULL

  此外,与微软SQL相比,MySQL中的CAST函数有不同的参数。我不得不改变CAST,通过SIGNED类型而不是BIGINT ,来转换数字;因为在MySQL的CAST函数不支持BIGINT。此外,len不是一个有效的MySQL函数,所以我们还必须将上面提到的两个数据库声明修改为LENGTH,而不是LEN。

  最后一个问题是大小写问题。一切在Linux是区分大小写的,包括MySQL的数据库名称,因此最后的变化是转换大小写。

vpx_sequence to VPX_SEQUENCE

vpx_object_type to VPX_OBJECT_TYPE

vpx_lock to VPX_LOCK

vpx_version to VPX_VERSION

使用以下命令提交新架构到MySQL数据库服务器。注意:你应该使用你的MySQL服务器的IP地址,替换IPOfMySQLServer 参数,你的MySQL用户名代替MySQLUserName参数 ,而且命令将要求输入密码。

mysql -p -h IPOfMySQLServer -u MySQLUserName < VCDB_mysql.sql

  现在,剩下的所有都是解决一些STATS的存储程序,撤消和删除数据库。

  但是,即使所有这些更新后, MySQL尝试仍然失败,因为vpxd服务不承认MySQL是一个有效的数据库。但是,通过Linux的一些具体的工具,我发现, PostgreSQL是一个有效的数据库。

  对于GNU / Linux的基于vCenter服务器来说,开源数据库的支持是必须的。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-10-15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档