-
vCloud Director 将匹配存储策略/配置文件名称。需要记录此名称,并在重置 Inventory Service 数据库后重新创建完全一致的存储策略/配置文件。在创建同名的存储策略/配置文件后,下次进行同步时,vCloud Director 将选择该策略/配置文件以及关联的数据存储。除非触发,否则每 5 分钟进行一次同步。通过选择 vCenter Server,右键单击并选择
重新连接
,可以从 vCloud Cloud Director 触发同步。
-
如果 vCloud、vCenter Server 5.1 和 vCenter Server 5.5 环境中没有存储配置文件,则不会对 vCloud Director 产生预期影响。如果重置 Inventory Service 数据库,则 vCloud Director 与 vCenter Server 的连接将无法保持同步,而且 vCloud Director 不会拥有关于受管虚拟机的精确信息。
-
重置 Inventory Service 数据库时,您当前通过 vSphere Profile-Driven Storage Service 使用的任何存储配置文件都将丢失。
-
所有标签将在重置过程中删除。
-
如果 vCenter Server 是 vCenter Server Heartbeat 的一部分,则需要在执行这些步骤之前停止复制。此外,运行重新指向 Inventory Service 的操作时,必须使用公共 IP。操作完成后,请重新启动 vCenter Server Heartbeat 服务,以便恢复复制操作。
-
如果 vCenter Server 环境中存在 Site Recovery Manager,并且您重置了 Inventory Service 数据库,则需要通过 Windows
程序和功能
在 Site Recovery Manager 上运行
更改/修改
和修复操作,以便向 vCenter Server 和 Inventory Service 重新注册 Site Recovery Manager。
-
如果环境使用 VEEAM 执行备份操作,则作业必须重新映射到虚拟机。
-
运行这些步骤之前应禁用链接模式。有关详细信息,请参见
Disabling Linked Mode for VMware vCenter Server 4.x and 5.x (1010432)
。
注意
:此问题不会影响 VMware View 环境。
Symptoms:
免责声明
: 本文为
Resetting the VMware vCenter Server 5.x Inventory Service database (2042200)
的翻译版本。 尽管我们会不断努力为本文提供最佳翻译版本,但本地化的内容可能会过时。 有关最新内容,请参见英文版本。
有多种方式可在 VMware vCenter Server 5.x 中重置 Inventory Service 数据库:
使用命令提示符重置 VMware vCenter Server 5.5/5.1 Inventory Service 数据库
:
注意
:如果您将 vCenter Server 安装在默认的C:\Program Files\以外的位置,请按照以下步骤相应地调整路径。
-
停止 vCenter Inventory Service:
-
从 Windows 的“管理工具”控制面板中,单击服务。
-
右键单击
VMware vCenter Inventory Service
,然后单击停止。
-
备份当前的 Inventory Service 数据库。有关详细信息,请参见
vSphere Installation and Setup
指南中的“在 Windows 上备份 Inventory Service 数据库”部分。
-
单击开始>运行,键入
cmd
,然后单击确定。此时将打开命令提示符窗口。
-
通过运行以下命令备份
xdb.bootstrap
文件头:
type "C:\Program Files\VMware\Infrastructure\Inventory Service\data\xdb.bootstrap"|findstr "<server" > "C:\Program Files\VMware\Infrastructure\Inventory Service\datahash1234321.txt"
-
重命名文件夹
C:\Program Files\VMware\Infrastructure\Inventory Service\data。
例如:
C:\Program Files\VMware\Infrastructure\Inventory Service\data.old
-
通过运行以下命令将目录更改为
C:\Program Files\VMware\Infrastructure\Inventory Service\scripts:
cd C:\Program Files\VMware\Infrastructure\Inventory Service\scripts
-
运行不带参数的
createDB.bat
命令,重置 vCenter Server Inventory Service 数据库。
-
还原
xdb.bootstrap
文件头。复制在步骤 3 创建的
datahash1234321.txt
的内容,并替换新创建的
xdb.bootstrap
文件中的行
<server version...>。
例如:
注意
:必须更新加粗的文本。
<?xml version="1.0" encoding="UTF-8"?>
<server version="xDB 9.0" pagesize="4096" license="025ByMJA6x1ZN#yYPyXyYTXQxSPQvdgXQEGP7PM5I" passwd="ay3OudfeqezYy+7vcdVYVWPrZjqi7rELGMsWhE9x">
<log path="log" id="1388782839740" keep-log-files="false"/>
替换为
datahash1234321.txt
中的内容:
<?xml version="1.0" encoding="UTF-8"?>
<server version="xDB 1.0" pagesize="4096" license="025ByMJA6x1ZN#yYPyXyYTXQxSPQvdgXQEGP7PM5I" passwd="+3umz7whoCOr4iWkW2f2bqDUzkz5RVaesfaJ4g5H">
<log path="log" id="1388782839740" keep-log-files="false"/>
-
启动 VMware vCenter Inventory Service:
-
从 Windows 的“管理工具”控制面板中,单击服务。
-
右键单击VMware vCenter Inventory Service,然后单击启动。
-
通过运行以下命令将目录更改为
C:\Program Files\VMware\Infrastructure\VirtualCenter Server\isregtool:
cd C:\Program Files\VMware\Infrastructure\VirtualCenter Server\isregtool
-
运行register-is.bat命令更新 Inventory Service 已存储的配置信息:
register-is.bat
vCenter_Server_URL Inventory_Service_URL Lookup_Service_URL
例如:
register-is.bat https://machinename.corp.com:443/sdk https://machinename.corp.com:10443 https://machinename.corp.com:7444/lookupservice/sdk
在此示例中,443、10443和7444分别是 vCenter Server、Inventory Service 和 vCenter Single Sign-On (SSO) 的默认 HTTPS 端口号。如果您使用自定义端口,请将示例中的端口号替换为正在使用的端口号。
注意:为了在运行上述命令时节省时间,您可以将machinename.corp.com替换为环境变量。使用以下命令创建环境变量:
set vcenter=machinename.corp.com
重置数据库后,您可以运行以下命令清除环境变量:
set vcenter=
注意
:如果注册成功,您将看到类似于以下内容的输出:
Shutting down CompiledHttpConfiguration@191758420 as there are no more clients.
Client was disposed successfully
Registration completed
Finished performing register action
0
0
-
重新启动 VMware VirtualCenter Server 服务。vCenter Inventory Service 数据库现已重置。
-
等待五分钟,尝试在 vCenter Server 中使用搜索功能,以便验证 Inventory Service 是否已正确启动。
使用命令提示符重置 VMware vCenter Server 5.0 Inventory Service 数据库
:
注意
:如果您将 vCenter Server 安装在默认的C:\Program Files\以外的位置,请按照以下步骤相应地调整路径。
-
停止 vCenter Inventory Service:
-
从 Windows 的“管理工具”控制面板中,单击
服务
。
-
右键单击
VMware vCenter Inventory Service
,然后单击
停止
。
-
单击
开始>运行
,键入cmd,然后单击
确定
。此时将打开命令提示符窗口。
-
通过运行以下命令备份
xdb.bootstrap
文件头:
type "C:\Program Files\VMware\Infrastructure\Inventory Service\data\xdb.bootstrap"|findstr "<server" > "C:\Program Files\VMware\Infrastructure\Inventory Service\datahash1234321.txt"
-
重命名文件夹
C:\Program Files\VMware\Infrastructure\Inventory Service\data。
例如:
C:\Program Files\VMware\Infrastructure\Inventory Service\data.old
-
通过运行以下命令将目录更改为
C:\Program Files\VMware\Infrastructure\Inventory Service\scripts:
cd C:\Program Files\VMware\Infrastructure\Inventory Service\scripts
-
运行不带参数的createDB.bat命令,重置 vCenter Server Inventory Service 数据库。
-
通过复制在步骤 3 创建的
datahash1234321.txt
的内容还原
xdb.bootstrap
文件头,并替换新创建的
xdb.bootstrap
文件中的行
<server version...>。
例如:
注意
:只更新加粗的文本。
<?xml version="1.0" encoding="UTF-8"?>
<server version="xDB 9.0" pagesize="4096" license="025ByMJA6x1ZN#yYPyXyYTXQxSPQvdgXQEGP7PM5I" passwd="ay3OudfeqezYy+7vcdVYVWPrZjqi7rELGMsWhE9x">
<log path="log" id="1388782839740" keep-log-files="false"/>
替换为 datahash1234321.txt 中的内容:
<?xml version="1.0" encoding="UTF-8"?>
<server version="xDB 1.0" pagesize="4096" license="025ByMJA6x1ZN#yYPyXyYTXQxSPQvdgXQEGP7PM5I" passwd="+3umz7whoCOr4iWkW2f2bqDUzkz5RVaesfaJ4g5H">
<log path="log" id="1388782839740" keep-log-files="false"/>
-
运行以下命令更新 Inventory Service 已存储的配置信息:
register.bat
vCenter_Server_FQDN
vCenter_Server_HTTPS_port
例如,如果 vCenter Server 的完全限定域名 (FQDN) 为
machinename.corp.com
,而且 HTTPS 端口为443,则运行以下命令:
register.bat machinename.corp.com 443
-
启动 vCenter Inventory Service:
-
从 Windows 的“管理工具”控制面板中,单击服务。
-
右键单击
VMware vCenter Inventory Service
,然后单击启动。
-
等待五分钟,尝试在 vCenter Server 中使用搜索功能,以便验证 Inventory Service 是否已正确启动。如果搜索功能未按预期运行,请尝试重新启动 VMware VirtualCenter Server 服务,或考虑重新引导服务器。
使用 PowerShell 重置 VMware vCenter Server 5.5/5.1 Inventory Service 数据库
:
注意:如果您将 vCenter Server 安装在默认的C:\Program Files\以外的位置,请按照以下步骤相应地调整路径。
-
停止 vCenter Inventory Service:
-
从 Windows 的“管理工具”控制面板中,单击服务。
-
右键单击
VMware vCenter Inventory Service
,然后单击停止。
-
打开 PowerShell 提示符。
-
通过运行以下命令备份
xdb.bootstrap
文件头:
Get-Content 'C:\Program Files\VMware\Infrastructure\Inventory Service\data\xdb.bootstrap' | Select-String -pattern "<server" | ForEach-Object { $_.line } | Out-File 'C:\Program Files\VMware\Infrastructure\Inventory Service\datahash1234321.txt'<BR>
-
运行以下命令移除
C:\Program Files\VMware\Infrastructure\Inventory Service\data
目录的全部内容:
Move-Item "C:\Program Files\VMware\Infrastructure\Inventory Service\data" "C:\Program Files\VMware\Infrastructure\Inventory Service\data_old"
-
运行不带参数的createDB.bat命令,重置 vCenter Server Inventory Service 数据库:
Start-Process "C:\Program Files\VMware\Infrastructure\Inventory Service\scripts\createDB.bat"
注意
:执行批处理文件期间会短暂显示命令提示符。
-
通过运行以下命令还原
xdb.bootstrap
文件头:
$oldcontent = [IO.FILE]::ReadAllText("C:\Program Files\VMware\Infrastructure\Inventory Service\datahash1234321.txt"); $newcontent = [IO.FILE]::ReadAllText("C:\Program Files\VMware\Infrastructure\Inventory Service\data\xdb.bootstrap"); $newcontent -replace "<server.+" , "$oldcontent" | Out-File "C:\Program Files\VMware\Infrastructure\Inventory Service\data\xdb.bootstrap"; remove-item "C:\Program Files\VMware\Infrastructure\Inventory Service\datahash1234321.txt"<BR>
-
启动 VMware vCenter Inventory Service:
-
从 Windows 的“管理工具”控制面板中,单击服务。
-
右键单击
VMware vCenter Inventory Service
,然后单击启动。
-
使用 vCenter Server 重新注册 vCenter Inventory Service
-
运行以下命令,在 PowerShell 中启动命令提示符:
cmd.exe
-
通过运行以下命令将目录更改为
C:\Program Files\VMware\Infrastructure\VirtualCenter Server\isregtool:
cd C:\Program Files\VMware\Infrastructure\VirtualCenter Server\isregtool
-
运行
register-is.bat
命令更新 Inventory Service 已存储的配置信息:
register-is.batvCenter_Server_URL Inventory_Service_URL Lookup_Service_URL
例如:
register-is.bat https://machinename.corp.com:443/sdk https://machinename.corp.com:10443 https://machinename.corp.com:7444/lookupservice/sdk
在此示例中,443、10443和7444分别是 vCenter Server、Inventory Service 和 vCenter Single Sign-On (SSO) 的默认 HTTPS 端口号。如果您使用自定义端口,请将示例中的端口号替换为正在使用的端口号。
注意:为了在运行上述命令时节省时间,您可以将
machinename.corp.com
替换为环境变量。使用以下命令创建环境变量:
set vcenter=machinename.corp.com
重置数据库后,您可以使用以下命令清除环境变量:
set vcenter=
-
执行以下命令,退出嵌套命令提示符:
退出
-
重新启动 vCenter Server。vCenter Inventory Service 数据库现已重置。
-
等待五分钟,尝试在 vCenter Server 中使用搜索功能,以便验证 Inventory Service 是否已正确启动。
使用 PowerShell 重置 VMware vCenter Server 5.0 Inventory Service 数据库
:
注意
:如果您将 vCenter Server 安装在默认的
C:\Program Files\
以外的位置,请按照以下步骤相应地调整路径。
-
停止 vCenter Server Inventory Service:
-
从 Windows 的“管理工具”控制面板中,单击服务。
-
右键单击
VMware vCenter Inventory Service
,然后单击停止。
-
打开 PowerShell 提示符。
-
通过运行以下命令备份
xdb.bootstrap
文件头:
Get-Content 'C:\Program Files\VMware\Infrastructure\Inventory Service\data\xdb.bootstrap' | Select-String -pattern "<server" | ForEach-Object { $_.line } | Out-File 'C:\Program Files\VMware\Infrastructure\Inventory Service\datahash1234321.txt'</SPAN>
-
运行以下命令移除
C:\Program Files\VMware\Infrastructure\Inventory Service\data目录的全部内容:
Move-Item "C:\Program Files\VMware\Infrastructure\Inventory Service\data" "C:\Program Files\VMware\Infrastructure\Inventory Service\data_old"
-
运行不带参数的
createDB.bat
命令,重置 vCenter Server Inventory Service 数据库:
Start-Process "C:\Program Files\VMware\Infrastructure\Inventory Service\scripts\createDB.bat"
注意
:执行批处理文件期间会短暂显示命令提示符。
-
通过运行以下命令还原
xdb.bootstrap
文件头:
$oldcontent = [IO.FILE]::ReadAllText("C:\Program Files\VMware\Infrastructure\Inventory Service\datahash1234321.txt"); $newcontent = [IO.FILE]::ReadAllText("C:\Program Files\VMware\Infrastructure\Inventory Service\data\xdb.bootstrap"); $newcontent -replace "<server.+" , "$oldcontent" | Out-File "C:\Program Files\VMware\Infrastructure\Inventory Service\data\xdb.bootstrap"; remove-item "C:\Program Files\VMware\Infrastructure\Inventory Service\datahash1234321.txt"<BR>
-
使用 vCenter Server 重新注册 vCenter Inventory Service
-
运行以下命令,在 PowerShell 中启动命令提示符:
cmd.exe
-
通过运行以下命令将目录更改为
C:\Program Files\VMware\Infrastructure\Inventory Service\scripts:
cd C:\Program Files\VMware\Infrastructure\Inventory Service\scripts
-
运行以下命令更新 Inventory Service 已存储的配置信息:
register.batvCenter_Server_FQDNvCenter_Server_HTTPS_port
例如,如果 vCenter Server 的完全限定域名 (FQDN) 为machinename.corp.com,而且 HTTPS 端口为443,则运行以下命令:
register.bat machinename.corp.com 443
-
执行以下命令,退出嵌套命令提示符:
退出
-
启动 vCenter Inventory Service:
-
从 Windows 的“管理工具”控制面板中,单击服务。
-
右键单击VMware vCenter Inventory Service,然后单击启动。
-
等待五分钟,尝试在 vCenter Server 中使用搜索功能,以便验证 Inventory Service 是否已正确启动。如果搜索功能未按预期工作,请尝试重新启动 VMware VirtualCenter Server 服务,或考虑重新引导服务器。