NVP-vProxy:Data Protection Restore 用戶端未列出 SQL VM 備份
Summary: NetWorker VMware Protection (NVP) vProxy 用於備份Microsoft SQL 虛擬機器 (VM)。此環境包含多個 vCenter 環境,且 SQL VM 已複製到 NetWorker 實務以外的其他 vCenter。SQL VM 還原是從 Data Protection Restore 用戶端 (DPRC) 執行。DPRC 精靈不會顯示 VM 的 SQL 備份,也不會傳回任何錯誤。 ...
Symptoms
- Data Protection Restore 用戶端 (DPRC) 是從網頁瀏覽器存取:
https://NetWorker_Server_Address:9090/flr - 將選擇 “管理員 ”和 “應用 ”選項,並且使用者已成功進行身份驗證。
- 已指定來源 vCenter 和時間範圍,SQL VM 已選取,但不會顯示備份:
- 此環境包含多個 vCenter 伺服器。已選取要還原的 SQL VM 已複製 (或複製) 至新的 vCenter。VM 已存在 (或存在於) 兩個 vCenter 環境中。使用的複寫方法在 NetWorker 外部。
Cause
VM 是使用一種方法進行複製,會產生「複製」的 VMware 通用唯一識別符 (UUID)。NetWorker 媒體資料庫在兩個不同的 vCenter 下列出相同的 UUID。例如:
[root@nsr ~]# mminfo -avot -q vmname=SQLVM02 -r name | sort | uniq vm:503df65c-90cd-e729-13a4-2f5711ba5b85:MyOldvCente.amer.lan vm:503df65c-90cd-e729-13a4-2f5711ba5b85:MyNewvCenter.amer.lan
DPRC 使用 REST API 連線至 NetWorker 伺服器並列出備份。它會使用全域 REST API GET 要求,透過以下方式尋找 VM global/vmware/vms?q=Uuid:UUID。如以下資訊所示: flr-server.log。
- Linux:
/nsr/authc/logs/flr-server.log - Windows (預設):
C:\Program Files\EMC NetWorker\nsr\authc-server\tomcat\logs\flr-server.log
2026-04-08 13:43:42,855 [https-jsse-nio-9090-exec-4] INFO c.e.n.c.n.i.NwRestApiBase.buildWebResourceFromUri 171 - Call NW: [https://NETWORKER_SERVER_ADDRESS:9090/nwrestapi/v3/global/vmware/vms?q=Uuid:VM_UUID]
DPRC 無法提供備份,因為衝突的出現是因為出現在多個 vCenter 中的唯一識別符。相同的 REST API 呼叫會傳回兩個 vCenter:
Linux:
curl -k --user Administrator "https://localhost:9090/nwrestapi/v3/global/vmware/vms?q=Uuid:UUID
Windows:
curl.exe -k --user Administrator "https://localhost:9090/nwrestapi/v3/global/vmware/vms?q=Uuid:UUID
範例:
[root@nsr ~]# curl -k --user Administrator:'!Password1' "https://localhost:9090/nwrestapi/v3/global/vmware/vms?q=Uuid:503df65c-90cd-e729-13a4-2f5711ba5b85" | jq
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1213 0 1213 0 0 17328 0 --:--:-- --:--:-- --:--:-- 17328
{
"count": 2,
"vms": [
{
"annotation": "",
"connectionState": "connected",
"hostname": "SQLVM02",
"ipAddress": "192.168.9.10",
"ipAddresses": [
"192.168.9.10"
],
"links": [
{
"href": "https://localhost:9090/nwrestapi/v3/global/vmware/vcenters/MyNewvCenter.amer.lan/vms/503df65c-90cd-e729-13a4-2f5711ba5b85",
"rel": "item"
}
],
"morefId": "vm-1364",
"name": "SQLVM02",
"osId": "windows2019srv_64Guest",
"osName": "Microsoft Windows Server 2019 (64-bit)",
"powerState": "on",
"state": "running",
"status": "green",
"type": "VirtualMachine",
"uuid": "503df65c-90cd-e729-13a4-2f5711ba5b85",
"vCenterHostname": "MyNewvCenter.amer.lan",
"version": "vmx-18"
},
{
"annotation": "",
"connectionState": "connected",
"hostname": "",
"ipAddress": "",
"ipAddresses": [],
"links": [
{
"href": "https://localhost:9090/nwrestapi/v3/global/vmware/vcenters/MyOldvCenter.amer.lan/vms/503df65c-90cd-e729-13a4-2f5711ba5b85",
"rel": "item"
}
],
"morefId": "vm-15697",
"name": "SQLVM02",
"osId": "windows9Server64Guest",
"osName": "Microsoft Windows Server 2016 (64-bit)",
"powerState": "off",
"state": "notRunning",
"status": "gray",
"type": "VirtualMachine",
"uuid": "503df65c-90cd-e729-13a4-2f5711ba5b85",
"vCenterHostname": "MyOldvCenter.amer.lan",
"version": "vmx-18"
}
]
}
這不是預期的行為。UUID 的固有期望是它是唯一的。查詢 VM UUID 時,預期只會出現一個 vCenter 中一個 VM 的結果。
Resolution
由於 VMware 環境中的 UUID 衝突,無法從 DPRC 還原資料。如需因應措施,請參閱 「其他資訊 」一節。
以下步驟可以更正重複的 UUID;但是,這不會使現有的備份數據可恢復。以下變更是針對變更後及之後所進行之備份的修正措施。使用重複 UUID 的備份從 NetWorker 到期後,還原 UI 會使用其通用唯一 ID (UUID) 正確尋找 VM 備份。
- 針對重複的虛擬機器,將其從目前備份的任何 NetWorker 保護群組中移除。
- VMware 中新 VM 的強大威力。
- 從 vCenter 清查中取消註冊 VM (選取「從清查中移除」)。請勿 刪除虛擬機器。
- 重新註冊虛擬機器:瀏覽資料存放區,以滑鼠右鍵按一下
.vmx檔,然後選擇「註冊 VM」。 - 開啟虛擬機器電源。當 vCenter 提示時,選取「我複製了它」。這會強制 vSphere 產生全新的唯一 BIOS 和例項 UUID。
- 將虛擬機 (VM) 添加回在步驟 1 中刪除的保護組。
請參閱下列 VMware 說明文件,以瞭解複製 UUID 的影響:變更或保留已移動虛擬機器的 UUID
Additional Information
.mdf 和 .ldf 檔會從磁碟複製到 VM 上的另一個位置,並匯入到 SQL Server Management Studio (SSMS) 中。
先決條件:
- 復原所需的儲存集必須是資料庫儲存集,而不是
txnlog備份。您可以使用 NetWorker 伺服器來識別mminfo命令:
mminfo -avot -q vmname=SQL_VM-NAME
範例:
[root@nsr ~]# mminfo -avot -q vmname=win-sql01.amer.lan volume type client date time size ssid fl lvl name ... VMBackupPool.002 Data Domain vcsa.amer.lan 04/11/2026 11:38:14 AM 104 GB 4124732135 cr full vm:503ea434-0331-8ed6-8b19-b9cd408cce7a:vcsa.amer.lan VMBackupPool.002 Data Domain vcsa.amer.lan 04/11/2026 12:30:09 PM 2341 KB 4107958035 cr txnlog vm:503ea434-0331-8ed6-8b19-b9cd408cce7a:vcsa.amer.lan
可使用 full 備份是包括虛擬機磁碟 (VMDK) 的完整資料庫備份。可使用 txnlog 備份僅包含事務日誌,不包括資料庫。
- VM 備份必須位於 Data Domain 上,如果位於其他媒體類型 (Tape、CloudBoost、AFTD) 上,請將備份從磁帶複製到 vCenter 可存取的 Data Domain:NVP vProxy:如何從非 Data Domain 裝置手動複製 VM 儲存集到 Data Domain 複製裝置
- 以下文章將記錄建立 NFS 匯出並將其掛接至 VMware 和目標虛擬機器的程序:NetWorker:不使用 vProxy 裝置,手動掛接 FLR 程序的 Windows VM 儲存集磁碟
資料復原:
執行事前準備步驟後,應使用隨機磁碟機代號將包含 SQL 資料的 VM 磁碟掛接至 SQL VM。執行下列步驟:
- 複製 SQL 資料庫
.mdf和.ldf檔從附加磁碟到 VM 上的另一個位置。例如,在附加的磁碟中找到以下資料庫:
PS R:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA> dir
Directory: R:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA
Mode LastWriteTime Length Name
---- ------------- ------ ----
...
-a---- 4/10/2026 11:46 AM 8388608 NetWorkerSupport.mdf
-a---- 4/10/2026 11:32 AM 8388608 NetWorkerSupport_log.ldf
...
C:\tmp\RecoveredSQLdata:
PS C:\tmp\RecoveredSQLdata> dir
Directory: C:\tmp\RecoveredSQLdata
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 4/10/2026 11:46 AM 8388608 NetWorkerSupport.mdf
-a---- 4/10/2026 11:32 AM 8388608 NetWorkerSupport_log.ldf
- 請確定檔案和資料夾不是「唯讀」。在資料的資料夾路徑上按右鍵,確保未勾選「唯讀」。檔案也不得選取「唯讀」:
- 使用管理使用者帳戶登入 SQL Server Management Studio (SSMS)。
- 以滑鼠右鍵按一下資料庫,然後按一下附加。
- 在 「要連接的資料庫 」視窗中,按兩下 「添加」。瀏覽至位置
.mdf檔案已複製到並選取。 - 如果 SQL 伺服器包含與原始資料庫同名的資料庫,則必須重命名要導入的資料庫。選擇 「附加為 」欄位並重新命名資料庫,例如添加
_OLD。

- 按一下 確定,資料庫即會匯入 SQL Server Management Studio。
警告:任何許可權或基於操作系統的導入錯誤都必須由系統或資料庫管理員解決。
在此範例中,原始資料庫 NetWorkerSupport 存在,且會匯入備份副本「NetWorkerSupport_OLD」。

資料庫表包含備份時原始資料庫的內容:

SQL 資料隨即復原至系統,並由 SQL 資料庫管理員管理。資料復原後,不需要再從備份媒體取得資料,即可將磁碟與 VMware 分離。也可以從 VMware 分離暫時的 NFS 資料存放區,並移除 Data Domain 上的 NFS 匯出。這些清理步驟詳見下列文章的還原 後清理章節 : NetWorker:不使用 vProxy 裝置,手動掛接 FLR 程序的 Windows VM 儲存集磁碟