通过


你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

快速入门:使用 SSMS 将数据库还原到Azure SQL 托管实例

applies to:Azure SQL 托管实例

在本快速入门中,你将使用 SQL Server Management Studio (SSMS) 将数据库从 Azure Blob 存储 还原到 Azure SQL 托管实例。 本快速入门使用共享访问签名 (SAS) 密钥从公开可用的备份文件还原 Wide World Importers 示例数据库。

注意

本快速入门指导您还原已手动备份到 Azure Blob 存储的数据库。 如果要从自动备份还原,请参阅 从自动备份还原数据库

先决条件

本快速入门:

使用 SSMS 从备份文件还原

在 SSMS 中,执行以下部分中的步骤,使用 Restore 向导将 Wide World Importers 数据库还原到 SQL 托管实例。 数据库备份文件存储在预配置的Blob 存储帐户中。

打开还原助手

  1. 打开 SSMS 并连接到 SQL 托管实例。

  2. 对象资源管理器 中,右键单击 SQL 托管实例的 Databases 文件夹,然后选择 Restore Database...打开 Restore 向导。

     SSMS 中对象资源管理器的Screenshot。已选择“数据库”文件夹。在其快捷菜单中,已选择“还原数据库”.

选择备份源

  1. “还原 ”向导中,选择省略号(...)以选择要还原的备份集的源。

    “还原”向导中页面的屏幕截图。在“源”部分中,已选择“设备”,并调用省略号。

  2. 在“选择备份设备”中,选择“添加”。 在“备份媒体类型”中,“URL”是唯一可用的选项,因为它是唯一受支持的源类型。 选择“确定”

    “选择备份设备”对话框的屏幕截图。“添加”和“确定”按钮突出显示。

  3. 在“选择备份文件位置”中,从三个选项中选择一个,以提供有关备份文件位置的信息:

    • Azure 存储容器列表中选择预注册的存储容器
    • 输入新的存储容器和共享访问签名。 将为你注册一个新的 SQL 凭据。
    • 选择 Add 从Azure订阅中浏览更多存储容器。

    “选择备份文件位置”对话框的Screenshot。在“Azure存储容器”部分中,选择“添加”.

    如果选择 Add,请进入下一部分,Browse Azure 订阅存储容器。 如果使用其他方法提供备份文件的位置,请跳至还原数据库

    若要还原可公开访问的只读存储中的 Wide World Importers 示例数据库,请提供值 https://mitutorials.blob.core.windows.net/examples/ 并在“共享访问签名”字段提供任意值(如 SAS)。

    “选择备份文件位置”对话框的屏幕截图。指定了示例 WideWorldImporters 文件夹位置。“Select” 被红色边框框住。

浏览Azure订阅存储容器

注意

这些步骤对于从可公开访问的只读 Azure Blob 存储还原 WideWorldImporters 示例数据库来说是没有必要的,但对于从您自己的 Azure Blob 存储还原数据库来说是必需的。

  1. 连接到 Microsoft 订阅中,选择 Sign in 以登录到Azure订阅。

    “连接到Microsoft订阅”对话框的屏幕截图。“登录”按钮被突出显示。

  2. 登录到 Microsoft 帐户,在 Azure 中启动会话。

    登录帐户对话框的Screenshot。Microsoft徽标、登录框和其他 UI 元素可见。

  3. 选择包含备份文件的存储帐户的订阅。

    “连接到 Microsoft 订阅”对话框的屏幕截图。在“选择要使用的订阅”下,列表框中的向下箭头被标出。

  4. 选择包含备份文件的存储帐户。

  5. 选择包含备份文件的 blob 容器。

    “连接到 Microsoft 订阅”对话框的屏幕截图。标出了“选择 Blob 容器”列表框上的向下箭头。

  6. 输入共享访问策略的到期日期并选择“创建凭据”。 系统将创建一个具有正确权限的共享访问签名。 选择“确定”

    “连接到 Microsoft 订阅”对话框的屏幕截图。“创建凭据”、“确定”以及“共享访问策略过期”框被重点标出。

还原数据库

选择存储容器后,应会看到在 Microsoft Azure 对话框中查找备份文件。

  1. 在左侧窗格中,展开文件夹结构以显示包含备份文件的文件夹。 在右窗格中,选择与要还原的备份集相关的所有备份文件,然后选择“确定”。 例如,以下屏幕截图显示了包含 WideWorldImporters 示例数据库的可公开访问只读 Blob 存储:

    Microsoft Azure查找备份文件对话框的屏幕截图。已选择WideWorldImporters-Standard.bak备份文件,“确定”按钮用红色框出。

    SSMS 将验证备份集。 完成此过程最多需要几秒钟。 持续时间取决于备份集的大小。

  2. 如果已验证备份,则需要为要还原的数据库指定名称。 默认情况下,在“目标”下,“数据库”框包含备份集数据库的名称。 若要更改名称,对“数据库”输入新名称。 选择“确定”

    “还原”向导中页面的截图。在“目标”部分中,标出了“数据库”框,还标出了“确定”按钮。

    还原过程启动。 持续时间取决于备份集的大小。

    “还原”向导中页面的屏幕截图。将调用进度指示器。

  3. 还原过程完成后,一个对话框会显示还原成功。 选择“确定”

    “还原”向导中页面对话框的屏幕截图。对话框中的消息指示已成功还原数据库。

  4. 对象资源管理器 中,通过选择 Refresh来检查还原的数据库。

    对象资源管理器的截图。已还原的数据库被标出。

使用 T-SQL 从备份文件还原

作为 还原 向导的替代方法,可以使用 T-SQL 语句还原数据库。 在 SSMS 中,按照以下步骤使用 T-SQL 将 Wide World Importers 数据库还原到SQL 托管实例。 数据库备份文件存储在预配置的Blob 存储帐户中。

  1. 打开 SSMS 并连接到 SQL 托管实例。

  2. 对象资源管理器 中,右键单击 SQL 托管实例,然后选择“新建查询”以打开新的查询窗口。

  3. 运行下面的 T-SQL 语句,它使用公共可用的预配置存储容器和共享访问签名密钥在 SQL 托管实例中创建凭据

    重要

    • CREDENTIAL 必须与容器路径匹配,以 https 开头,结尾不能包含正斜杠。
    • IDENTITY 必须为 SHARED ACCESS SIGNATURE
    • SECRET 必须是共享访问签名令牌,且不能包含前导 ?
    • 此示例中省略了 SECRET,因为存储帐户为公共可用。 如果使用未公开提供的存储帐户,则必须提供共享访问签名令牌。
    CREATE CREDENTIAL [https://mitutorials.blob.core.windows.net/examples/WideWorldImporters-Standard.bak]
    WITH IDENTITY = 'SHARED ACCESS SIGNATURE';
    

    显示 SSMS 查询编辑器的截图。CREATE CREDENTIAL语句可见,并有消息指示查询已成功运行。

    上一示例中的凭据路径提供对单个文件的访问权限。 还可以创建文件夹路径的共享访问签名令牌,例如:

    CREATE CREDENTIAL [https://<your storage>.blob.core.windows.net/databases/backups/]
    WITH IDENTITY = 'SHARED ACCESS SIGNATURE'
    , SECRET = '<your shared access signature>'; -- omit the leading ?
    
  4. 若要检查凭据是否正常工作,请运行以下语句,该语句使用 URL 来获取备份文件列表。

    RESTORE FILELISTONLY FROM URL = 'https://mitutorials.blob.core.windows.net/examples/WideWorldImporters-Standard.bak';
    

    Screenshot 显示 SSMS 查询编辑器。RESTORE FILELISTONLY 语句可见,“结果”选项卡列出了三个文件。

  5. 运行以下语句,还原示例 Wide World Importers 数据库。

    RESTORE DATABASE [WideWorldImportersExample] FROM URL =
      'https://mitutorials.blob.core.windows.net/examples/WideWorldImporters-Standard.bak';
    

    显示 SSMS 查询编辑器 的 Screenshot。RESTORE DATABASE 语句可见,消息指示查询已成功运行。

    提示

    如果收到 Error: 3201Operating system error 86(The specified network password is not correct.),这可能是因为 SAS 凭据(在前面的步骤中创建)创建时不正确。 DROP CREDENTIAL 然后重新创建,审核凭据名称、标识和机密。

  6. 运行以下语句跟踪您的还原过程的状态。

    SELECT session_id as SPID, command, a.text AS Query, start_time, percent_complete
       , dateadd(second,estimated_completion_time/1000, getdate()) as estimated_completion_time
    FROM sys.dm_exec_requests r
    CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) a
    WHERE r.command in ('BACKUP DATABASE','RESTORE DATABASE');
    
  7. 还原过程完成后,在 对象资源管理器 中查看数据库。 可以使用 sys.dm_operation_status 视图验证是否已还原数据库。

注意

数据库还原操作是异步且可重试的。 如果连接失败或连接超时,可能会在 SSMS 中遇到错误。 SQL 托管实例一直尝试在后台还原数据库,可以使用 sys.dm_exec_requestssys.dm_operation_status 视图跟踪还原过程的进度。

在还原过程的某些阶段,系统视图中会显示唯一标识符,而不是实际的数据库名称。 若要了解 RESTORE 语句行为的差异,请参阅SQL Server 和 Azure SQL 托管实例