Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Von Bedeutung
Die Datenerfassung für Oracle durch Attunity ist jetzt veraltet. Weitere Details finden Sie in der Ankündigung.
In diesem Abschnitt werden einige wichtige Konzepte des Oracle CDC Service beschrieben. Die in diesem Abschnitt enthaltenen Konzepte sind:
-
In diesem Abschnitt werden die Tabellen beschrieben, die in dieser Datenbank enthalten sind und wie es für CDC wichtig ist.
-
Dieser Abschnitt enthält eine kurze Beschreibung der CDC-Datenbanken. Diese Datenbanken werden mit der Oracle CDC Designer Console erstellt. Weitere Informationen zu den CDC-Datenbanken finden Sie in der Dokumentation zur Installation der CDC Designer Console.
Verwenden der Befehlszeile zum Konfigurieren des CDC-Diensts
In diesem Abschnitt werden die Befehlszeilenbefehle beschrieben, die zum Konfigurieren des Oracle CDC-Diensts verwendet werden können.
Die MSXDBCDC-Datenbank
Die MSXDBCDC-Datenbank (Microsoft External-Database CDC) ist eine spezielle Datenbank, die bei Verwendung des CDC-Diensts für Oracle mit einer SQL Server-Instanz erforderlich ist.
Der Name dieser Datenbank kann nicht geändert werden. Wenn eine Datenbank namens MSXDBCDC in der SQL Server-Hostinstanz vorhanden ist und andere Tabellen als die vom CDC-Dienst für Oracle definierten enthält, kann die SQL Server-Hostinstanz nicht verwendet werden.
Die wichtigsten Verwendungsmöglichkeiten für diese Datenbank sind:
Dient als Registrierung von Oracle CDC Services, die einer SQL Server-Instanz zugeordnet sind. Diese Informationen werden für die Konfiguration und das Design von Diensten verwendet und unterstützen die Koordination mehrerer CDC-Dienste mit demselben Namen, die auf verschiedenen Knoten laufen, wobei ein Knoten der aktive ist.
Dient als Registrierung der Oracle CDC-Instanzen, die in einer SQL Server-Instanz enthalten sind, dem CDC-Dienst, der jede Instanz verarbeitet, und der jeweils verwendeten Konfigurationsversion. Diese Informationen entsprechen der is_cdc_enabled Spalte in der Sys.databases-Tabelle der Masterdatenbank. Der CDC-Dienst überprüft in regelmäßigen Abständen die dbo.xdbcdc_databases Tabelle, um Änderungen zu identifizieren, die an der CDC-Konfiguration oder an der Liste der erfassten Instanzen vorgenommen wurden.
Speichern Sie gespeicherte Sysadmin-Prozeduren, die beim Erstellen und Verwalten von CDC-Instanzen helfen. Diese ähneln den Systemprozeduren, die für die Implementierung des SQL Server CDC-Features verwendet werden.
Erstellen der MSXDBCDC-Datenbank
Bevor der Oracle CDC-Dienst definiert werden kann, muss eine MSXDBCDC-Datenbank erstellt werden. Sie können nur eine MSXDBCDC-Datenbank in einer SQL Server-Instanz erstellen. Die MSXDBCDC-Datenbank wird erstellt, wenn Sie eine SQL Server-Datenbank für Oracle CDC vorbereiten. Dies kann mithilfe der Oracle CDC Service Configuration Console oder durch Ausführen eines Erstellungsskripts erfolgen, das von der CDC Service Configuration Console generiert wird.
Der Besitzer dieser Datenbank ist der Oracle CDC Service Administrator, der alle oracle CDC-Instanzen steuern kann, die unter der SQL Server-Instanz gehostet werden.
Siehe auch:
SQL Server für die Einrichtung von CDC vorbereiten
Die MSXDBCDC-Datenbanktabellen
In diesem Abschnitt werden die folgenden Tabellen in der MSXDBCDC-Datenbank beschrieben.
dbo.xdbcdc_trace
In dieser Tabelle werden Ablaufverfolgungsinformationen für den Oracle CDC-Dienst gespeichert. Die in dieser Tabelle gespeicherten Informationen umfassen bedeutende Statusänderungen und Protokolldaten.
Der Oracle CDC Service schreibt Fehlereinträge und einige der Informationseinträge sowohl in das Windows-Ereignisprotokoll als auch in die Ablaufverfolgungstabelle. In einigen Fällen kann auf die Ablaufverfolgungstabelle nicht zugegriffen werden, in diesem Fall kann über das Ereignisprotokoll auf die Fehlerinformationen zugegriffen werden.
Im Folgenden werden die Elemente beschrieben, die in der dbo.xdbcdc_trace Tabelle enthalten sind.
| Gegenstand | BESCHREIBUNG |
|---|---|
| Zeitstempel | Der genaue UTC-Zeitstempel, zu dem der Protokolldatensatz geschrieben wurde. |
| Typ | Enthält einen der folgenden Werte. FEHLER INFORMATIONEN SPUR |
| Knoten | Der Name des Knotens, auf dem der Datensatz geschrieben wurde. |
| Status | Der Statuscode, der von der Statustabelle verwendet wird. |
| Unterstatus | Der Unterstatuscode, der von der Statustabelle verwendet wird. |
| Statusnachricht | Die Statusmeldung, die von der Statustabelle verwendet wird. |
| Quelle | Der Name der Oracle CDC-Komponente, die den Protokolldatensatz erzeugt hat. |
| text_data | Zusätzliche Textdaten für Fälle, in dem der Fehler- oder Ablaufverfolgungsdatensatz eine Textnutzlast enthält. |
| Binärdaten | Zusätzliche Binärdaten für Fälle, in denen der Fehler- oder Protokolldatensatz eine binäre Nutzlast enthält. |
Die Oracle CDC-Instanz löscht alte Zeilen in Protokolltabellen gemäß der Aufbewahrungsrichtlinie.
dbo.xdbcdc_databases
Diese Tabelle enthält die Namen von CDC Service für Oracle CDC-Datenbanken in der aktuellen SQL Server-Instanz. Jede Datenbank entspricht einer Oracle CDC-Instanz. Der Oracle CDC Service verwendet diese Tabelle, um zu bestimmen, welche Instanzen gestartet oder beendet werden sollen und welche Instanzen neu konfiguriert werden sollen.
In der folgenden Tabelle werden die Elemente beschrieben, die in der dbo.xdbcdc_databases Tabelle enthalten sind.
| Gegenstand | BESCHREIBUNG |
|---|---|
| Name | Der Name der Oracle-Datenbank in der SQL Server-Instanz. |
| Konfiguration_Version | Der Zeitstempel (UTC) der letzten Änderung in der entsprechenden CDC-Datenbank xdbcdc_config-Tabelle oder der Zeitstempel (UTC) für die aktuelle Zeile in dieser Tabelle. Der UPDATE-Trigger erzwingt einen Wert von GETUTCDATE() für dieses Element. config_version ermöglicht es dem CDC-Dienst, die CDC-Instanz zu identifizieren, die auf Konfigurationsänderungen überprüft werden muss, oder zum Aktivieren/Deaktivieren. |
| CDC-Dienstname | Dieses Element bestimmt, welcher Oracle CDC-Dienst die ausgewählte Oracle-Datenbank verarbeitet. |
| aktiviert | Gibt an, ob die Oracle CDC-Instanz aktiv (1) oder deaktiviert ist (0). Wenn der Oracle CDC Service startet, werden nur die Instanzen gestartet, die als aktiviert (1) gekennzeichnet sind. Hinweis: Eine Oracle CDC-Instanz kann aufgrund eines Fehlers deaktiviert werden, der nicht erneut versucht werden kann. In diesem Fall muss die Instanz manuell neu gestartet werden, nachdem der Fehler behoben wurde. |
dbo.xdbcdc_services
In dieser Tabelle sind die CDC-Dienste aufgeführt, die der SQL Server-Hostinstanz zugeordnet sind. Diese Tabelle wird von der CDC-Designerkonsole verwendet, um die Liste der CDC-Dienste zu ermitteln, die für die lokale SQL Server-Instanz konfiguriert sind. Es wird auch vom CDC-Dienst verwendet, um sicherzustellen, dass nur ein ausgeführter Windows-Dienst einen bestimmten Oracle CDC-Dienstnamen verarbeitet.
Im Folgenden werden die Aufnahmestatuselemente beschrieben, die in der dbo.xdbcdc_databases Tabelle enthalten sind.
| Gegenstand | BESCHREIBUNG |
|---|---|
| CDC-Dienstname | Der Name des Oracle CDC-Diensts (der Windows-Dienstname). |
| cdc_service_sql_login | Der Name der SQL Server-Anmeldung, die vom Oracle CDC Service zum Herstellen einer Verbindung mit der SQL Server-Instanz verwendet wird. Ein neuer SQL-Benutzer mit dem Namen cdc_service wird erstellt und diesem Anmeldenamen zugeordnet und anschließend als Mitglied der db_ddladmin, db_datareader und db_datawriter festen Datenbankrollen für jede CDC-Datenbank hinzugefügt, die vom Dienst behandelt wird. |
| Referenzanzahl | Dieses Element zählt die Anzahl der Computer, auf denen derselbe Oracle CDC Service installiert ist. Es wird mit jeder Ergänzung des gleichen namens Oracle CDC-Diensts erhöht und wird erhöht, wenn ein solcher Dienst entfernt wird. Wenn der Zähler null erreicht, wird diese Zeile gelöscht. |
| aktiver_Serviceknoten | Der Name des Windows-Knotens, der derzeit den CDC-Dienst ausführt. Wenn der Dienst ordnungsgemäß beendet wird, wird diese Spalte auf NULL festgelegt, was angibt, dass kein aktiver Dienst mehr vorhanden ist. |
| Aktiver Dienst-Herzschlag | Dieses Element verfolgt den aktuellen CDC-Dienst nach, um festzustellen, ob er noch aktiv ist. Dieses Element wird in regelmäßigen Abständen mit dem aktuellen UTC-Zeitstempel der Datenbank für den aktiven CDC-Dienst aktualisiert. Das Standardintervall beträgt 30 Sekunden, das Intervall kann jedoch konfiguriert werden. Wenn ein ausstehender CDC-Dienst erkennt, dass der Takt nach dem Übergeben des konfigurierten Intervalls nicht aktualisiert wurde, versucht der ausstehende Dienst, die aktive CDC-Dienstrolle zu übernehmen. |
| Optionen | Dieses Element gibt die sekundären Optionen an, z. B. Ablaufverfolgung oder Optimierung. Sie wird in Form von name[=value][; ]geschrieben. Die Optionszeichenfolge verwendet dieselbe Semantik wie die ODBC-Verbindungszeichenfolge. Wenn die Option boolescher Wert ist (mit dem Wert "ja/nein"), kann der Wert nur den Namen enthalten. Die Ablaufverfolgung weist die folgenden möglichen Werte auf. STIMMT auf FALSCH aus <Klassenname>[,Klassenname>] Der Standardwert ist false. service_heartbeat_interval ist das Zeitintervall (in Sekunden), in dem der Dienst die Spalte active_service_heartbeat aktualisiert. Der Standardwert ist 30. Der Maximalwert ist 3600. service_config_polling_interval ist das Abrufintervall (in Sekunden) für den CDC-Dienst, um nach Konfigurationsänderungen zu suchen. Der Standardwert ist 30. Der Maximalwert ist 3600. sql_command_timeout ist das Befehlstimeout, das mit SQL Server funktioniert. Der Standardwert ist 1. Der Maximalwert ist 3600. |
Gespeicherte MSXDBCDC-Datenbankprozeduren
In diesem Abschnitt werden die folgenden gespeicherten Prozeduren in der MSXDBCDC-Datenbank beschrieben.
dbo.xcbcdc_reset_db(Datenbankname)
Dieses Verfahren löscht die Daten einer Oracle CDC-Instanz. Es wird verwendet:
Um die Datenerfassung neu zu starten, unter Ignorieren der vorherigen Daten, z. B. nach der Wiederherstellung der Quelldatenbank oder nach einer Inaktivität, wenn einige der Oracle-Transaktionsprotokolle nicht verfügbar sind.
Wenn im CDC-Zustand eine Beschädigung vorhanden ist (insbesondere in den Cdc.*-Tabellendaten).
Die dbo.xcbcdc_reset_db-Prozedur führt die folgenden Aufgaben aus:
Beendet die CDC-Instanz (sofern aktiv).
Schneidet die Änderungstabellen, die cdc_lsn_mapping Tabelle und die cdc_ddl_history Tabelle ab.
Löscht die cdc_xdbcdc_state Tabelle.
Löscht die Spalte start_lsn für jede Zeile der cdc_change_table.
Um die dbo.xcbcdc_reset_db-Prozedur zu verwenden, muss der Benutzer Mitglied der Datenbankrolle db_owner für die benannte CDC-Instanzdatenbank sein oder Mitglied der festen Serverrollen sysadmin oder serveradmin sein.
Weitere Informationen zu den CDC-Tabellen finden Sie in den CDC-Datenbanken im Hilfesystem in der CDC Designer Console.
dbo.xdbcdc_disable_db(dbname)
Die dbo.xcbcdc_disable_db Prozedur führt die folgende Aufgabe aus:
- Entfernt den Eintrag für die ausgewählte CDC-Datenbank in der MSXDBCDC.xdbcdc_databases Tabelle.
Um die dbo.xcbcdc_disable_db-Prozedur zu verwenden, muss der Benutzer Mitglied der db_owner-Datenbankrolle sein, damit die CDC-Instanz benannt wird oder ein Mitglied der festen Serverrolle"sysadmin" oder "serveradmin" ist.
Weitere Informationen zu den CDC-Tabellen finden Sie in den CDC-Datenbanken im Hilfesystem in der CDC Designer Console.
dbo.xcbcdc_add_service(svcname,sqlusr)
Die dbo.xcbcdc_add_service Prozedur fügt der MSXDBCDC.xdbcdc_services Tabelle einen Eintrag hinzu und fügt der ref_count Spalte für den Dienstnamen in der MSXDBCDC.xdbcdc_services Tabelle eine Inkrementierung hinzu. Wenn die ref_count 0 ist, wird die Zeile gelöscht.
Um die Prozedur dbo.xcbcdc_add_service< verwenden> zu können, muss der Benutzer ein Mitglied der db_owner Datenbankrolle für die bezeichnete CDC-Instanzdatenbank oder ein Mitglied der festen Serverrolle sysadmin oder serveradmin sein.
dbo.xdbcdc_start(dbname)
Die dbo.xdbcdc_start-Prozedur sendet eine Startanforderung an den CDC-Dienst, der die ausgewählte CDC-Instanz verarbeitet, um die Änderungsverarbeitung zu starten.
Um die dbo.xcdcdc_start-Prozedur zu verwenden, muss der Benutzer Mitglied der db_owner Datenbankrolle für die CDC-Datenbank sein oder Mitglied der Rollen "sysadmin " oder " serveradmin " für die SQL Server-Instanz sein.
dbo.xdbcdc_stop(dbname)
Die dbo.xdbcdc_stop-Prozedur sendet eine Stoppanforderung an den CDC-Dienst, der die ausgewählte CDC-Instanz verarbeitet, um die Änderungsverarbeitung zu beenden.
Um die dbo.xcdcdc_stop-Prozedur zu verwenden, muss der Benutzer Mitglied der db_owner Datenbankrolle für die CDC-Datenbank sein oder Mitglied der Rollen "sysadmin " oder " serveradmin " für die SQL Server-Instanz sein.
Die CDC-Datenbanken
Jede Oracle CDC-Instanz, die in einem CDC-Dienst verwendet wird, ist einer bestimmten SQL Server-Datenbank zugeordnet, die als CDC-Datenbank bezeichnet wird. Diese SQL Server-Datenbank wird in der SQL Server-Instanz gehostet, die dem Oracle CDC Service zugeordnet ist.
Die CDC-Datenbank enthält ein spezielles CDC-Schema. Der Oracle CDC Service verwendet dieses Schema mit Tabellennamen mit dem Präfix xdbcdc_. Dieses Schema wird für Sicherheits- und Konsistenzzwecke verwendet.
Sowohl die Oracle CDC-Instanz als auch die CDC-Datenbanken werden mit der Oracle CDC Designer Console erstellt. Weitere Informationen zu den CDC-Datenbanken finden Sie in der Dokumentation zur Installation der Oracle CDC Designer Console.
Verwenden der Befehlszeile zum Konfigurieren des CDC-Diensts
Sie können das Oracle CDC Service-Programm (xdbcdcsvc.exe) über die Befehlszeile bedienen. Das CDC-Dienstprogramm ist eine systemeigene ausführbare 32-Bit-/64-Bit-Windows-Datei.
Siehe auch
Verwenden des CDC-Diensts Command-Line Schnittstelle
Dienstprogrammbefehle
Im Abschnitt werden die folgenden Befehle beschrieben, die zum Konfigurieren des CDC-Diensts verwendet werden.
Konfiguration
Verwenden Sie Config, um eine Oracle CDC Service-Konfiguration aus einem Skript zu aktualisieren. Der Befehl kann verwendet werden, um nur bestimmte Teile der CDC-Dienstkonfiguration zu aktualisieren (z. B. nur die Verbindungszeichenfolge, ohne das asymmetrische Schlüsselkennwort zu kennen). Der Befehl muss von einem Computeradministrator ausgeführt werden. Im Folgenden sehen Sie ein Beispiel für den Config Befehl.
"<path>xdbcdcsvc.exe" config
<cdc-service-name>
[connect= <sql-server-connection-string>]
[key= <asym-key-password>]
[svcacct= <windows-account> <windows-password>]
[sqlacct= <sql-username> <sql-password>]
Ort:
cdc-service-name ist der Name des CDC-Diensts, der aktualisiert werden soll. Dies ist ein erforderlicher Parameter.
sql-server-connection-string ist die verbindungszeichenfolge, die aktualisiert werden soll. Wenn die Verbindungszeichenfolge Leerzeichen oder Anführungszeichen enthält, muss sie in doppelte Anführungszeichen (") eingeschlossen werden. Eingebettete Anführungszeichen werden durch Verdopplung der Anführungszeichen maskiert.
asym-key-password ist das Kennwort, das aktualisiert werden soll.
Windows-Konto, Windows-Kennwort sind die Windows-Kontoanmeldeinformationen für den Dienst, der aktualisiert wird.
SQL-Benutzername, SQL-Kennwort sind die SQL Server-Authentifizierungsanmeldeinformationen, die aktualisiert werden. Wenn sqlacct sowohl über einen leeren Benutzernamen als auch über ein leeres Kennwort verfügt, stellt der Oracle CDC-Dienst mithilfe der Windows-Authentifizierung eine Verbindung mit SQL Server bereit.
Hinweis: Jeder Parameter, der Leerzeichen oder doppelte Anführungszeichen enthält, muss mit doppelten Anführungszeichen (") umschlossen werden. Eingebettete doppelte Anführungszeichen müssen verdoppelt werden, zum Beispiel beim Eingeben des Kennworts "A#B" D verwenden Sie ""A#B"" D".
Erstellen
Verwenden Sie Create, um einen Oracle CDC-Dienst aus einem Skript zu erstellen. Der Befehl muss von einem Computeradministrator ausgeführt werden. Im Folgenden sehen Sie ein Beispiel für den Create Befehl:
"<path>xdbcdcsvc.exe" create
<cdc-service-name>
[connect= "<sql-server-connection-string>"]
[key= <asym-key-password>]
[svcacct <windows-account> <windows-password>]
[sqlacct <sql-username> <sql-password>]
Ort:
cdc-service-name ist der Name des neu erstellten Diensts. Wenn bereits ein Dienst mit diesem Namen vorhanden ist, gibt das Programm einen Fehler zurück. Sie sollten keine langen Namen oder Namen mit Leerzeichen verwenden. Die Zeichen "/" und "\" sind ungültige Zeichen in einem Dienstnamen. Dies ist ein erforderlicher Parameter.
sql-server-connection-string ist die Verbindungszeichenfolge, die zum Herstellen einer Verbindung mit der SQL Server-Instanz verwendet werden soll, die dem neuen Oracle CDC Service zugeordnet ist.
asym-key-password ist das Kennwort, das den asymmetrischen Schlüssel schützt, der für die Speicherung der Anmeldeinformationen für die Protokollanalyse der Quelldatenbank verwendet wird.
windows-account und windows-password sind der Kontoname und das Passwort, die mit dem zu erstellenden Oracle CDC-Dienst verbunden sind.
SQL-Benutzername, SQL-Kennwort sind der Name und das Kennwort des SQL Server-Kontos, das zum Herstellen einer Verbindung mit der SQL Server-Instanz verwendet wird. Wenn beide Parameter leer sind, stellt der CDC-Dienst für Oracle eine Verbindung mit SQL Server mithilfe der Windows-Authentifizierung bereit.
Hinweis: Jeder Parameter, der Leerzeichen oder doppelte Anführungszeichen enthält, muss mit doppelten Anführungszeichen (") umschlossen werden. Eingebettete doppelte Anführungszeichen müssen verdoppelt werden (z. B. um "A#B" D als Kennwort einzugeben ""A#B"" D").
Löschen
Verwenden Sie Delete, um den Oracle CDC-Dienst sauber aus einem Skript zu löschen. Dieser Befehl muss von einem Computeradministrator ausgeführt werden. Im Folgenden sehen Sie ein Beispiel für den Delete Befehl.
"<path>xdbcdcsvc.exe" delete
<cdc-service-name>
Ort:
cdc-service-name ist der Name des CDC-Dienstes, der gelöscht werden soll.
Hinweis: Jeder Parameter, der Leerzeichen oder doppelte Anführungszeichen enthält, muss mit doppelten Anführungszeichen (") umschlossen werden. Eingebettete doppelte Anführungszeichen müssen verdoppelt werden, zum Beispiel beim Eingeben des Kennworts "A#B" D verwenden Sie ""A#B"" D".
Siehe auch
Verwenden des CDC-Diensts Command-Line Schnittstelle
SQL Server für die Einrichtung von CDC vorbereiten