第 9 课。 从 Azure 存储还原数据库

在本课中,你将了解如何将数据库备份文件从 Azure 存储还原到驻留在本地或 Azure 中的虚拟机中的数据库。 若要学习本课程,无需完成第 4、5、6、7 和 8 课。

本课程假定你已完成以下步骤:

  • 已在源计算机中创建数据库。

  • 你已使用 结合 Azure Blob 存储服务的 SQL Server 备份和还原功能,在 Azure 存储中创建了数据库 (.bak) 的备份。 请注意,需要在此步骤中创建另一个 SQL Server 凭据。 此凭据使用存储帐户密钥。

  • 你有一个 Azure 存储帐户。

  • 已在 Azure 存储帐户下创建了容器。

  • 已在具有读取、写入和列表权限的容器上创建了策略。 还生成了 SAS 密钥。

  • 已在计算机上为 Azure 存储集成功能创建了 SQL Server 凭据。 请注意,此凭据需要共享访问签名(SAS)密钥。

若要从 Azure 存储还原数据库,可以按照以下步骤作:

  1. 启动 SQL Server Management Studio。 连接到默认实例。

  2. 单击标准工具栏上的 “新建查询 ”。

  3. 将以下完整脚本复制并粘贴到查询窗口。 根据需要修改脚本。

    注意:RESTORE运行该语句,将 Azure 存储中的数据库备份(.bak)还原到另一台计算机中的数据库实例。

    
    USE master   
    GO   
    -- Create a new database to be backed up.   
    CREATE DATABASE TestDbRestoreFrom;   
    GO   
    USE TestDbRestoreFrom;   
    GO   
    CREATE TABLE Table1 (Col1 int primary key, Col2 varchar(20));   
    GO   
    INSERT INTO Table1 (Col1, Col2) VALUES (1, 'string1'), (2, 'string2');   
    GO   
    USE TestDbRestoreFrom;   
    GO   
    SELECT * from dbo.Table1;   
    GO   
    -- Create a credential to be used by SQL Server Backup and Restore with Azure -----Blob Storage Service.   
    USE master;   
    GO   
    CREATE CREDENTIAL BackupCredential    
    WITH IDENTITY= 'teststorageaccnt',   
    SECRET = 'BO1nH/lWRdnc8TGPlQIXmGLWVCoEa48suYSGiAlC73+S0TX5VXo5/LCm8qiyGCYafDg4ZsueDIV3GQ5RXHaRGw=='    
    GO   
    -- Display the newly created credential   
    SELECT * from sys.credentials   
    -- Create a backup in Azure Storage.   
    BACKUP DATABASE TestDBRestoreFrom    
    TO URL = 'https://teststorageaccnt.blob.core.windows.net/testrestorefrom/TestDBRestoreFrom.bak'    
          WITH CREDENTIAL = 'BackupCredential'    
         ,COMPRESSION   
         ,STATS = 5;   
    GO    
    -- Create a Shared Access Signature credential   
    CREATE CREDENTIAL [https://teststorageaccnt.blob.core.windows.net/testrestorefrom]   
    WITH IDENTITY='SHARED ACCESS SIGNATURE',   
    SECRET = 'sv=2012-02-12&sr=c&si=policy_resfrom&sig=EhVpzLUXjG4ThAMLmVhrnoiCt8IfmD3BsuYiMawGzxc%3D'   
    GO   
    USE master;   
    GO   
    RESTORE DATABASE TestDBRestoreFrom    
    FROM URL = 'https://teststorageaccnt.blob.core.windows.net/testrestorefrom/TestDBRestoreFrom.bak'    
    WITH    
    CREDENTIAL = 'BackupCredential',    
    REPLACE,   
    MOVE 'TestDBRestoreFrom' TO 'C:\Backup\TestDBRestoreFrom.mdf',     
    MOVE 'TestDBRestoreFrom_log' TO 'C:\Backup\TestDBRestoreFrom_log.ldf';   
    GO  
    
    

教程结束:Azure 存储服务中的 SQL Server 数据文件