无法启动 Inventory Service
search cancel

无法启动 Inventory Service

book

Article ID: 301193

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

Symptoms:
免责声明: 本文是 Unable to start the Inventory Services (2150983) 的翻译版本。 尽管我们会不断努力为本文提供最佳翻译版本,但本地化的内容可能会过时。 有关最新内容,请参见英文版本。

 
  • 无法启动 Inventory Service。
     
  • 您会看到以下错误:

2017-03-30T20:52:20.579Z State for service invsvc: STOPPED
2017-03-30T20:53:00.620Z Error waiting for service invsvc start. Exit code: 1066 Current State: 1ERROR:root:Unable to start service invsvc, Exception: {"resolution": null,"detail": [{"args": ["invsvc"],"id": "install.ciscommon.service.failstart","localized": "An error occurred while starting service 'invsvc'","translatable": "An error occurred while starting service '%(0)s'"}],"componentKey":null,"problemId": null}Unable to start service invsvc, Exception: {"resolution": null,"detail": [{"args": ["invsvc"],"id": "install.ciscommon.service.failstart","localized": "An erroroccurred while starting service 'invsvc'",
"translatable": "An error occurred while starting service '%(0)s'"}],"componentKey": null,"problemId": null}Invsvc.log (Scenario 1)Caused by: m.vmware.vim.query.server.kvlocal.impl.exception.KVInternalException: Unable to populate existing providers:at m.vmware.vim.query.server.kvlocal.impl.VCDBKVManagerImpl.init(VCDBKVManagerImpl.java:76)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)... 84 moreCaused by: com.vmware.vim.query.server.kvlocal.impl.exception.KVExecutionException: SQL Error:at com.vmware.vim.query.server.kvlocal.impl.KVUtil.createAndLogExecutionException(KVUtil.java:153)atcom.vmware.vim.query.server.kvlocal.impl.provider.VCDBProviderFactory.getConnection(VCDBProviderFactory.java:116)... 91 moreCaused by: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Login failed for user 'CORPORATE\PDC-VCENTER01$'. ClientConnectionId:17edb35c-d8ab-4950-8846-284beb2afb50)at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549)... 94 moreCaused by: com.microsoft.sqlserver.jdbc.SQLServerException: Login failed for user 'CORPORATE\PDC-VCENTER01$'. ClientConnectionId:17edb35c-d8ab-4950-8846-284beb2afb50invsvc.log [Scenario 2]
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'localKvManager' defined in class path resource [server/config/query-server-config.xml]: Invocation of init method failed; nested exception is com.vmware.vim.query.server.kvlocal.impl.exception.KVInternalException: Unable to populate existing providers:at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1514)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:521)...75 moreCaused by: com.vmware.vim.query.server.kvlocal.impl.exception.KVInternalException: Unable to populate existing providers:at com.vmware.vim.query.server.kvlocal.impl.VCDBKVManagerImpl.init(VCDBKVManagerImpl.java:76)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)...84 moreCaused by: com.vmware.vim.query.server.kvlocal.impl.exception.KVExecutionException: SQL Error:at com.vmware.vim.query.server.kvlocal.impl.KVUtil.createAndLogExecutionException(KVUtil.java:153)at com.vmware.vim.query.server.kvlocal.impl.VCDBKVManagerImpl.init(VCDBKVManagerImpl.java:72)...91 moreCaused by: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Cannot open database "vCenter" requested by the login.The login failed.ClientConnectionId:3eba6484-4358-4e46-b07d-55bb87337021)at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549)at com.vmware.vim.query.server.kvlocal.impl.provider.VCDBProviderFactory.getConnection(VCDBProviderFactory.java:94)...94 moreCaused by: com.microsoft.sqlserver.jdbc.SQLServerException: Cannot open database "vCenter" requested by the login.The login failed.ClientConnectionId:3eba6484-4358-4e46-b07d-55bb87337021at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:216)at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:254)

  • invsvc.log 中,您会看到以下内容(vCenter Appliance 中的日志片段):

Caused by: com.vmware.vim.query.server.kvlocal.impl.exception.KVInternalException: Unable to populate existing providers:
at com.vmware.vim.query.server.kvlocal.impl.VCDBKVManagerImpl.init(VCDBKVManagerImpl.java:76)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
... 84 more
Caused by: com.vmware.vim.query.server.kvlocal.impl.exception.KVExecutionException: SQL Error:
at com.vmware.vim.query.server.kvlocal.impl.KVUtil.createAndLogExecutionException(KVUtil.java:153)
at com.vmware.vim.query.server.kvlocal.impl.provider.VCDBProviderFactory.getConnection(VCDBProviderFactory.java:116)
... 91 more
Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (FATAL: the database system is starting up)
at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549)
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)
... 94 more
Caused by: org.postgresql.util.PSQLException: FATAL: the database system is starting up
at org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:276)
at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:66)

 

  • vpostgres.log 中,您会看到以下日志:

2017-03-30 13:17:26.909 PDT 58caa140.b60 0 VCDB vc FATAL: terminating connection due to administrator command
2017-03-30 13:17:26.909 PDT 58caa013.149c 0 LOG: autovacuum launcher shutting down
2017-03-30 13:17:26.937 PDT 58caa013.149c 0 ERROR: canceling statement due to user request
2017-03-30 13:17:26.937 PDT 58caa013.149c 0 LOG: autovacuum launcher shutting down
2017-03-30 13:17:26.944 PDT 58caa013.14ac 0 ERROR: canceling statement due to user request
2017-03-30 13:17:26.944 PDT 58caa013.14ac 0 CONTEXT: SQL statement "SELECT 1;"
2017-03-30 13:17:30.855 PDT 58dd67da.f760 0 VCDB vc FATAL: the database system is shutting down
2017-03-30 13:17:31.074 PDT 58dd67db.eda4 0 VCDB vc FATAL: the database system is shutting down

  • Invsvc.log 中,您会看到以下日志(Windows VC 的日志片段)

Caused by: java.io.IOException: SQL Server did not return a response. The connection has been closed. ClientConnectionId:e2359597-0751-4d20-9bf5-e633da73f8ba
at com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeInputStream.ensureSSLPayload(IOBuffer.java:651)
at com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeInputStream.readInternal(IOBuffer.java:708)
Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory
(The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer
(SSL) encryption. Error: "SQL Server did not return a response. The connection has been closed. ClientConnectionId:e2359597-0751-4d20-9bf5-e633da73

 

注意:此日志摘要是一个示例。日期、时间和环境变量可能会因环境而有所不同。



Environment

VMware vSphere ESXi 6.0

Resolution

在继续进行故障排除之前,请务必验证以下内容:

  1. 检查 ODBC 连接。
  2. 检查启动 vCenter 服务的帐户的数据库访问权限。
  3. 确保已使用同一登录帐户启动 vCenter 服务和 Inventory Service。
  4. 如果使用不同的数据库帐户更改 ODBC 连接,请使用 vpxd -p 重置数据库密码。
  5. 增加 Inventory Service 的堆大小。
  6. 检查 c:\programdata\vmware\vCenterServer\cfg\vmware-vpx\vpxd.cfg 文件的键值,以确保 SQL 帐户正确。
  7. 检查 c:\programdata\vmware\vCenterServer\cfg\vmware-vpx\vcdb.properties 并更新在 ODBC 连接中使用的正确用户名和密码。


场景 1:

如果您在日志中看到 'SQL Error' 后跟 'Login failed for user'

- 检查 ODBC 连接是否正常。

- 确保您有 vCenter Server 和 Inventory Service 使用同一帐户启动,且该帐户可访问 vCenter 数据库。
 

场景 2:

如果您在日志中看到 'SQL Error' 后跟 'Cannot open database <DSN Name> requested by the login. The login failed'

- 确保为启动 vCenter 服务的帐户设置数据库访问权限。如果您更改 vCenter 服务的登录帐户,请使用相同的帐户更改 Inventory Service 的登录帐户。


场景 3:

如果您在日志中看到'SQL Error'后跟“PSQLException: FATAL: the database system is starting up”

  • ODBC 连接在测试连接期间失败。

    >Postgres 数据库确保您有有效的 ODBC 连接。ODBC 驱动程序“org.postgresql.Driver”可能已损坏,因此请重新启动 postgres 服务并验证连接。


场景 4:

如果您在日志中看到 'SQL Error' 后跟 'SQL Server did not return a response. The connection has been closed' or ' org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: "SQL Server did not return a response. The connection has been closed'

  • ODBC 连接失败。

>SQL 数据库SQL Server 本机客户端驱动程序正在遇到任何问题,可能需要重新安装 SQL Server 本机客户端。此问题针对 jdbc 驱动程序版本 1.7。
 

要临时解决此问题,请在 SQL Server 上重新启用 TLSv1.0,使用 vpxd -p 重置数据库密码并检查 ODBC 连接。