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.
-
Bei Remote-Deployments ist eine geringe Netzwerklatenz wichtig. Es wird empfohlen, dass die Netzwerklatenz zwischen dem Oracle GoldenGate-Server und dem Quelldatenbankserver weniger als 1 Millisekunde beträgt.
-
Stellen Sie sicher, dass "Statistiken automatisch erstellen" und "Statistiken automatisch aktualisieren" für die Datenbank aktiviert sind. Die Verwaltung von Statistiken für die Tabellen
cdc.OracleGG_#####_CT tables,cdc.lsn_time_mapping tableundOracleGGTranTablesist für die Performance und Latenz des Extract von entscheidender Bedeutung. -
Der SQL Server Change Data Capture-Job erfasst Daten aus dem SQL Server-Transaktionslog und lädt sie in die Change Data Capture-Staging-Tabellen innerhalb der Datenbank.
Im Rahmen des erstellten Jobs können mehrere Tuningparameter verwendet werden. Informationen zur optimalen Optimierung des Jobs finden Sie im folgenden Artikel: https://technet.microsoft.com/en-us/library/dd266396(v=sql.100).aspx
Als allgemeine Empfehlung sollten Sie das Polling-Intervall für den SQL Server Change Data Capture-Job von 5 Sekunden in 1 Sekunde ändern.
Um das Standard-Polling-Intervall des CDC Capture-Jobs zu ändern, führen Sie die folgenden Abfragen für die Datenbank aus:
EXEC [sys].[sp_cdc_change_job] @job_type = N'capture', @pollinginterval = 1, GO, --stops cdc job EXEC [sys].[sp_cdc_stop_job], @job_type = N'capture', GO, --restarts cdc job for new polling interval to take affect EXEC [sys].[sp_cdc_start_job], @job_type = N'capture',
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:
-
Oracle GoldenGate-Änderungstrackingtabellen im Format
OracleGG_object id_CT. -
Gespeicherte Prozeduren im Format
fetch_database name_object id -
Gespeicherte Prozeduren
OracleCDCExtract,OracleGGCreateProcsundOracleGGCreateNextBatch. -
Nachdem der Befehl
ADD TRANDATAerfolgreich abgeschlossen wurde, erstellt Oracle GoldenGate eine Tabelle namensOracleGGVersionunter der in der GLOBALS-Datei angegebenenGGSCHEMA, sofern sie noch nicht vorhanden ist.Als Nächstes fügt Oracle GoldenGate einen Datensatz in die Tabelle ein, der die Start- und Endzeit der
TRANDATA-Session verfolgt. Beim Hochfahren von Extract wird auf Konsistenz zwischen sich und den Oracle GoldenGate-CDC-Objekten geprüft, indem die interne Versionsnummer mit den Versionsnummern in der TabelleOracleGGVersionverglichen wird. Wenn die Versionsnummern nicht übereinstimmen, wird eine Meldung wie die Folgende angezeigt:ERROR OGG-05337 The Oracle GoldenGate CDC object versions on database, source, are not consistent with the expected version, 6. The following versions(s) were found: 3. Rerun ADD TRANDATA for all tables previously enabled, including heartbeat, heartbeat seed, and filter tables.
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.
-
Klicken Sie auf der Seite Aufgaben auf Änderungsdaten löschen.
-
Klicken Sie auf das Symbol Aufgabe ändern neben einer vorhandenen Aufgabe.
-
Ändern Sie die Werte der Optionen Regel beibehalten und Löschhäufigkeit nach Bedarf.
-
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.
-
Klicken Sie auf der Seite Aufgaben auf Änderungsdaten löschen.
-
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:
-
Stellen Sie sicher, dass der klassische Extract alle verbleibenden Daten in den Logs verarbeitet hat und ordnungsgemäß gestoppt werden kann.
-
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
DBLOGINbei 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 angebenDELETE TRANDATA owner.tableDELETE TRANDATA owner.*
-
-
Löschen Sie alle Heartbeat-Tabelleneinträge, wenn einer installiert wurde.
DELETE HEARTBEATTABLE -
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.