Auf dieser Seite erfahren Sie, wie Sie Probleme im Zusammenhang mit Cloud Data Fusion beheben Replikationsjobs.
Ausnahme: Staging-Bucket kann nicht erstellt werden
Wenn die Bucket-Namenskonvention verletzt wird, führt der Replikationsjob kann mit folgendem Fehler im Pipelinelog fehlschlagen:
Caused by: java.io.IOException: Unable to create staging bucket
BUCKET_NAME in project PROJECT_NAME.
Optional können Sie den Namen des Staging-Buckets angeben. Falls nicht angegeben, Replikationsjob generiert einen Replikationsjob, indem ein Suffix an den Job angehängt wird Namen. In einigen Fällen können Sie einen kürzeren Jobnamen verwenden, um dieses Problem zu beheben. Weitere Informationen finden Sie unter Bucket-Namen.
MySQL-CONVERT_TO_NULL
-Wert nicht im Satz
Wenn Sie eine frühere Version von MySQL Connector/J verwenden, z. B. Version 5, Der Replikationsjob schlägt mit folgendem Fehler fehl:
The connection property 'zeroDateTimeBehavior' only accepts values of the form:
'exception', 'round' or 'convertToNull'. The value 'CONVERT_TO_NULL' is not in
this set.
Die zulässigen Werte für zeroDateTimeBehavior
sind nicht kompatibel zwischen
verschiedene Versionen von MySQL Connector/J.
Verwenden Sie MySQL Connector/J Version 8 oder höher, um dieses Problem zu beheben.
Replikation und SQL Server-AlwaysOn-Datenbanken
Eine Microsoft SQL Server-Quelle kann Änderungen aus
Always On
schreibgeschütztes Replikat. Für diese Einrichtung müssen Sie das Laufzeitargument übergeben
source.connector.database.applicationIntent=ReadOnly
in den
Replikationsjob. Ohne dieses Laufzeitargument schlägt der Job mit
folgenden Fehler:
Producer failure
java.lang.RuntimeException: com.microsoft.sqlserver.jdbc.SQLServerException:
Failed to update database "DATABASE_NAME" because the database is read-only.
Um dieses Problem zu beheben,
source.connector.database.applicationIntent=ReadOnly
als Laufzeitargument.
Dadurch wird snapshot.isolation.mode
intern auf snapshot
gesetzt.
Replikationsfehler in statischem Dataproc-Cluster
Wenn Sie einen Replikationsjob ausführen,
Dataproc-Clusterknoten können mit folgendem Fehler fehlschlagen:
java.lang.NullPointerException
- oder Connection reset
-Fehler:
ERROR [SparkRunnerphase-1:i.c.c.i.a.r.ProgramControllerServiceAdapter@93] -
Spark program 'phase-1' failed with error: The driver could not establish a
secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption.
Error: "Connection reset ClientConnectionId:ID"
Dieser Fehler tritt aufgrund des SSL-Anbieters Conscrypt auf konfiguriert für die Verwendung in der auf Dataproc installierten JDK-Version.
Um dieses Problem zu beheben, verwenden Sie den Standard-SSL-Anbieter für Java JDK, indem Sie den Conscrypt-SSL-Anbieter. Um den Conscrypt-SSL-Anbieter zu deaktivieren, legen Sie den folgendes Clusterattribut wenn Sie den Dataproc-Cluster starten:
--properties dataproc:dataproc.conscrypt.provider.enable=false
Bei der Replikation für SQL Server werden nicht alle Spalten für geänderte Tabellen repliziert
Wenn Sie Daten aus einer Tabelle in SQL Server replizieren, Die Replikations-Quelltabelle hat eine neu hinzugefügte Spalte. automatisch zur Tabelle Change Data Capture (CDC) hinzugefügt. Sie müssen ihn manuell zur zugrunde liegenden CDC-Tabelle hinzufügen.
Führen Sie die folgenden Schritte aus, um das Problem zu beheben:
Deaktivieren Sie die CDC-Instanz:
EXEC sp_cdc_disable_table @source_schema = N'dbo', @source_name = N'myTable', @capture_instance = 'dbo_myTable' GO
Aktivieren Sie die CDC-Instanz wieder:
EXEC sp_cdc_enable_table @source_schema = N'dbo', @source_name = N'myTable', @role_name = NULL, @capture_instance = 'dbo_myTable' GO
Erstellen Sie einen neuen Replikationsjob.
Weitere Informationen finden Sie unter Änderungen an Quelltabellen verarbeiten.
Fehler in Bezug auf Rollen und Berechtigungen
Die folgenden Probleme treten bei der Zugriffssteuerung auf.
Problem mit Berechtigungen des Cloud Data Fusion-Dienstkontos
Beim Ausführen eines Replikationsjobs mit Oracle Database das Abrufen kann eine Tabellenliste mit dem folgenden Fehler fehlschlagen:
Error io.grpc.StatusRuntimeException: PERMISSION_DENIED: Permission
'datastream.streams.get' denied on 'projects/PROJECT_NAME/locations/REGION/streams/STREAM_NAME'
Wenn Sie einen Replikationsjob mit einer Oracle-Datenbank ausführen,
Cloud Data Fusion verwendet im Back-End den Datastream-Dienst.
Um die Berechtigungen zu erhalten, die Sie zur Verwendung des Datastream-Dienstes benötigen,
bitten Sie Ihren Administrator, Ihnen
Datastream-Administrator
(roles/datastream.admin
) IAM-Rolle für das Cloud Data Fusion-Dienstkonto.
Berechtigung zum Ansehen von Change Data Capture nicht gewährt
Beim Replizieren von Daten aus SQL Server wird möglicherweise der folgende Fehler in der Pipeline-Log:
No whitelisted table has enabled CDC, whitelisted table list does not contain any
table with CDC enabled or no table match the white/blacklist filter(s)
Dieses Problem tritt auf, wenn der Nutzer in den Eigenschaften der Quellverbindung angegeben wurde
ist nicht berechtigt, Change Data Capture (CDC) für die
replizierten Tabelle. Dies wird über den Parameter role_name
gesteuert, wenn
CDC mit sys.sp_cdc_enable_table
für die Tabelle aktivieren
Weitere Informationen zum Gewähren der erforderlichen Berechtigungen zum Ansehen von CDC finden Sie unter CDC für Tabelle aktivieren und sys.sp_cdc_enable_table.
Problem mit der Berechtigung „Benutzerdefinierter Typ“
Wenn der vom Replikationsjob verwendete Datenbanknutzer keine Berechtigungen für den benutzerdefinierten Typ (User Defined Type, UDT) gewährt, wird Ihnen möglicherweise der folgende Fehler angezeigt: im Pipelinelog:
java.lang.IllegalArgumentException: The primary key cannot reference a non-existent
column'oid' in table TABLE_NAME
In dieser Fehlermeldung ist die Spalte oid
möglicherweise eine UDT.
Um dieses Problem zu beheben, gewähren Sie dem Nutzer Zugriff, indem Sie den folgenden Befehl ausführen: in der Datenbank:
GRANT EXECUTE ON TYPE::UDT_NAME to YOUR_USER
SQL Server-Agent wird nicht ausgeführt
Wenn der SQL Server-Agent nicht ausgeführt wird, sehen Sie möglicherweise Folgendes: Fehler im Pipelinelog:
No maximum LSN recorded in the database; please ensure that the SQL Server Agent
is running [io.debezium.connector.sqlserver.SqlServerStreamingChangeEventSource]
Starten Sie den SQL Server-Agent, um dieses Problem zu beheben. Weitere Informationen finden Sie unter finden Sie je nach verwendetem Betriebssystem die folgenden Anleitungen:
- Windows: SQL Server-Browser oder eine Instanz des SQL Server-Agents starten
- Linux: SQL Server-Agent aktivieren
Version der SQL Server Replikation-Pipeline ist nicht die neueste
Wenn die Pipelineversion der SQL Server-Replikation nicht die Version angezeigt wird, wird der folgende Fehler im Pipelinelog angezeigt:
Method io/cdap/delta/sqlserver/SqlServerDeltaSource.configure(Lio/cdap/delta/api/SourceConfigurer;) is abstract
Dieser Fehler tritt auf, wenn eine frühere Version des Quell-Plug-ins mit einer relativ neuen Version der Delta-App. In solchen Fällen wird das neue der neuen Version der Delta-App nicht implementiert ist.
Führen Sie die folgenden Schritte aus, um das Problem zu beheben:
Rufen Sie Informationen zum Replikationsjob ab, indem Sie einen HTTP GET-Anfrage:
GET v3/namespaces/NAMESPACE_ID/apps/REPLICATOR_NAME
Weitere Informationen finden Sie unter Details zum Replikationsjob ansehen.
Prüfen Sie die Versionen des Plug-ins und der Delta-App, die vom Replikationsjob.
Rufen Sie die Liste der verfügbaren Artefakte ab, indem Sie eine HTTP-GET-Anfrage senden:
GET /v3/namespaces/NAMESPACE_ID/artifacts
Weitere Informationen finden Sie unter Verfügbare Artefakte auflisten.
Statischer Dataproc-Cluster mit unzureichendem Authentifizierungsbereich
Wenn Sie einen statischen Dataproc-Cluster verwenden, der erstellt wurde unzureichenden Authentifizierungsbereichs angezeigt wird, sehen Sie möglicherweise den folgenden Fehler in der Pipeline-Log:
ERROR [worker-DeltaWorker-0:i.c.c.i.a.r.ProgramControllerServiceAdapter@92] - Worker
Program 'DeltaWorker' failed.
Caused by: io.grpc.StatusRuntimeException: PERMISSION_DENIED: Request had
insufficient authentication scopes.
So beheben Sie das Problem:
Neuen statischen Dataproc-Cluster erstellen
und aktivieren Sie den Bereich cloud-platform
für diesen Cluster im selben Projekt.