I file di backup dei log delle transazioni contengono le modifiche che si verificano nel database di origine dopo il backup completo. I backup dei log delle transazioni sono obbligatori per la fase di caricamento continuo del job di migrazione.
Questa pagina descrive come pianificare esportazioni e caricamenti regolari dei log delle transazioni per i database SQL Server di origine.
Pianificare i caricamenti dei file di log delle transazioni per Amazon RDS
Puoi pianificare trasferimenti regolari dei file di log delle transazioni dall'istanza di origine Amazon RDS al bucket Cloud Storage in cui memorizzi i file di log delle transazioni.
Procedi nel seguente modo:
- Assicurati che i backup automatici siano abilitati nell'istanza Amazon RDS. Consulta Attivare i backup automatici nella documentazione di Amazon RDS.
- Attiva l'accesso ai file dei log delle transazioni nell'istanza Amazon RDS.
Consulta
Accedere ai backup dei log delle transazioni con RDS per SQL Server.
Puoi anche controllare il seguente comando di esempio:
Esempio di chiamata di stored procedure per abilitare l'accesso ai log delle transazioni in Amazon RDS
export DATABASE=YOUR_DATABASE_NAME; export S3_Bucket=YOUR_S3_BUCKET; exec msdb.dbo.rds_tlog_copy_setup @target_s3_arn='arn:aws:s3:::${S3_Bucket}/${DATABASE}/log/';
- Crea un job dell'agente SQL che venga eseguito in base a una pianificazione regolare. Il job dovrebbe eseguire lo script seguente:
declare @DATABASE varchar(100); SELECT @DATABASE=YOUR_DATABASE_NAME; USE @DATABASE; declare @startTime varchar(100); declare @endTime varchar(100); SELECT @startTime = CONVERT(VARCHAR(100), DATEADD(hour, -1, GETUTCDATE()), 120), @endTime = CONVERT(VARCHAR(100), GETUTCDATE(), 120); exec msdb.dbo.rds_tlog_backup_copy_to_S3 @db_name=@DATABASE, @backup_file_start_time=@startTime, @backup_file_end_time=@endTime;
- Configura i trasferimenti continui dei file dal bucket S3 al bucket Cloud Storage. Puoi utilizzare qualsiasi soluzione per spostare i file, ad esempio i job di trasferimento basati su eventi in Storage Transfer Service. Consulta Configurare i trasferimenti basati su eventi da AWS S3.
Pianificare i caricamenti dei file di log delle transazioni per le istanze SQL Server on-premise
Puoi pianificare trasferimenti regolari dei file dei log delle transazioni dalla tua istanza di origine self-managed al bucket Cloud Storage in cui memorizzi i file dei log delle transazioni. Una delle soluzioni consigliate è
Procedi nel seguente modo:
- Sul sistema in cui vuoi eseguire lo script, assicurati di aver inizializzato Google Cloud CLI con l'autenticazione e un progetto eseguendo gcloud init; oppure gcloud auth login e gcloud config set project.
- Salva il seguente script in un file nell'istanza SQL Server di origine.
Questo script automatizza la creazione di un file di log delle transazioni e il relativo caricamento nel bucket Cloud Storage utilizzando il comando
gcloud storage cp
.Bash
#!/bin/bash NOW="$(date +%s)" EXT=".trn" if [[ "$1" == "final" ]] then EXT='.trn.final' fi NAME="{DATABASE}.${NOW}.${EXT}" FULL_NAME="/SQLServerBackups/log/${NAME}" QUERY="BACKUP LOG ${DATABASE} TO DISK = '${FULL_NAME}'" /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "${SA_PASSWORD}" -d master -Q "${QUERY}" gcloud storage cp "${FULL_NAME}" "${GCS_BACKUPS}/log/"
PowerShell
# Get the current timestamp $NOW = [int](Get-Date -UFormat '%s') # Set the file extension based on the command-line argument $EXT = '.trn' if ($args[0] -eq 'final') { $EXT = '.trn.final' } # Construct the backup file name $NAME = "{0}.{1}{2}" -f $DATABASE, $NOW, $EXT $FULL_NAME = "X:\SQLServerBackups\log\$NAME" # Construct the SQL backup query $QUERY = "BACKUP LOG $DATABASE TO DISK = '$FULL_NAME'" # Execute the SQL backup command Invoke-Sqlcmd -ServerInstance 'localhost' -Username 'SA' -Password $env:SA_PASSWORD -Database 'master' -Query $QUERY # Upload the backup file to Google Cloud Storage gcloud storage cp "$FULL_NAME" "$GCS_BACKUPS/log/"
- Configura uno strumento di pianificazione a tua scelta per eseguire regolarmente lo script.
Puoi anche utilizzare questo script manualmente e passare l'argomento posizionale
"final"
per creare il file del log delle transazioni il cui nome termina con il suffisso.trn.final
. Questa opzione è utile quando vuoi completare la migrazione e promuovere il job di migrazione.