Einschränkungen und bekannte Probleme mit Azure Synapse Link für SQL

In diesem Artikel werden die Einschränkungen und bekannten Probleme mit Azure Synapse Link für SQL aufgeführt.

Einschränkungen

In den folgenden Abschnitten werden die Einschränkungen bei Azure Synapse Link für SQL aufgeführt.

Azure SQL-Datenbank und SQL Server 2022

  • Quelltabellen müssen über Primärschlüssel verfügen.
  • Nur ein schreibbares primäres Replikat wird als Datenquelle für Azure Synapse Link für SQL unterstützt.
  • Die folgenden Datentypen werden für Primärschlüssel in den Quelltabellen nicht unterstützt.
    • real
    • float
    • hierarchyid
    • sql_variant
    • timestamp
  • Die Zeilengröße der Quelltabelle darf 7.500 Bytes nicht überschreiten. Bei Tabellen, in denen Spalten mit variabler Länge außerhalb der Zeile gespeichert werden, wird ein 24-Byte-Zeiger im Hauptdatensatz gespeichert.
  • Wenn für Quelltabellen Anfangsmomentaufnahmen erstellt werden, werden Quelltabellendaten, die LOB-Daten (Large Object, großes Objekt) mit mehr als 1 MB enthalten, nicht unterstützt. Zu diesen LOB-Datentypen gehören: varchar(max), nvarchar(max) und varbinary(max). Ein Fehler wird ausgelöst, und Daten werden nicht nach Azure Synapse Analytics exportiert. Verwenden Sie die gespeicherte Prozedur sp_configure, um den konfigurierten Maximalwert für die Option max text repl size zu erhöhen, der standardmäßig auf 64 K festgelegt ist. Ein konfigurierter Wert von -1 gibt keinen Grenzwert an, außer dem Grenzwert, der vom Datentyp auferlegt wird.
  • Tabellen, die für Azure Synapse Link für SQL aktiviert sind, können maximal 1.020 Spalten aufweisen (nicht 1.024).
  • Obwohl eine Datenbank mehrere Verbindungen aktiviert haben kann, kann eine bestimmte Tabelle nicht zu mehreren Verbindungen gehören.
  • Wenn ein Datenbankbesitzer keine zugeordnete Anmeldung besitzt, tritt für Azure Synapse Link für SQL beim Aktivieren einer Linkverbindung ein Fehler auf. Der Benutzer kann den Datenbankbesitzer mit dem Befehl ALTER AUTHORIZATION auf einen gültigen Benutzer festlegen, um dieses Problem zu beheben.
  • Wenn die Quelltabelle berechnete Spalten oder Spalten mit Datentypen enthält, die dedizierte SQL-Pools nicht unterstützen, werden die Spalten nicht repliziert. Zu den nicht unterstützten Spalten zählen die folgenden.
    • Abbildung
    • text
    • xml
    • timestamp
    • sql_variant
    • UDT
    • geometry
    • geography
  • Maximal 5.000 Tabellen können einer einzelnen Linkverbindung hinzugefügt werden.
  • Die folgenden Tabellen-DDL-Vorgänge (Datendefinitionssprache) sind für Quelltabellen nicht zulässig, wenn sie für Azure Synapse Link für SQL aktiviert sind. Alle anderen DDL-Vorgänge sind zulässig, werden aber nicht in Azure Synapse Analytics repliziert.
    • Partition wechseln
    • Spalte hinzufügen/ablegen/ändern
    • Primärschlüssel. ändern
    • Tabelle ablegen/abschneiden
    • Tabelle umbenennen
  • Wenn DDL (Datendefinitionssprache) und DML (Datenbearbeitungssprache) in einer expliziten Transaktion (zwischen BEGIN TRANSACTION- und END TRANSACTION-Anweisungen) ausgeführt werden, schlägt die Replikation für entsprechende Tabellen innerhalb der Linkverbindung fehl.

    Hinweis

    Wenn eine Tabelle für Transaktionskonsistenz auf der Linkverbindungsebene wichtig ist, überprüfen Sie den Status der Azure Synapse Link-Tabelle auf der Registerkarte „Überwachung“.

  • Azure Synapse Link für SQL kann nicht aktiviert werden, wenn eines der folgenden Features für die Quelltabelle verwendet wird.
    • Change Data Capture
    • Temporale Verlaufstabelle
    • Always Encrypted
    • In-Memory-Tabellen
    • Columnstore-Index
    • Graph
  • Systemtabellen können nicht repliziert werden.
  • Die Sicherheitskonfiguration aus der Quelldatenbank wird NICHT in den dedizierten SQL-Zielpool übernommen.
  • Wenn Azure Synapse Link für SQL aktiviert wird, wird ein neues Schema namens changefeed erstellt. Verwenden Sie dieses Schema nicht, da es für Systemverwendung reserviert ist.
  • Quelltabellen mit Sortierungen, die von dedizierten SQL-Pools nicht unterstützt werden, z. B. UTF-8 und bestimmte japanische Sortierungen, können nicht repliziert werden. Weitere Informationen finden Sie unter unterstützten Sortierungen in Synapse SQL-Pools.
    • Darüber hinaus werden einige thailändische Sprachsortierungen von Azure Synapse Link für SQL nicht unterstützt:
      • Thai100CaseInsensitiveAccentInsensitiveKanaSensitive
      • Thai100CaseInsensitiveAccentSensitiveSupplementaryCharacters
      • Thai100CaseSensitiveAccentInsensitiveKanaSensitive
      • Thai100CaseSensitiveAccentInsensitiveKanaSensitiveWidthSensitiveSupplementaryCharacters
      • Thai100CaseSensitiveAccentSensitiveKanaSensitive
      • Thai100CaseSensitiveAccentSensitiveSupplementaryCharacters
      • ThaiCaseSensitiveAccentInsensitiveWidthSensitive
  • Einzelzeilenupdates (einschließlich Speicherung außerhalb der Seite) > 370 MB werden nicht unterstützt.
  • Wenn Sie Azure Synapse Link für SQL für die Azure SQL-Datenbank oder den SQL Server 2022 aktivieren, wird das aggressive Protokollkürzungs-Feature der beschleunigten Datenbankwiederherstellung (Accelerated Database Recovery, ADR) automatisch deaktiviert. Dies ist erforderlich, weil Azure Synapse Link für SQL auf das Datenbanktransaktionsprotokoll zugreift. Dieses Verhalten ähnelt Change Data Capture (CDC). Aktive Transaktionen blockieren weiterhin die Transaktionsprotokollkürzung, bis die Transaktion committet wird und Azure Synapse Link für SQL aufholt oder bis die Transaktion abgebrochen wird. Dies kann dazu führen, dass sich das Transaktionsprotokoll mehr als üblich füllt und überwacht werden sollte, damit das Transaktionsprotokoll nicht voll wird.

ausschließlich Azure SQL-Datenbank

  • Azure Synapse Link für SQL wird nicht für die Tarife „Free“, „Basic“ oder „Standard“ mit weniger als 100 DTUs unterstützt.
  • Azure Synapse Link für SQL wird für SQL Managed Instance nicht unterstützt.
  • Ein Dienstprinzipal wird für die Authentifizierung mit der Azure SQL-Quell-DB nicht unterstützt. Wenn Sie also einen verknüpften Azure SQL-DB-Dienst erstellen, wählen Sie SQL-Authentifizierung, benutzerseitig zugewiesene verwaltete Identität (User-Assigned Managed Identity, UAMI) oder dienstseitig zugewiesene verwaltete Identität (Service Assigned Managed Identity, SAMI) aus.
  • Wenn für den logischen Server von Azure SQL-Datenbank sowohl eine SAMI als auch eine UAMI konfiguriert ist, verwendet Azure Synapse Link SAMI.
  • Azure Synapse Link kann nicht für die sekundäre Datenbank aktiviert werden, nachdem ein GeoDR-Failover aufgetreten ist, wenn die sekundäre Datenbank einen anderen Namen als die primäre Datenbank aufweist.
  • Wenn Sie Azure Synapse Link für SQL für Ihre Datenbank als Microsoft Entra-Benutzer aktiviert haben, ist die Zeitpunktwiederherstellung (Point-In-Time Restore, PITR) nicht erfolgreich. Zeitpunktwiederherstellungen funktionieren nur, wenn Sie Azure Synapse Link für SQL für Ihre Datenbank als SQL-Benutzer aktivieren.
  • Wenn Sie eine Datenbank als Microsoft Entra-Benutzer*in erstellen und Azure Synapse Link für SQL aktivieren, kann ein*e SQL-Authentifizierungsbenutzer*in Azure Synapse Link für SQL-Artefakte nicht deaktivieren bzw. keine Änderungen vornehmen (dies gilt selbst für die sysadmin-Rolle). Ein*e andere*r Microsoft Entra-Benutzer*in kann Azure Synapse Link für SQL jedoch für dieselbe Datenbank aktivieren bzw. deaktivieren. Wenn Sie eine Datenbank als SQL-Authentifizierungsbenutzer erstellen, funktioniert die Aktivierung/Deaktivierung von Azure Synapse Link für SQL als Microsoft Entra-Benutzer nicht.
  • Die mandantenübergreifende Datenreplikation wird nicht unterstützt, wenn sich eine Azure SQL-Datenbank und der Azure Synapse-Arbeitsbereich in separaten Mandanten befinden.

Nur SQL Server 2022.

  • Azure Synapse Link für SQL kann nicht in Datenbanken aktiviert werden, die Transaktionsreplikationsherausgeber oder -verteiler sind.
  • Bei Verwendung asynchroner Replikate in einer Verfügbarkeitsgruppe müssen Transaktionen vor der Veröffentlichung in Azure Synapse Link für SQL in alle Replikate geschrieben werden.
  • Azure Synapse Link für SQL wird für Datenbanken mit aktivierter Datenbankspiegelung nicht unterstützt.
  • Das Wiederherstellen einer lokalen Version einer für Azure Synapse Link für SQL aktivierten Datenbank in Azure SQL Managed Instance wird nicht unterstützt.

Achtung

Azure Synapse Link für SQL wird für Datenbanken, die auch Azure SQL Managed Instance Link verwenden, nicht unterstützt. Beachten Sie, dass in diesen Szenarien beim Übergang der verwalteten Instanz in den Lese-/Schreibmodus möglicherweise Probleme mit dem vollen Transaktionsprotokoll auftreten können.

Bekannte Probleme

  • Gilt für: Azure Synapse Link für Azure SQL-Datenbank und SQL Server 2022

  • Problem: Wenn Sie einen Azure Synapse Analytics-Arbeitsbereich löschen, ist es möglich, dass aktive Links nicht beendet werden. Das führt dazu, dass die Quelldatenbank davon ausgeht, dass der Link immer noch funktionsfähig ist. Dies könnte bewirken, dass das Transaktionsprotokoll nicht abgeschnitten wird und sich füllt.

  • Lösung: Es gibt zwei mögliche Lösungen für dieses Problem:

    1. Beenden Sie alle aktiven Links, bevor Sie den Azure Synapse Analytics-Arbeitsbereich löschen.
    2. Bereinigen Sie die Linkdefinition in der Quelldatenbank manuell.
      1. Suchen Sie mit der folgenden Abfrage nach der Tabellengruppen-ID (table_group_id), die beendet werden muss.
        SELECT table_group_id, workspace_id, synapse_workgroup_name
        FROM [changefeed].[change_feed_table_groups]
        WHERE synapse_workgroup_name = <synapse workspace name>;
        
      2. Trennen Sie jeden Link, der gefunden wurde, mithilfe der folgenden Prozedur.
        EXEC sys.sp_change_feed_drop_table_group @table_group_id = <table_group_id>;
        
      3. Wenn Sie alle Tabellengruppen für eine bestimmte Datenbank deaktivieren, können Sie optional auch den Änderungsfeed für die Datenbank mit dem folgenden Befehl deaktivieren.
        EXEC sys.sp_change_feed_disable_db;
        

Wenn Sie den Änderungsfeed für eine Tabelle erneut aktivieren, für die er kürzlich deaktiviert wurde, wird ein Fehler angezeigt.

  • Gilt für: Azure Synapse Link für Azure SQL-Datenbank und SQL Server 2022
  • Dies ist ein ungewöhnliches Verhalten.
  • Problem: Wenn Sie versuchen, eine Tabelle zu aktivieren, die kürzlich deaktiviert wurde, deren Metadaten noch nicht bereinigt wurden und deren Zustand als DEAKTIVIERT gekennzeichnet ist, wird ein Fehler mit dem Hinweis A table can only be enabled once among all table groups ausgelöst.
  • Lösung: Warten Sie einige Zeit, bis die deaktivierte Tabellensystemprozedur abgeschlossen wird, und versuchen Sie dann noch mal, die Tabelle erneut zu aktivieren.
  • Gilt für: Azure Synapse Link für Azure SQL-Datenbank und SQL Server 2022
  • Problem: Bei SQL-Datenbanken, die mit Azure Synapse Link aktiviert sind, werden das changefeed-Schema und der zugehörige Benutzer nicht aus der neuen Datenbank ausgeschlossen, wenn Sie SSDT-Import/Export- und Extrahieren/Bereitstellen-Vorgänge zum Importieren/Einrichten einer neuen Datenbank verwenden. Die Tabellen für den Änderungsfeed werden jedoch von DacFX ignoriert, weil sie in sys.objects als is_ms_shipped=1 gekennzeichnet sind, und diese Objekte werden nie in SSDT-Import/Export- und Extrahieren/Bereitstellen-Vorgängen eingeschlossen. Beim Aktivieren von Azure Synapse Link für die importierte/bereitgestellte Datenbank schlägt die gespeicherte Systemprozedur sys.sp_change_feed_enable_db fehl, wenn der changefeed-Benutzer und das zugehörige Schema bereits vorhanden sind. Dieses Problem tritt auf, wenn Sie einen Benutzer oder ein Schema namens changefeed erstellt haben, der bzw. das keinen Bezug zur Azure Synapse Link-Änderungsfeedfunktion hat.
  • Lösung:
    • Löschen Sie das leere changefeed-Schema und den leeren changefeed-Benutzer manuell. Anschließend kann Azure Synapse Link für die importierte/bereitgestellte Datenbank erfolgreich aktiviert werden.
    • Wenn Sie ein benutzerdefiniertes Schema oder einen benutzerdefinierten Benutzer namens changefeed in Ihrer Datenbank definiert haben, der keinen Bezug zu Azure Synapse Link hat, und Sie nicht beabsichtigen, Azure Synapse Link für SQL zu verwenden, ist es nicht notwendig, Ihr changefeed-Schema oder den zugehörigen Benutzer zu löschen.
    • Wenn Sie ein benutzerdefiniertes Schema oder einen benutzerdefinierten Benutzer namens changefeed in Ihrer Datenbank definiert haben, kann diese Datenbank derzeit nicht an Azure Synapse Link für SQL teilnehmen.