I file di backup dei log delle transazioni contengono le modifiche apportate al database di origine dopo l'esecuzione del backup completo. I backup dei log delle transazioni sono necessari per la fase di caricamento continuo del job di migrazione.
Questa pagina descrive come pianificare esportazioni e caricamenti regolari dei log delle transazioni per la migrazione da origini autogestite e Amazon RDS.
Pianifica 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 li archivi.
Segui questi passaggi:
- Assicurati che i backup automatici siano abilitati nell'istanza Amazon RDS. Consulta Abilita i backup automatici nella documentazione di Amazon RDS.
- Abilita l'accesso ai file di log delle transazioni nell'istanza Amazon RDS.
Consulta
Accesso ai backup dei log delle transazioni con RDS per SQL Server.
Puoi anche controllare il seguente comando di esempio:
Esempio di chiamata di una stored procedure per abilitare l'accesso al 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 SQL Agent che viene eseguito in base a una pianificazione regolare. Il job deve eseguire il seguente script:
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 di file continui 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 Configura i trasferimenti basati su eventi da AWS S3.
Pianifica i caricamenti dei file di log delle transazioni per le istanze SQL Server on-premise
Puoi pianificare trasferimenti regolari dei file di log delle transazioni dall'istanza di origine autogestita al bucket Cloud Storage in cui archivi i file di log delle transazioni. Una delle soluzioni consigliate è
Segui questi passaggi:
- Sul sistema in cui vuoi eseguire lo script, assicurati di aver inizializzato Google Cloud CLI con l'autenticazione e un progetto eseguendo gcloud init; o 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 suo 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 di tua scelta per eseguire regolarmente lo script.
Puoi anche utilizzare questo script manualmente e passare l'argomento posizionale
"final"per creare il file di 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.