Migrate SQL Server to Azure SQL Virtual Machine with DMS Online

Step 2 — Configurazione Azure Blob Storage

Il passo successivo è preparare lo Storage Account Azure che verrà utilizzato per salvare i backup dei database.

Questo è un punto centrale della migrazione: Azure DMS non legge direttamente dal SQL Server sorgente, ma lavora sui file di backup che vengono caricati nel Blob Storage.

Struttura del container

Una delle cose più importanti — e spesso sottovalutate — è la struttura delle cartelle all’interno del container.

Ogni database deve avere una propria cartella dedicata.

Un esempio corretto è:

  • /backup/Database01/
  • /backup/Database02/

All’interno di ogni cartella troveremo poi:

  • il backup FULL (file .bak)
  • i backup dei log (file .trn)

Azure DMS supporta solo:

  • la root del container
  • oppure cartelle a un solo livello di profondità

Se la struttura non è corretta, DMS non riuscirà a rilevare i database durante la configurazione.

Creazione dello Storage Account

Dal portale Azure:

  • crea uno Storage Account (consigliato nella stessa region della VM di destinazione)
  • crea un container Blob (ad esempio backup)
  • imposta l’accesso come privato

È buona pratica usare uno Storage Account dedicato alla migrazione, senza mischiare altri dati o workload.

Generazione del SAS Token

Per permettere a SQL Server di scrivere direttamente su Blob Storage, è necessario generare un SAS Token.

Dal container:

  • vai su Shared Access Signature
  • seleziona i permessi:
    • Add
    • Create
    • Write
  • imposta una scadenza adeguata (meglio abbondare durante la migrazione)

Una volta generato, copia il SAS Token.

Configurazione della Credential in SQL Server

Sul server SQL sorgente dobbiamo creare una credential per permettere ai comandi di backup di utilizzare il Blob Storage.

È importante ricordare che:

  • l’IDENTITY deve essere sempre "SHARED ACCESS SIGNATURE"
  • il SAS Token va inserito senza il punto interrogativo iniziale (?)
CREATE CREDENTIAL [https://backuplabstoragesql.blob.core.windows.net/backup]
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = 'sv=2025-11-05&ss=bfqt&srt=sco&sp=rwdlacupiytfx&se=2026-05-02T07:11:18Z&st=2026-04-28T22:56:18Z&spr=https&sig=c86Yab9aat3fhuSaQebFSAEv5W3uEJP04hVRkbh1o8I%3D';