在 Azure 中將檔案還原到虛擬機器
Azure 備份建立儲存在異地備援復原保存庫的復原點。 當您從復原點還原時,可以還原整個 VM 或個別檔案。 本文詳細說明如何還原個別檔案。 在本教學課程中,您將了解如何:
- 列出和選取復原點
- 將復原點連線到 VM
- 從復原點還原檔案
必要條件
本教學課程需要已使用 Azure 備份保護的 Linux VM。 若要模擬意外刪除檔案和復原程序,您可以從網頁伺服器刪除頁面。 如果您需要執行網頁伺服器並已使用 Azure 備份保護的 Linux VM,請參閱使用 CLI 在 Azure 中備份虛擬機器。
準備您的環境:
在 Azure Cloud Shell 中使用 Bash 環境。 如需詳細資訊,請參閱 Azure Cloud Shell 中的 Bash 快速入門。
若要在本地執行 CLI 參考命令,請安裝 Azure CLI。 若您在 Windows 或 macOS 上執行,請考慮在 Docker 容器中執行 Azure CLI。 如需詳細資訊,請參閱〈如何在 Docker 容器中執行 Azure CLI〉。
如果您使用的是本機安裝,請使用 az login 命令,透過 Azure CLI 來登入。 請遵循您終端機上顯示的步驟,完成驗證程序。 如需其他登入選項,請參閱使用 Azure CLI 登入。
出現提示時,請在第一次使用時安裝 Azure CLI 延伸模組。 如需擴充功能詳細資訊,請參閱使用 Azure CLI 擴充功能。
執行 az version 以尋找已安裝的版本和相依程式庫。 若要升級至最新版本,請執行 az upgrade。
- 本文需要 2.0.18 版或更新版本的 Azure CLI。 如果您是使用 Azure Cloud Shell,就已安裝最新版本。
備份概觀
當 Azure 起始備份時,VM 上的備份擴充功能會建立時間點快照集。 此備份擴充功能會在要求第一個備份時安裝在 VM 上。 如果進行備份時 VM 不在執行中,Azure 備份也可以建立基礎儲存體的快照集。
根據預設,Azure 備份會建立檔案系統一致的快照集。 Azure 備份建立快照集之後,資料會傳輸至復原服務保存庫。 為了能更有效率,Azure 備份只會找出並傳輸自上次備份之後有變更的資料區塊。
資料傳輸完畢後,系統會移除快照集並建立復原點。
從 VM 刪除檔案
如果您意外刪除或變更檔案,您可以從復原點還原個別檔案。 此程序可讓您瀏覽復原點中備份的檔案,只還原所需的檔案。 在此範例中,我們會從網頁伺服器刪除檔案,以示範檔案層級復原程序。
若要連線到您的 VM,請使用 az vm show 取得 VM 的 IP 位址:
az vm show --resource-group myResourceGroup --name myVM -d --query [publicIps] --o tsv
若要確認您的網站目前運作正常,請將網頁瀏覽器開啟到 VM 的公用 IP 位址。 保持開啟網頁瀏覽器視窗。
透過 SSH 連線到您的 VM。 以您在上一個命令中取得的公用 IP 位址取代 publicIpAddress:
ssh publicIpAddress
從網頁伺服器刪除預設頁面 (/var/www/html/index.nginx-debian.html),如下所示:
sudo rm /var/www/html/index.nginx-debian.html
在您的網頁瀏覽器中,重新整理網頁。 網站不會再載入頁面,如下列範例所示:
關閉 VM 的 SSH 工作階段,如下所示:
exit
產生檔案復原指令碼
為了還原您的檔案,Azure 備份會提供指令碼,以在作為本機磁碟區連線到復原點的 VM 上執行。 您可以瀏覽此本機磁碟機、將檔案還原到 VM 本身,然後中斷復原點連線。 Azure 備份會根據排程和保留的指派原則,繼續備份您的資料。
若要列出您 VM 的復原點,請使用 az backup recoverypoint list。 在此範例中,我們為 myRecoveryServicesVault 中受保護的 VM (名為 myVM) 選取最近的復原點:
az backup recoverypoint list \ --resource-group myResourceGroup \ --vault-name myRecoveryServicesVault \ --container-name myVM \ --item-name myVM \ --query [0].name \ --output tsv
若要取得將復原點連線或掛接到 VM 的指令碼,請使用 az backup restore files mount-rp。 下列範例會取得 myRecoveryServicesVault 中受保護之 VM (名為 myVM) 的指令碼。
以您在上一個命令中取得的復原點名稱取代 myRecoveryPointName:
az backup restore files mount-rp \ --resource-group myResourceGroup \ --vault-name myRecoveryServicesVault \ --container-name myVM \ --item-name myVM \ --rp-name myRecoveryPointName
這會下載指令碼並顯示密碼,如下列範例所示:
File downloaded: myVM_we_1571974050985163527.sh. Use password c068a041ce12465
若要將指令碼傳送至您的 VM,請使用安全複製 (SCP)。 提供已下載指令碼的名稱,並以您 VM 的公用 IP 位址取代 publicIpAddress。 確定您在 SCP 命令結尾包含尾端
:
,如下所示:scp myVM_we_1571974050985163527.sh 52.174.241.110:
將檔案還原到您的 VM
將復原指令碼複製到您的 VM 之後,您現在可以連線到復原點並還原檔案。
注意
請查看這裡,查看是否可以先在 VM 上執行指令碼,再繼續執行作業。
透過 SSH 連線到您的 VM。 以您 VM 的公用 IP 位址取代 publicIpAddress,如下所示:
ssh publicIpAddress
為了讓您的指令碼正確執行,請使用 chmod 新增執行權限。 輸入您自己的指令碼名稱:
chmod +x myVM_we_1571974050985163527.sh
若要掛接復原點,請執行指令碼。 輸入您自己的指令碼名稱:
./myVM_we_1571974050985163527.sh
當指令碼執行時,系統會提示您輸入密碼以存取復原點。 輸入透過上一個 az backup restore files mount-rp 命令產生復原指令碼之輸出中所顯示的密碼。
指令碼的輸出會提供復原點的路徑。 下列範例輸出顯示復原點掛接在 /home/azureuser/myVM-20170919213536/Volume1:
Microsoft Azure VM Backup - File Recovery ______________________________________________ Please enter the password as shown on the portal to securely connect to the recovery point. : c068a041ce12465 Connecting to recovery point using ISCSI service... Connection succeeded! Please wait while we attach volumes of the recovery point to this machine... ************ Volumes of the recovery point and their mount paths on this machine ************ Sr.No. | Disk | Volume | MountPath 1) | /dev/sdc | /dev/sdc1 | /home/azureuser/myVM-20170919213536/Volume1 ************ Open File Explorer to browse for files. ************
使用 cp 將 NGINX 預設網頁從已掛接的復原點複製回到原始檔案位置。 以您自己的位置取代 /home/azureuser/myVM-20170919213536/Volume1 掛接點:
sudo cp /home/azureuser/myVM-20170919213536/Volume1/var/www/html/index.nginx-debian.html /var/www/html/
在您的網頁瀏覽器中,重新整理網頁。 網站現在會正確載入,如下列範例所示:
關閉 VM 的 SSH 工作階段,如下所示:
exit
使用 az backup restore files unmount-rp 從您的 VM 卸載復原點。 下列範例會從 myRecoveryServicesVault 中名為 myVM 的 VM 卸載復原點。
以您在先前命令中取得的復原點名稱取代 myRecoveryPointName:
az backup restore files unmount-rp \ --resource-group myResourceGroup \ --vault-name myRecoveryServicesVault \ --container-name myVM \ --item-name myVM \ --rp-name myRecoveryPointName
下一步
在本教學課程中,您已將復原點連線到 VM 和網頁伺服器的已還原檔案。 您已了解如何︰
- 列出和選取復原點
- 將復原點連線到 VM
- 從復原點還原檔案
前進到下一個教學課程,以了解如何將 Windows Server 備份到 Azure。