View a markdown version of this page

Risoluzione dei problemi relativi all'endpoint SQL Server - AWS Servizio di migrazione del database

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Risoluzione dei problemi relativi all'endpoint SQL Server

In questa sezione vengono descritti gli scenari di replica specifici di SQL Server. Per determinare quali modifiche replicare da SQL Server, AWS DMS legge i log delle transazioni ed esegue scansioni periodiche sul database di origine. La latenza della replica in genere deriva dalla limitazione (della larghezza di banda della rete) di SQL Server per queste scansioni a causa dei vincoli delle risorse. Può anche derivare da un aumento significativo del numero di eventi scritti nel log delle transazioni in un breve periodo di tempo.

Ricostruzione degli indici

Quando SQL Server ricrea un indice di grandi dimensioni, utilizza una singola transazione. Questo approccio genera molti eventi e può utilizzare una grande quantità di spazio di log se SQL Server ricostruisce più indici contemporaneamente. In tal caso, è possibile aspettarsi brevi picchi nella replica. Se l'origine SQL Server presenta picchi di log elevati, verifica quanto segue:

  • Innanzitutto, controlla il periodo di tempo dei picchi di latenza utilizzando le CDCLatencySource CloudWatch metriche CDCLatencySource and oppure controllando i messaggi di monitoraggio della velocità effettiva nei log delle attività. Per informazioni sulle CloudWatch metriche per, consulta. AWS DMSParametri dell'attività di replica

  • Verifica se la dimensione dei log delle transazioni o dei backup dei log attivi è aumentata durante il picco di latenza. Controlla anche se durante quel periodo è stato eseguito un intervento di manutenzione o una ricostruzione. Per informazioni sulla verifica della dimensione del log delle transazioni, consulta Monitoraggio dell'utilizzo dello spazio dei log nella documentazione tecnica di SQL Server.

  • Verifica che il tuo piano di manutenzione segua le best practice di SQL Server. Per informazioni sulle best practice di manutenzione di SQL Server, consulta Index maintenance strategy nella documentazione tecnica di SQL Server.

Per risolvere i problemi di latenza durante le ricostruzioni degli indici, prova a eseguire queste operazioni:

  • Utilizza il modello di ripristino BULK_LOGGED per le ricostruzioni offline per ridurre gli eventi che l'attività deve elaborare.

  • Se possibile, interrompi l'attività durante la ricostruzione dell'indice. In alternativa, prova a pianificare la ricostruzione dell'indice durante le ore non di punta per mitigare l'impatto di un picco di latenza.

  • Prova a identificare i colli di bottiglia delle risorse che rallentano le letture DMS, come la latenza del disco o la velocità effettiva, e risolvili. I/O

Transazioni di grandi dimensioni

Le transazioni con molti eventi o le transazioni di lunga durata fanno aumentare la dimensione del log delle transazioni. Pertanto le letture DMS impiegano più tempo, con conseguente latenza. Questo approccio è simile all'effetto che le ricostruzioni degli indici hanno sulle prestazioni della replica.

Potrebbe essere difficile identificare questo problema se non si conosce il carico di lavoro tipico del database di origine. Per risolvere questo problema, esegui questi passaggi:

Per risolvere il problema, procedi in uno dei seguenti modi:

  • La soluzione migliore è ristrutturare le transazioni sul lato dell'applicazione in modo che vengano completate rapidamente.

  • Se non è possibile ristrutturare le transazioni, una soluzione alternativa a breve termine consiste nel verificare eventuali problemi di risorse, ad esempio attese del disco o conflitti di CPU. Se riscontri colli di bottiglia nel database di origine, puoi ridurre la latenza aumentando le risorse del disco, della CPU e della memoria per il database di origine. In tal modo riduci il conflitto per le risorse di sistema, permettendo alle query DMS di essere completate più rapidamente.

Intervallo di MS-CDC polling non configurato correttamente per Amazon RDS SQL Server

Un'impostazione errata dell'intervallo di polling per le istanze Amazon RDS può causare un aumento della dimensione del log delle transazioni. Questo avviene perché la replica impedisce il troncamento del log. Sebbene le attività in esecuzione possano continuare a replicarsi con una latenza minima, l'interruzione e la ripresa delle attività o l'avvio CDC-only delle attività possono causare errori delle attività. Ciò è dovuto ai timeout che si verificano durante la scansione del log delle transazioni di grandi dimensioni.

Per risolvere il problema relativo a un intervallo di polling configurato in modo errato, esegui queste operazioni:

Se riscontri problemi con uno qualsiasi degli elementi dell'elenco precedente, regola l'intervallo di polling. MS-CDC Per informazioni sull'ottimizzazione dell'intervallo di polling, consulta Impostazioni consigliate quando si utilizza RDS per SQL Server come origine per AWS DMS.

Replica di più attività di CDC dallo stesso database di origine

Durante la fase di pieno carico, consigliamo di suddividere le tabelle tra le attività per migliorare le prestazioni, separare logicamente le tabelle dipendenti e mitigare l'impatto di un errore dell'attività. Tuttavia, durante la fase CDC, consigliamo di consolidare le attività per ridurre al minimo le scansioni DMS. Durante la fase CDC, ogni attività DMS analizza i log delle transazioni alla ricerca di nuovi eventi più volte ogni minuto. Poiché ogni attività viene eseguita in modo indipendente, ciascuna attività analizza ogni log delle transazioni singolarmente. Questo approccio aumenta l'utilizzo del disco e della CPU nel database SQL Server di origine. Di conseguenza, un elevato numero di attività eseguite in parallelo può far sì che SQL Server limiti le letture DMS, con conseguente aumento della latenza.

Potrebbe essere difficile identificare questo problema se più attività vengono avviate gradualmente. Il sintomo più comune di questo problema è che la maggior parte delle scansioni delle attività inizia a richiedere molto tempo. Ciò comporta una maggiore latenza per le scansioni. SQL Server dà la priorità ad alcune scansioni delle attività, quindi alcune di esse mostrano la latenza normale. Per risolvere questo problema, controlla la metrica CDCLatencySource per tutte le attività. Se alcune attività registrano un aumento di CDCLatencySource, mentre altre attività indicano un valore basso per CDCLatencySource, è probabile che SQL Server stia limitando le letture DMS per alcune attività.

Se SQL Server limita la lettura delle attività durante la fase CDC, consolida le attività per ridurre al minimo il numero di scansioni DMS. Il numero massimo di attività che possono connettersi al database di origine senza creare conflitti dipende da fattori quali la capacità del database di origine, la percentuale di aumento del log delle transazioni o il numero di tabelle. Per determinare il numero ideale di attività per il tuo scenario di replica, prova la replica in un ambiente di test simile all'ambiente di produzione.

Elaborazione del backup del log delle transazioni per RDS per SQL Server

AWS DMS 3.5.3 e versioni successive supportano la replica da RDS per i backup dei log di SQL Server. La replica degli eventi dai log di backup sulle istanze RDS è più lenta rispetto alla replica degli eventi dal log delle transazioni attivo. Questo perché DMS richiede l'accesso ai backup in modo seriale per garantire che mantenga la sequenza delle transazioni e per ridurre al minimo il rischio che lo storage delle istanze di Amazon RDS si riempia. Inoltre, per quanto riguarda Amazon RDS, il tempo impiegato per rendere i backup disponibili per i DMS varia a seconda delle dimensioni del backup del log e del carico sull'istanza RDS per SQL Server.

A causa di questi vincoli, ti consigliamo di impostare l'ECA su. ActivateSafeguard true Ciò garantisce che non venga eseguito il backup delle transazioni durante la lettura del task DMS dal registro delle transazioni attivo. Questa impostazione impedisce inoltre ad Amazon RDS di archiviare le transazioni nel log attivo quando DMS legge le transazioni dal backup, eliminando così la possibilità che il DMS non riesca a recuperare il log attivo. Tieni presente che ciò potrebbe far aumentare la dimensione del registro attivo mentre l'attività sta recuperando terreno. Assicurati che l'istanza disponga di spazio di archiviazione sufficiente per evitare che si esaurisca.

Per una replica di un' CDC-only attività da RDS per sorgenti SQL Server, utilizza l'uso della posizione iniziale del CDC nativo rispetto all'ora di inizio del CDC nativo, se possibile. Questo perché DMS si basa su tabelle di sistema per identificare il punto di partenza della posizione iniziale nativa, anziché analizzare i singoli backup dei log quando si specifica un'ora di inizio nativa.