有多种方式可在 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.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=
注意:如果注册成功,您将看到类似于以下内容的输出:
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.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 服务,或考虑重新引导服务器。
使用 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 服务,或考虑重新引导服务器。