Betriebliche Überlegungen zur CDC-Erfassungsmethode

Erfahren Sie mehr über die SQL Server CDC Capture-Optionen, -Features und -Empfehlungen.

SQL Server Change Data Capture optimieren

Die folgenden Informationen sind nützlich, um die Capture-Performance von Extract zu verbessern.

Oracle GoldenGate CDC-Objektversionierung

Oracle GoldenGate stellt ein Versionstracking-Subsystem bereit, um die CDC-Objekte zu verfolgen, die von Oracle GoldenGate erstellt werden, wenn zusätzliches Logging aktiviert wird. Folgende Objekte sind verfügbar:

Unterstützte und nicht unterstützte Extraktionsparameter für SQL Server Change Data Capture

Erfahren Sie mehr über die Parameter, die mit CDC Extract verwendet werden. In folgender Tabelle werden die unterstützten und nicht unterstützten Parameter aufgeführt.

Unterstützte Parameter Nicht unterstützte Parameter
TRANLOGOPTIONS TRANLOGOPTIONS MANAGESECONDARYTRUNCATIONPOINT/NOMANAGESECONDARYTRUNCATIONPOINT/ACTIVESECONDARYTRUNCATIONPOINT
ALWAYSONREADONLYROUTING -
TRANLOGOPTIONS LOB_CHUNK_SIZE -
TRANLOGOPTIONS MANAGECDCCLEANUP/NOMANAGECDCCLEANUPTRANLOGOPTIONS -
TRANLOGOPTIONS QUERYTIMEOUT -
TRANLOGOPTIONS TRANCOUNT -

TRANLOGOPTIONEN LOB_CHUNK_SIZE

Der Extract-Parameter LOB_CHUNK_SIZE wird für die CDC Capture-Methode hinzugefügt, um große Objekte zu unterstützen. Wenn Sie große LOB-Datengrößen haben, können Sie die LOB_CHUNK_SIZE vom Standard von 4000 Byte auf einen höheren Wert bis zu 65535 Byte anpassen, sodass die Fetch-Größe erhöht wird. Dadurch werden die zum Abrufen des gesamten LOB erforderlichen Trips reduziert.

Beispiel: TRANLOGOPTIONS LOB_CHUNK_SIZE 8000

TRANLOGOPTIONEN MANAGECDCCLEANUP/NOMANAGECDCCLEANUP

Der Extract-Parameter MANAGECDCCLEANUP/NOMANAGECDCCLEANUP wird von der CDC Capture-Methode verwendet, um den Extract anzuweisen, ob Recovery-Checkpointdaten im Oracle GoldenGate CDC-Bereinigungsjob verwaltet werden sollen. Der Recovery-Checkpoint wird beibehalten. Das Löschen der ct-Tabelle(n) findet jedoch nicht statt, wenn auch der SQL Server CDC-Bereinigungsjob nicht aktiviert ist. Für das Löschen ist er erforderlich.

Der Standardwert ist MANAGECDCCLEANUP und muss nicht explizit im Extract aufgeführt werden. Dazu muss jedoch der Oracle GoldenGate CDC-Bereinigungsjob erstellt werden, bevor der Extract gestartet wird. MANAGECDCCLEANUP sollte für alle Produktionsumgebungen verwendet werden, wobei NOMANAGECDCCLEANUP bei Bedarf für temporäre Implementierungen und Testimplementierungen verwendet werden kann.

Beispiel: TRANLOGOPTIONS MANAGECDCCLEANUP

TRANLOGOPTIONEN EXCLUDEUSER/EXCLUDEETRANS

Der SQL Server CDC Capture-Job erfasst keine Benutzerinformationen oder Transaktionsnamen, die mit einer Transaktion verknüpft sind. Da diese Informationen nicht in den CDC-Staging-Tabellen protokolliert werden, hat Extract keine Methode, DML von einem bestimmten Benutzer oder einer DML mit einem bestimmten Transaktionsnamen auszuschließen. Die Parameter EXCLUDEUSER und EXCLUDETRANS sind daher für den CDC Capture-Prozess nicht gültig.

TRANLOGOPTIONEN MANAGESECONDARYTRUNCATIONPOINT/NOMANAGESECONDARYTRUNCATIONPOINT/ACTIVESECONDARYTRUNCATIONPOINT

Der SQL Server Change Data Capture-Job ist der einzige Prozess, der Daten aus dem Transaktionslog erfasst, wenn die Oracle GoldenGate CDC Capture-Methode verwendet wird. Die sekundäre Abschneidepunktverwaltung wird vom Extract nicht verarbeitet. Für den Change Data Capture Extract sind diese Parameter nicht gültig.

TRANLOGOPTIONEN ALWAYSONREADONLYROUTING

Mit dem Parameter ALWAYSONREADONLYROUTING kann Extract for SQL Server seine schreibgeschützte Verarbeitung an ein verfügbares sekundäres Lese-Intent weiterleiten, wenn eine Verbindung zu einem Always On-Verfügbarkeitsgruppen-Listener besteht.

ABFRAGE-TIMEOUT FÜR TRANSLOGOPTIONEN

Gibt an, wie lange Abfragen an SQL Server auf Ergebnisse warten, bevor eine Timeoutfehlermeldung gemeldet wird. Diese Option verwendet einen ganzzahligen Wert, um die Anzahl der Sekunden darzustellen. Der Standardwert für den Abfrage-Timeout beträgt 300 Sekunden (5 Minuten). Der Mindestwert beträgt 0 Sekunden (unendlicher Timeout). Das Maximum beträgt 2147483645 Sekunden.

TRANLOGOPTIONEN TRANCOUNT

Ermöglicht die Anpassung der Anzahl der pro Aufruf von Extract verarbeiteten Transaktionen, um Daten aus den Staging-Tabellen für die SQL Server-Änderungsdatenerfassung abzurufen. Je nach Ihrer Transaktions-Workload kann die Anpassung dieses Werts den Durchsatz der Erfassungsrate verbessern, obwohl nicht alle Workloads positiv beeinflusst werden. Der Mindestwert ist 1, der Höchstwert 100 und der Standardwert 10.

Details zum Oracle GoldenGate CDC-Bereinigungsprozess

Die Aufgabe "Änderungsdaten in Oracle GoldenGate löschen" ist standardmäßig für einen CDC-Extrakt erforderlich, da Extract standardmäßig TRANLOGOPTIONS MANAGECDCCLEANUP ist.

Es darf nur eine Löschaufgabe für jede für CDC Capture aktivierte Datenbank vorhanden sein. Sie müssen die Aufgabe mit den Schritten erstellen, die im Abschnitt Datenbank für Oracle GoldenGate vorbereiten dieses Dokuments aufgeführt sind.

Oracle GoldenGate-Aufgabe zum Löschen von Änderungsdaten ändern

Der Standardplan für die Häufigkeit von Löschaufgaben und der Datenaufbewahrungszeitraum für die Aufgabe "Änderungsdaten löschen" in Oracle GoldenGate werden alle 10 Minuten mit einer Datenaufbewahrungs-Policy von 3 Tagen oder 1 Stunde ausgeführt, je nach installierter Version von Oracle GoldenGate.

Für kundenspezifische Anforderungen müssen möglicherweise der Aufbewahrungszeitraum (Option Regel beibehalten) und der Ausführungszeitplan der Aufgabe (Option Löschhäufigkeit) angepasst werden.

Die Option Regel beibehalten bestimmt die Anzahl der CDC-Staging-Daten, die in der Quelldatenbank gespeichert werden sollen, in Stunden oder Tagen. Je nach installierter Version von Oracle GoldenGate sind die Standardwerte entweder 3 Tage oder 1 Stunde. Niedrigere CDC-Datenaufbewahrungszeiträume reduzieren die Menge der in der Datenbank gespeicherten CDC-Staging-Daten, begrenzen jedoch die Möglichkeit für einen Benutzer, den Extract auf eine Zeit zurückzusetzen, die älter ist als die in den Staging-Tabellen vorhandenen Daten. In der Regel muss ein vorhandener Extract nicht zu einem früheren Zeitpunkt neu positioniert werden. Daher wird empfohlen, die neuere Standardeinstellung von 1 Stunde zu verwenden, es sei denn, es gibt einen bestimmten Fall, bei dem mehr Staging-Daten in der Datenbank verbleiben müssen. Wenn Sie diesen Wert jedoch von einem höheren Aufbewahrungszeitraum in einen sehr kurzen Aufbewahrungszeitraum ändern, könnte er bei der nächsten Ausführung des Aufgabenplans viel Transaktionslogspeicherplatz und System-Overhead belegen. Es wird daher empfohlen, den Wert Keep Rule im Laufe der Zeit langsam zu verringern, bis Sie den gewünschten Endwert erreichen.

Die Löschhäufigkeit gibt an, wie oft die Aufgabe ausgeführt wird. Der Standardwert beträgt alle 10 Minuten. Es wird empfohlen, den Standardwert beizubehalten, es sei denn, der Overhead aus der Löschaufgabe beeinträchtigt die Datenbankperformance in Zeiten hoher Benutzeraktivitäten.

Um eine vorhandene Aufgabe "Änderungsdaten löschen" zu ändern, navigieren Sie im Menü links neben dem Administrationsservice zur Konfiguration, um die Seite Konfiguration zu öffnen. 1. Klicken Sie auf der Seite Konfiguration auf Aufgaben, um die Seite Aufgaben zu öffnen.

  1. Klicken Sie auf der Seite Aufgaben auf Änderungsdaten löschen.

  2. Klicken Sie auf das Symbol Aufgabe ändern neben einer vorhandenen Aufgabe.

  3. Ändern Sie die Werte der Optionen Regel beibehalten und Löschhäufigkeit nach Bedarf.

  4. Klicken Sie auf Weiterleiten, um die Änderungen zu speichern.

Oracle GoldenGate-Aufgabe zum Löschen von Änderungsdaten löschen

Die Aufgabe "Änderungsdaten löschen" für eine Datenbank darf nur gelöscht werden, wenn keine Extrakte für die Erfassung in der jeweiligen Datenbank konfiguriert sind.

Um eine vorhandene Aufgabe "Änderungsdaten löschen" zu löschen, navigieren Sie im Menü links neben dem Administrationsservice zur Option Konfiguration, um die Seite Konfiguration zu öffnen. 1. Klicken Sie auf der Seite Konfiguration auf Aufgaben, um die Seite Aufgaben zu öffnen.

  1. Klicken Sie auf der Seite Aufgaben auf Änderungsdaten löschen.

  2. Klicken Sie auf das Symbol Aufgabe löschen neben der Aufgabe, die entfernt werden soll.

Vom klassischen Extrakt zu einem CDC-Extrakt aktualisieren

Wenn Sie von einem klassischen Extract aus Oracle GoldenGate 12c (12.3.0.1) oder früher zu einem Oracle GoldenGate 26ai CDC Extract wechseln möchten, müssen Sie das zusätzliche Logging entfernen, das mit der Classic Extract-Installationsmethode implementiert wurde. und aktivieren Sie das zusätzliche Logging mit den CDC Extract-Installationsbinärdateien erneut, da die Aufrufe zur Aktivierung von TRANDATA zwischen den beiden Versionen unterschiedlich sind, und die Implementierung von TRANDATA für Classic Extract wird vom CDC Extract nicht unterstützt.

Befolgen Sie diese allgemeinen Richtlinien, um zusätzliches Logging zu entfernen und erneut zu aktivieren. Besondere Berücksichtigung und Planung sollten bei der Migration von Classic zu CDC Extract in einem Produktionssystem berücksichtigt werden. Die hier bereitgestellten Informationen decken nicht alle Anforderungen ab und werden nur als allgemeine Anforderungen an die ergänzende Protokollierung angeboten:

  1. Stellen Sie sicher, dass der klassische Extract alle verbleibenden Daten in den Logs verarbeitet hat und ordnungsgemäß gestoppt werden kann.

  2. Führen Sie einen der folgenden Schritte aus, je nachdem, wie Extract in Bezug auf andere Replikations- oder CDC-Komponenten ausgeführt wurde:

    • Wenn Extract nicht gleichzeitig mit der SQL Server-Transaktionsreplikation oder einer Nicht-Oracle CDC-Konfiguration in derselben Datenbank ausgeführt wurde, öffnen Sie eine Abfragesession in Management Studio, und setzen Sie die folgende Anweisung für die Quelldatenbank ab, um CDC- oder Replikationskomponenten zu deaktivieren und zu löschen und den sekundären Abschneidepunkt zu löschen.

      EXEC sys.sp_cdc_disable_db

    • Wenn Extract gleichzeitig mit der SQL Server-Transaktionsreplikation oder einer Nicht-Oracle CDC-Konfiguration in derselben Datenbank ausgeführt wurde, führen Sie den Admin-Client aus dem Installationsordner von Classic Extract aus, melden Sie sich mit DBLOGIN bei der Quelldatenbank an, und geben Sie dann den folgenden Befehl für jede Tabelle aus, die sich in der Extract-Konfiguration befindet. Sie können mehrere Tabellennamen mit einem Platzhalter angeben

      DELETE TRANDATA owner.table

      DELETE TRANDATA owner.*

  3. Löschen Sie alle Heartbeat-Tabelleneinträge, wenn einer installiert wurde.

    DELETE HEARTBEATTABLE

  4. Führen Sie mit den Installationsbinärdateien von Oracle GoldenGate CDC Extract die unter Datenbank für Oracle GoldenGate vorbereiten aufgeführten Schritte aus, um zusätzliches Logging und andere erforderliche Komponenten erneut zu aktivieren, und fügen Sie die Heartbeat-Tabelle erneut hinzu.