Database SQL Server di origine

Questa pagina contiene informazioni su:

  • Il comportamento di Datastream nella gestione dei dati estratti da un database SQL Server di origine.
  • I metodi Change Data Capture (CDC) supportati da Datastream.
  • Le versioni dei database SQL Server supportate da Datastream.
  • Limitazioni note per l'utilizzo del database SQL Server come origine.

Comportamento

Datastream monitora le modifiche del Data Manipulation Language (DML) utilizzando uno dei seguenti metodi CDC:

Modifica tabelle

Il metodo CDC delle tabelle di modifica consente agli utenti di conservare i log per un periodo di tempo più breve e quindi di risparmiare spazio di archiviazione, ma supporta una velocità effettiva inferiore rispetto al metodo dei log delle transazioni. Il metodo presenta meno limitazioni rispetto ai log delle transazioni. Ad esempio, elimina il rischio di troncamento dei log che porta a errori permanenti degli stream e supporta la replica delle tabelle criptate. Per ulteriori informazioni, vedi Limitazioni note.

Quando utilizzi questo metodo CDC, le modifiche all'origine vengono monitorate utilizzando tabelle delle modifiche dedicate. I log delle transazioni vengono ancora utilizzati, ma in misura limitata e non è necessario conservarli per periodi più lunghi. Man mano che gli eventi DML vengono applicati alle tabelle di origine, le modifiche vengono replicate nelle tabelle delle modifiche corrispondenti. Le tabelle delle modifiche hanno la stessa struttura delle tabelle di origine, ma con colonne aggiuntive per includere i metadati delle modifiche. Alle tabelle delle modifiche vengono aggiunte solo le transazioni di cui è stato eseguito il commit, insieme al numero di sequenza di log (LSN) dell'operazione di commit.

Come Datastream gestisce le modifiche DDL allo schema di origine

Quando utilizzi il metodo CDC delle tabelle delle modifiche, vengono create istanze di acquisizione per ogni tabella delle modifiche. Ogni istanza di acquisizione è associata a un elenco di colonne che acquisisce e monitora. Per impostazione predefinita, quando si verifica una modifica del Data Definition Language (DDL) nell'origine dopo la creazione dell'istanza di acquisizione, l'istanza ignora la modifica. Tuttavia, puoi configurare il flusso SQL Server in modo da replicare le colonne aggiunte allo schema di origine dopo la creazione del flusso e dell'istanza di acquisizione.

Prima di iniziare
  • Assicurati che all'utente Datastream sia assegnata l'autorizzazione db_owner.

Replica le colonne aggiunte allo schema di origine

Per consentire a Datastream di supportare la replica delle colonne aggiunte allo schema di origine dopo la creazione di uno stream, devi aggiungere l'etichetta enable_ddl_support_for_ct allo stream:

  1. Vai alla pagina Stream nella console Google Cloud .

    Vai alla pagina Stream

  2. Fai clic sullo stream SQL Server da modificare.

  3. Nella pagina Dettagli stream, fai clic su Metti in pausa.

  4. Fai clic su Modifica > Modifica impostazioni stream.

  5. Fai clic su Aggiungi etichetta.

  6. Nel campo Chiave, digita enable_ddl_support_for_ct.

  7. Nel campo Valore, digita true.

  8. Fai clic su Salva.

  9. Fai clic su Avvia per riprendere lo stream.

Datastream controlla la tabella cdc.ddl_history per nuove DDL ogni cinque minuti. Se a una tabella inclusa nella configurazione dello stream viene aggiunta una nuova colonna, Datastream verifica se la tabella ha due istanze di acquisizione:

  • In caso contrario, Datastream crea una nuova istanza di acquisizione, legge i dati dell'istanza di acquisizione originale fino al momento in cui si è verificato il DDL e poi inizia a leggere dalla nuova istanza di acquisizione.

  • In questo caso, viene aggiunta una voce di log che indica che la modifica DDL non può essere gestita perché è stato raggiunto il numero massimo di istanze di acquisizione.

Log delle transazioni

Quando utilizzi questo metodo CDC, Datastream legge le modifiche nell'origine direttamente dai log delle transazioni. Questo metodo richiede meno risorse e consente un recupero più rapido dei dati, ma presenta più limitazioni.

Per evitare la perdita di dati, è importante che i log non vengano troncati prima che Datastream li legga. D'altra parte, se conservi i file di log per troppo tempo, occupano spazio di archiviazione, il che potrebbe alla fine causare l'inserimento dell'istanza del database in modalità di sola lettura.

Per assicurarti che il lettore CDC abbia tempo sufficiente per leggere i log e consentire il troncamento dei log per liberare spazio di archiviazione, devi applicare ulteriori passaggi di configurazione, come la modifica degli intervalli di polling e la configurazione di una salvaguardia del troncamento. Questi passaggi forniscono un ulteriore livello di protezione per garantire che Datastream possa leggere i dati anche in caso di downtime sul lato Datastream o di un problema di connettività tra il database di origine e Datastream.

Per istruzioni dettagliate su come applicare queste misure aggiuntive, consulta la pagina Configurare un database SQL Server di origine e seleziona il tipo di database.

Versioni

Datastream supporta le seguenti versioni ed edizioni dei database SQL Server:

  • Autogestito (on-premise o ospitato sul cloud) utilizzando le seguenti versioni:
    • Enterprise: 2008 e versioni successive
    • Standard: 2016 SP1 e versioni successive
    • Sviluppatore: 2008 e versioni successive
  • Amazon RDS per SQL Server
  • Database SQL di Azure (livello S3 e superiori).

  • Cloud SQL per SQL Server

Datastream non supporta le seguenti versioni dei database SQL Server:

  • SQL Server Standard Edition dalla versione 2008 alla 2014
  • SQL Server Express
  • SQL Server Web

Limitazioni note

Le limitazioni note per l'utilizzo del database SQL Server come origine includono:

  • Gli stream sono limitati a 10.000 tabelle.
  • Una tabella con più di 500 milioni di righe non può essere compilata a meno che non siano soddisfatte le seguenti condizioni:
    1. La tabella ha un indice univoco.
    2. Nessuna delle colonne indice ammette valori nulli.
    3. Tutte le colonne dell'indice sono incluse nel flusso.
  • I database con durabilità ritardata o recupero accelerato del database (ADR) abilitato non sono supportati.
  • Lo streaming delle modifiche alle tabelle di sistema non è supportato.
  • L'autenticazione di Windows Active Directory (AD) non è supportata.
  • I seguenti tipi di dati non sono supportati e non vengono replicati nella destinazione:
    • SQL_VARIANT
    • HIERARCHYID
    • GEOMETRY
    • GEOGRAPHY
  • Datastream replica i tipi di dati definiti dall'utente, ma è il tipo di dati di base da cui derivi il tipo definito dall'utente che viene archiviato nella destinazione. Ad esempio, se definisci un tipo di dati USERNAME in base al tipo di dati VARCHAR(50), i dati vengono archiviati nella destinazione come VARCHAR(50).
  • Datastream non supporta CDC per le colonne di oggetti di grandi dimensioni (TEXT, NTEXT, XML, IMAGE) e le colonne a lunghezza variabile massima (VARCHAR(MAX), VARBINARY(MAX), NVARCHAR(MAX)) nelle tabelle senza un indice univoco.

    Se le colonne di oggetti di grandi dimensioni non sono incluse nel flusso, CDC è supportato.

  • Datastream non supporta la replica delle seguenti modifiche allo schema di origine quando utilizzi il metodo CDC delle tabelle delle modifiche:

    • Eliminazione di colonne: i dati in queste colonne vengono sostituiti con valori NULL.
    • Modifica dei tipi di dati: Datastream tenta di inserire i dati nella destinazione e genera un errore se i dati vengono rifiutati.
    • Rinomina delle colonne: non supportata per SQL Server quando è abilitata la CDC.

    Queste modifiche allo schema potrebbero causare il danneggiamento dei dati o l'impossibilità di elaborare gli eventi.

  • Datastream non supporta il mascheramento dei dati. I dati vengono replicati senza mascheramento.

  • Datastream non supporta la replica delle modifiche applicate al database utilizzando il pacchetto Data-Tier Application Package (DACPAC).

  • Datastream non replica le modifiche apportate utilizzando le istruzioni WRITETEXT o UPDATETEXT.

  • Datastream non supporta la replica delle colonne calcolate, a meno che la colonna non sia contrassegnata con PERSISTED.

  • Datastream non supporta i tipi di compressione PAGE, COLUMNSTORE o COLUMNSTORE ARCHIVE.

Limitazioni aggiuntive quando utilizzi il metodo dei log delle transazioni

Se utilizzi il metodo CDC dei log delle transazioni, si applicano le seguenti limitazioni aggiuntive:

  • La crittografia TDE (Transparent Data Encryption) non è supportata.
  • La crittografia a livello di colonna non è supportata. I dati in queste colonne vengono sostituiti con i valori NULL.
  • Quando utilizzi il metodo CDC dei log delle transazioni, Datastream non supporta la replica delle colonne aggiunte allo schema di origine dopo la creazione di uno stream. Le nuove colonne non vengono replicate nella destinazione.
  • Datastream non supporta l'istruzione ROLLBACK TO SAVEPOINT. Questi eventi di rollback vengono ignorati e non vengono replicati nella destinazione.
  • Datastream non supporta CDC per le righe superiori a 8 kB nei seguenti tipi di tabelle:
    • Tabelle senza un indice univoco
    • Tabelle contenenti solo un indice univoco non clusterizzato con una o più colonne a lunghezza variabile (VARCHAR, VARBINARY, NVARCHAR)
  • Datastream non supporta CDC per le colonne di oggetti di grandi dimensioni (TEXT, NTEXT, XML, IMAGE) nei seguenti tipi di tabelle:

    • Tabelle senza un indice univoco
    • Tabelle contenenti solo un indice univoco non clusterizzato con una o più colonne a lunghezza variabile (VARCHAR, VARBINARY, NVARCHAR)

    Se le colonne di oggetti di grandi dimensioni non sono incluse nel flusso, CDC è supportato per queste tabelle solo se hanno indici validi.

Passaggi successivi