Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:Database SQL di Azure
Microsoft è responsabile della gestione dell'integrità dei dati in database SQL di Azure. Sebbene esistano tecniche tradizionali per i DBA per monitorare l'integrità dei dati e recuperare da corruzioni del database in SQL Server, il team di ingegneria SQL di Microsoft ha sviluppato nuove tecniche che gestiscono automaticamente alcune classi di corruzione senza perdita di dati. Il servizio utilizza queste tecniche per evitare perdite di dati e tempi di inattività nei casi in cui può evitarli.
Questo articolo illustra alcune di queste tecniche, come funzionano e come influenzano i clienti preoccupati su quali passi adottare per proteggere i propri dati in database SQL di Azure.
Come Microsoft gestisce l'integrità dei dati
Proteggere l'integrità dei dati in database SQL di Azure comporta una combinazione di tecniche e metodi in evoluzione:
Monitoraggio esteso degli allerti di errore di integrità dei dati. Il SQL motore di database emette avvisi per tutti gli errori e le eccezioni non gestite che indicano preoccupazioni sull'integrità dei dati. Il team di ingegneria gestisce e indaga questi allarmi.
Rilevamento delle "scritture perse" del sistema di I/O. Il motore di database dispone di funzionalità aggiuntive per rilevare quella che è stata la causa più comune di problemi di corruzione fisica osservati: "perdita di scritture" del sistema I/O. Questa funzionalità tiene traccia delle scritture di pagina e dei numeri LSN (numeri di sequenza del log) associati. Una lettura successiva di una pagina dati dal disco viene confrontata con l'LSN atteso della pagina. Se c'è una discrepanza tra gli LSN presenti sul disco e quelli previsti, la pagina è obsoleta, con conseguente avviso immediato al team di ingegneria.
Riparazione automatica della pagina. Alcuni livelli di servizio forniscono repliche di database per scopi di continuità aziendale. Il servizio quindi si avvale della riparazione automatica delle pagine, analoga alla tecnologia utilizzata nei gruppi di disponibilità. Nel caso in cui una replica non possa leggere una pagina a causa di un problema di integrità dei dati, il servizio recupera una copia nuova della pagina da un'altra replica, sostituendo la pagina illeggibile senza perdite di dati o inattività del cliente.
Integrità dei dati a riposo e in transito. Tutti i database nel servizio sono configurati per verificare le pagine utilizzando l'impostazione
CHECKSUM, che calcola il checksum sull'intera pagina e lo memorizza nell'intestazione della pagina per la verifica durante la lettura. La Transport Layer Security (TLS) è utilizzata anche per tutte le comunicazioni, oltre ai checksum di base a livello di trasporto forniti da TCP/IP.Controlli di integrità del backup e del ripristino. database SQL di Azure esegue la verifica delle pagine sia durante i backup gestionati dal servizio sia durante ogni operazione di ripristino. Qualsiasi problema riscontrato comporta un allarme immediato al team di ingegneria.
Come Microsoft gestisce gli incidenti di integrità dei dati
Microsoft tratta gli episodi di risultati errati o corruzione con la massima severità. L'azienda offre supporto 24×7 da parte di tutti i Azure team di ingegneria. Quando si gestiscono incidenti di integrità, gli obiettivi sono minimizzare l'indisponibilità e ridurre la quantità di perdita di dati.
Problemi di integrità dei dati di sistema
Microsoft corregge problemi che non influenzano i dati dei clienti o la disponibilità del database senza avvisare i clienti. Esempi includono problemi che la riparazione automatica delle pagine può risolvere, o corruzione dei metadati interni del database o della telemetria che non influisce sui dati dei clienti o sui risultati delle query.
Problemi di integrità dei dati dei clienti
Quando Microsoft rileva un problema di risultati errati o di corruzione dei dati dei clienti, Microsoft adotta le seguenti azioni:
- Cerca al massimo di contattare il cliente il prima possibile dopo la conferma della rilevazione, in conformità con le leggi sulla privacy.
- Se viene stabilito un contatto, lavora direttamente con il cliente per spiegare l'entità della corruzione, delineare le opzioni di recupero e permettere al cliente di scegliere l'opzione che funziona meglio per la propria applicazione e scenario.
- Quando possibile, aiuta il cliente a comprendere l'entità dell'impatto sulla propria applicazione, ad esempio identificando se la corruzione dei dati ha causato modifiche inaspettate ad altri dati.
Microsoft ripara la corruzione dei dati utilizzando vari metodi e passaggi adottati in coordinamento con i clienti. Non tenta una riparazione che possa causare perdita di dati senza l'approvazione del cliente. I clienti non possono eseguire DBCC CHECKDB operazioni di ripristino in database SQL di Azure perché non è possibile impostare un database in modalità SINGLE_USER. Tuttavia, il team Microsoft SQL può adottare misure di riparazione tra cui, ma non solo:
- Ricostruire l'indice. Ad esempio, ricostruire un indice non clusterizzato in cui anche la tabella di base non è corrotta.
- Esegui
DBCC CHECKDBconREPAIR_REBUILDquando la riparazione non comporta alcuna possibilità di perdita di dati. - Esegui
DBCC CHECKDBconREPAIR_ALLOW_DATA_LOSSdove le riparazioni possono causare una perdita di dati. - Per scenari in cui
DBCC CHECKDBnon può essere utilizzato per riparare il problema di integrità dei dati, gli ingegneri potrebbero utilizzare il ripristino in un momento al punto precedente al problema di integrità dei dati, seguito da una riproduzione manuale delle transazioni rilevanti dal registro delle transazioni. Un esempio in cui questa tecnica si applica è quando il registro delle transazioni viene corrotto in modo tale da impedire la riproduzione automatica di tutte le transazioni senza corrompere i dati del cliente.
Il team di ingegneria conduce analisi post-mortem dettagliate dei problemi che portano a risultati errati o alla corruzione dei dati. Il team monitora da vicino gli elementi di riparazione associati creati a causa del problema. Questi post-mortem portano a molti miglioramenti significativi, inclusa la funzionalità di "scritture perse" descritta in precedenza.
Controlli di integrità avviati dal cliente
Oltre al monitoraggio e alla protezione già forniti dal servizio, puoi scegliere di eseguire controlli di integrità avviati dall'utente come ulteriore livello di protezione. Ad esempio, puoi eseguire manualmente DBCC CHECKDB nelle offerte di database in cui questo comando è disponibile.
In database SQL di Azure Hyperscale, utilizzare DBCC CHECKTABLE ('<TableName>') WITH TABLOCK.
Feedback dei clienti e metodologie in evoluzione
Il team di ingegneria Azure SQL revisiona regolarmente e migliora le capacità di rilevamento dei problemi di integrità dei dati del servizio. Sebbene gli errori di integrità dei dati siano rari, se incontri un errore prima di ricevere la notifica da Azure Support, presenta un caso di supporto.
Se hai feedback da condividere sulla strategia di integrità dei dati di Microsoft, il team di ingegneria vorrebbe sentirti. Per contattare il team di ingegneria con feedback o commenti su questo argomento, vedi https://aka.ms/sqlfeedback. Il tuo feedback aiuta Microsoft a migliorare le funzionalità esistenti e a sviluppare nuove capacità di protezione dell'integrità dei dati.