Vanliga frågor och svar om eventströmning för ändringshändelser (CES)

Gäller för: SQL Server 2025 (17.x) Azure SQL DatabaseAzure SQL Managed InstanceSQL-databas i Microsoft Fabric

Följande är svar på frågor om change event streaming (CES)-funktionen för SQL Server 2025 (17.x), Azure SQL Database, Azure SQL Managed Instance och SQL Database i Microsoft Fabric.

Anmärkning

Strömningen av förändringshändelser är för närvarande i förhandsvisning och har skillnader i supportmöjligheter mellan produkterna. Den här funktionen kan komma att ändras under förhandsversionen.

Kompatibilitet och krav

Fungerar CES med Azure SQL Database?

Ja. CES stöds i Azure SQL Database från och med november 2025.

Krävs den fullständiga återställningsmodellen för CES?

Ja. CES förlitar sig på att läsa transaktionsloggen, så SQL Server-databasen måste konfigureras med den fullständiga återställningsmodellen.

Vad kostar det att använda CES?

För CES faktureras användningen av Azure Event Hubs och Fabric Eventstream till standardpriser. Avgifter för inkommande och utgående trafik tillkommer också.

Prestanda och påverkan

Vad är den förväntade prestandapåverkan på en stor databas med miljontals rader när CES är aktiverat?

Prestandapåverkan beror på din specifika arbetsbelastning och konfiguration. Det förväntas att CES har lägre omkostnader än insamling av ändringsdata (CDC), eftersom data inte skrivs tillbaka till databasen.

Vilken är den maximala meddelandestorleken som stöds av CES?

CES använder inställningen @max_message_size_kb för att dela upp stora utgående händelser i meddelandedelar som passar destinationsgränserna för Azure Event Hubs eller den konfigurerade Fabric Eventstream-genomströmningen. Denna inställning styr endast meddelandedelning. Det ändrar inte gränsen för avkapning per kolumn: innan CES bildar utgående händelse avkortas varje strömmat kolumnvärde större än 1 MB till 1 MB.

Kommer transaktionsloggen att fortsätta växa om CES inte kan leverera händelser (till exempel på grund av problem med destinationsplats, utgångna autentiseringsuppgifter osv.)?

Ja. CES garanterar tillförlitlig ("minst en gång") meddelandeleverans, så transaktionsloggen trunkeras inte förrän händelserna har levererats. Om leveransen misslyckas växer loggen tills problemet har lösts. Det är viktigt att upprätthålla ces-hälsotillståndet genom att övervaka leverans av meddelanden, fel och användning av transaktionsloggen för databaser som har CES aktiverat.

Schema- och datahantering

Hur hanterar CES schemaändringar, till exempel att ta bort en kolumn?

CES innehåller radschemat för varje händelse. Om en DDL-åtgärd ändrar tabellen (till exempel ta bort, byta namn på eller lägga till en kolumn) återspeglar nästa DML-händelse det uppdaterade schemat. CES genererar inte händelser för själva DDL-åtgärderna.

Stöds tabeller med LOB-kolumner (till exempel varchar(max)) av CES?

Ja. CES stöder tabeller med LOB-kolumner. För varje tabell konfigurerad för streaming kan du kontrollera om den gamla raden innehåller LOB-kolumnvärden genom att använda sys.sp_add_object_to_event_stream_group. Varje LOB-värde som strömmas omfattas fortfarande av gränsen för trunkering på 1 MB per kolumn. Konfigurera serverkonfigurationsalternativet max text repl size så att mer än 65 536 byte kan skrivas till LOB-kolumner när CES är aktiverat.

Vad händer om ett strömmat kolumnvärde är större än 1 MB?

Om en eller flera strömmade kolumnvärden är större än 1 MB, avkortar CES varje påverkad kolumnvärde till 1 MB innan den utgående händelsen bildas. Gränsen gäller för varje kolumn separat. Till exempel, om en rad har fem kolumner och de tre första kolumnvärdena är större än 1 MB, så kapar CES var och en av dessa tre värden till 1 MB, bildar den utgående händelsen, delar upp händelsen i meddelandedelar enligt @max_message_size_kb, och skickar varje chunk till destinationen.

Avkortning av kolumndata sker alltid. CES loggför inte fel eller varningar när den här trunkeringen inträffar. Konfigurera serverkonfigurationsalternativet max text repl size så att mer än 65 536 byte kan skrivas till LOB-kolumner när CES är aktiverat.

Behöver en tabell en primärnyckel för att använda CES?

Nej. CES kräver ingen primärnyckel i tabellen.

Hur detaljerade är CES-händelser?

Varje rad som påverkas av en INSERTåtgärd , UPDATEeller DELETE strömmas som en separat händelse.

Om en transaktion ändrar flera rader, strömmas de som separata händelser eller som en?

Varje berörd rad strömmas som en separat händelse. Varje händelse innehåller transaktionsmetadata, så ändringar från samma transaktion kan grupperas logiskt på målet.

Integrering och konfiguration

Hur fungerar CES i en konfiguration med hög tillgänglighet (HA) ? Kan jag använda en DNN-anslutningssträng?

CES strömmar endast från den primära repliken. Vid en failover måste CES konfigureras om på den nya primära noden. Du kan ansluta till den primära repliken med vilken metod som helst som stöds av SQL Server, inklusive ett distribuerat nätverksnamn (DNN).

Vilka protokoll använder CES för att kommunicera med målet?

CES stöder Kafka- och AMQP-protokollen för Azure Event Hubs och Fabric Eventstream. HTTPS stöds inte. Från och med den 15 augusti 2026 är AMQP-protokollet föråldrat för nya strömgrupper i Azure SQL Database och SQL-databas i Microsoft Fabric. På dessa plattformar måste alla nyskapade strömgrupper använda AzureEventHubs som .destination_type Denna destinationstyp använder Kafka-protokollet. Azure SQL Managed Instance och SQL Server 2025 accepteras AzureEventHubsApacheKafka fortfarande och AzureEventHubsAMQP tills en framtida uppdatering. För detaljer, se AMQP-protokollets avveckling. Om du använder AMQP-protokollet på befintliga strömgrupper, ställ in Azure Event Hubs Minimum TLS-versionkonfigurationsalternativ till 1.2. CES fungerar inte med TLS 1.3 över AMQP-protokollet.

Kan CES strömma direkt till Kafka?

Nej. CES stöder för närvarande endast Azure Event Hubs (AMQP och Kafka-protokoll) som mål.

Kan CES strömma till Fabric Eventstream?

Ja. Du kan koppla CES till Fabric Eventstream genom att använda den anpassade inmatningsendpointen som är kompatibel med Azure Event Hubs. Konfigurera CES med eventstream-reťazec pripojenia på samma sätt som du skulle konfigurera det för Azure Event Hubs.

Stöder CES Microsoft Entra managed identity för autentisering med Azure Event Hubs och Fabric Eventstream?

Ja. CES stöder Microsoft Entra-autentisering i Azure SQL Database och Azure SQL Managed Instance. För SQL Server 2025 stöds Microsoft Entra-autentisering från och med Cumulative Update 3 (CU3) för instanser som aktiveras av Azure Arc eller körs på en Azure-VM. Microsoft Entra-autentisering stöds för närvarande inte i SQL-databasen i Microsoft Fabric.

Funktionalitet och funktioner

Kan CES aktiveras på en databas som redan använder transaktionsreplikering?

Nej. CES kan inte aktiveras på en databas som konfigurerats med transaktionsreplikering.

Kan CES köras tillsammans med CDC (Change Data Capture)?

Nej. CES kan inte aktiveras på en databas som är aktiverad med CDC.

Kan CES användas med Fabric-speglade databaser för SQL Server?

Vad händer om CES är inaktiverat? Återupptas den där den slutade när den återaktiverades?

Om CES är inaktiverat kan det inte återupptas. Du måste återställa CES manuellt för att fortsätta strömma händelser. Dataändringar som gjorts medan CES inaktiverades registreras inte. Endast ändringar som görs efter att CES har startats om strömmas. CES garanterar leverans minst en gång . Om CES inte kan leverera ett meddelande fortsätter det att försöka igen tills meddelandet har levererats eller CES har inaktiverats. Om CES inte är inaktiverat förhindrar misslyckade leveransförsök loggtrunkering tills feltillståndet har åtgärdats och meddelandet har levererats framgångsrikt. Om CES är inaktiverat återupptas loggtrunkeringen och händelser som inträffar under stilleståndstiden registreras inte.

Vad händer om jag gör en återställning (eller en annan typ av migrering) av en databas som har konfigurerats för CES?

Efter återställning (eller andra typer av databasmigrering) inaktiveras CES och stoppas för databasen. Du måste konfigurera om den för att starta direktuppspelningen igen.

Kan CES göra en första ögonblicksbild ("seed") av befintliga data i tabeller när CES är aktiverat?

Nej. CES strömmar för närvarande endast ändringar av data som inträffar efter att CES har aktiverats. Den strömmar inte data i en tabell som finns innan CES aktiveras.

Hur kan jag övervaka CES-aktivitet (till exempel bearbetade händelser, fel)?

Använd följande systemvyer för att övervaka CES-aktivitet:

I SQL Server 2025 kan du skapa en CES-relaterad xEvent-session och få mer information om CES-aktivitet och potentiella fel.

  CREATE EVENT SESSION ChangeEventStreaming
  ON SERVER
  ADD EVENT sqlserver.synapse_link_error
  (
  )
  ADD TARGET package0.event_file 
  (SET filename=N'C:\temp\YourSession_Target1.xel');
  GO

När du konfigurerar CES xEvent-övervakning för Azure SQL Managed Instance lagrar du .xel filen i en Azure Blob Storage-container. Du kan observera spårningsinformation för förändringshändelseströmning i Azure SQL Managed Instance genom att observera synapse_link_error händelser:

CREATE CREDENTIAL
[your blob container URL here] --make sure to not leave / at the end
WITH IDENTITY = 'MANAGED IDENTITY';

DROP EVENT SESSION ChangeEventStreaming ON SERVER
CREATE EVENT SESSION ChangeEventStreaming
ON SERVER
ADD EVENT sqlserver.synapse_link_error
(
)
ADD TARGET package0.event_file
(
    SET filename = N'https://[your container URL]/cessession.xel'
  
);

xEvent-felsökning stöds inte för felsökning av CES i Azure SQL Database.

Du kan övervaka Azure Event Hubs eller Fabric Eventstream och använda tillhörande mätvärden och loggar.

Hur länge sparas CES-fel i sys.dm_change_feed_errors?

Fellistan sys.dm_change_feed_errors roteras automatiskt. Nyare fel driver ut tidigare inlägg. Fel som slutar uppstå tas inte bort från listan omedelbart; De finns kvar tills nya fel tränger ut dem eller listan är helt borta.

Finns det en gräns för hur många tabeller som kan konfigureras för strömning?

Ja. CES har stöd för upp till 4 096 strömningsgrupper, med upp till 40 000 tabeller per grupp.