Step 4 — Configurazione dei backup dei log (SQL Server Agent Job)
Dopo aver eseguito il backup FULL iniziale, entra in gioco il vero cuore della migrazione online: i backup dei log transazionali.
Sono proprio questi backup che permettono ad Azure DMS di mantenere il database di destinazione continuamente aggiornato mentre quello sorgente continua a lavorare.
Concetto chiave
Durante la migrazione:
- il database sorgente rimane attivo
- tutte le modifiche vengono registrate nei log
- i backup dei log vengono salvati su Blob Storage
- Azure DMS li legge e li applica sulla destinazione
In questo modo i due ambienti restano sincronizzati fino al momento del cutover.
Script per il backup dei log
Per eseguire il backup dei log utilizziamo uno script simile a quello del FULL, ma con una differenza importante: ogni file deve avere un nome univoco, tipicamente con un timestamp.
Esempio per tutti i database:
DECLARE @DBName NVARCHAR(256);
DECLARE @SQL NVARCHAR(MAX);
DECLARE @TimeStamp NVARCHAR(50);
SET @TimeStamp = REPLACE(CONVERT(VARCHAR(19), GETDATE(), 120), ':', '-');
SET @TimeStamp = REPLACE(@TimeStamp, ' ', '_');
DECLARE db_cursor CURSOR FOR
SELECT name
FROM sys.databases
WHERE database_id > 4
AND recovery_model_desc = 'FULL'
AND state_desc = 'ONLINE';
OPEN db_cursor;
FETCH NEXT FROM db_cursor INTO @DBName;
WHILE @@FETCH_STATUS = 0
BEGIN
SET @SQL = N'BACKUP LOG '
+ QUOTENAME(@DBName)
+ N'
TO URL = ''https://<StorageAccount>.blob.core.windows.net/backup/'
+ @DBName + N'/' + @DBName
+ N'_LOG_' + @TimeStamp + N'.trn''
WITH INIT, COMPRESSION, CHECKSUM, STATS = 10;';
PRINT @SQL;
EXEC sp_executesql @SQL;
FETCH NEXT FROM db_cursor INTO @DBName;
END;
CLOSE db_cursor;
DEALLOCATE db_cursor;
Configurazione del Job SQL Server Agent
Questo script deve essere eseguito automaticamente a intervalli regolari tramite SQL Server Agent.
I passaggi sono:
- apri SQL Server Management Studio
- vai su SQL Server Agent → Jobs → New Job
- assegna un nome (es.
DMS_LogBackup_Migration) - aggiungi uno step con lo script T-SQL
- imposta il database su
master
Poi configura la schedulazione:
- tipo: ricorrente
- frequenza: ogni 15 minuti (o anche meno, in base alle esigenze)
Verifica del funzionamento
Dopo aver attivato il job, puoi verificare il corretto funzionamento controllando il Blob Storage.
Dovresti iniziare a vedere file di questo tipo:
- Database01_LOG_2026-04-29_14-30-00.trn
- Database01_LOG_2026-04-29_14-45-00.trn
Se i file vengono creati correttamente, significa che la sincronizzazione è pronta per essere gestita da Azure DMS.
Attenzione a questi aspetti
Ci sono alcune cose da tenere d’occhio:
- se i backup dei log non vengono eseguiti, la migrazione si blocca
- se l’intervallo è troppo alto, aumenta il tempo di cutover
- se lo storage ha problemi, DMS non riesce ad aggiornare la destinazione
