Condividi tramite


Lezione 9. Ripristinare un database da Archiviazione di Azure

In questa lezione si apprenderà come ripristinare un file di backup del database da Archiviazione di Azure a un database, che risiede in locale o in una macchina virtuale in Azure. Per seguire questa lezione, non è necessario completare la lezione 4, 5, 6, 7 e 8.

Questa lezione presuppone che siano già stati completati i passaggi seguenti:

  • È stato creato un database nel computer di origine.

  • Hai creato il backup del tuo database (.bak) in Storage di Azure utilizzando la caratteristica Backup e ripristino di SQL Server con il servizio di archiviazione BLOB di Azure. Si noti che in questo passaggio sarà necessario creare un'altra credenziale di SQL Server. Questa credenziale usa le chiavi dell'account di archiviazione.

  • È disponibile un account di archiviazione di Azure.

  • È stato creato un contenitore nell'account di archiviazione di Azure.

  • Hai creato una politica su un contenitore con diritti di lettura, scrittura e elenco. È stata generata anche una chiave SAS.

  • È stata creata una credenziale di SQL Server nel computer per la funzionalità di integrazione archiviazione di Azure. Si noti che questa credenziale richiede una chiave sas (Shared Access Signature).

Per ripristinare un database da Archiviazione di Azure, è possibile seguire questa procedura:

  1. Avvia SQL Server Management Studio. Connettersi all'istanza predefinita.

  2. Fare clic su Nuova query sulla barra degli strumenti Standard.

  3. Copiare e incollare lo script completo seguente nella finestra di query. Modificare lo script in base alle esigenze.

    Nota: Esegui l'istruzione RESTORE per ripristinare il backup del database (.bak) in Azure Storage in un'istanza di database in un altro computer.

    
    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  
    
    

Fine dell'esercitazione: File di dati di SQL Server nel servizio Archiviazione di Azure