你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
将文件还原到 Azure 中的虚拟机
Azure 备份可创建恢复点,这些恢复点存储在异地冗余的恢复保管库中。 从恢复点还原时,可以还原整个 VM,也可以还原单个文件。 本文将详细介绍如何还原单个文件。 本教程介绍如何执行下列操作:
- 列出和选择恢复点
- 将恢复点连接到 VM
- 从恢复点还原文件
先决条件
本教程需要使用 Azure 备份所保护的 Linux VM。 若要模拟意外文件删除和恢复过程,请从 Web 服务器中删除一页。 如果需要运行 Web 服务器且已使用 Azure 备份保护的 Linux VM,请参阅在 Azure 中使用 CLI 备份虚拟机。
准备环境:
在 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 中删除文件
如果意外删除文件或对文件进行了更改,则可以从恢复点还原单个文件。 此过程允许你浏览恢复点中备份的文件并仅还原所需的文件。 在此示例中,我们从 Web 服务器中删除文件来演示文件级恢复过程。
若要连接到 VM,请使用 az vm show 获取 VM 的 IP 地址:
az vm show --resource-group myResourceGroup --name myVM -d --query [publicIps] --o tsv
若要确认网站当前是否正常运行,请打开 Web 浏览器到 VM 的公共 IP 地址。 保持 Web 浏览器窗口处于打开状态。
使用 SSH 连接到 VM。 将 publicIpAddress 替换为你在前一个命令中获取的公共 IP 地址:
ssh publicIpAddress
从 Web 服务器中的 /var/www/html/index.nginx-debian.html 删除默认页面,如下所示:
sudo rm /var/www/html/index.nginx-debian.html
在 Web 浏览器中,刷新网页。 网站不再加载该页面,如下例中所示:
关闭与 VM 之间的 SSH 会话,如下所示:
exit
生成文件恢复脚本
为了还原文件,Azure 备份提供了一个脚本,以在将恢复点连接为本地驱动器的 VM 上运行。 你可以浏览该本地驱动器,将文件还原到该 VM,然后断开恢复点。 Azure 备份将根据计划和保留的分配策略继续备份数据。
若要列出 VM 的恢复点,请使用 az backup recoverypoint list 命令。 在本示例中,我们为在 myRecoveryServicesVault 中受保护的名为 myVM 的 VM 选择最近的恢复点:
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 中受保护的名为 myVM 的 VM 获取脚本。
将 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)。 提供已下载脚本的名称,并将 publicIpAddress 替换为 VM 的公共 IP 地址。 请确保在 SCP 命令的末尾包括尾部
:
,如下所示:scp myVM_we_1571974050985163527.sh 52.174.241.110:
将文件还原到 VM
将恢复脚本复制到 VM 后,即可连接恢复点并还原文件。
注意
在继续之前,请查看此处,了解是否可以在 VM 上运行脚本。
使用 SSH 连接到 VM。 将 publicIpAddress 替换为 VM 的公共 IP 地址,如下所示:
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/
在 Web 浏览器中,刷新网页。 网站现在重新正确加载,如下例中所示:
关闭与 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,并且还原了 Web 服务器的文件。 你已了解如何执行以下操作:
- 列出和选择恢复点
- 将恢复点连接到 VM
- 从恢复点还原文件
请进入下一个教程了解如何将 Windows Server 备份到 Azure。