Freigeben über


Problembehandlung für den Oracle-Connector in Azure Data Factory und Azure Synapse

GILT FÜR: Azure Data Factory Azure Synapse Analytics

Tipp

Testen Sie Data Factory in Microsoft Fabric, eine All-in-One-Analyselösung für Unternehmen. Microsoft Fabric deckt alle Aufgaben ab, von der Datenverschiebung bis hin zu Data Science, Echtzeitanalysen, Business Intelligence und Berichterstellung. Erfahren Sie, wie Sie kostenlos eine neue Testversion starten!

Dieser Artikel enthält Vorschläge zur Behandlung häufiger Probleme mit dem Oracle-Connector in Azure Data Factory und Azure Synapse.

Version 2.0

Fehlermeldung: ORA-12650: Kein allgemeiner Verschlüsselungs- oder Datenintegritätsalgorithmus

  • Symptome: Sie treffen die folgende Fehlermeldung: ORA-12650: No common encryption or data integrity algorithm

  • Ursache: Der Client und der Server konnten sich nicht auf ein gemeinsames Verschlüsselungs-/Datenintegritätsverhalten oder einen Algorithmus während der Aushandlung einigen. Die standardmäßigen clientseitigen Konfigurationen sind wie folgt:

    • encryptionClient: required
    • encryptionTypesClient: (AES256)
    • cryptoChecksumClient: required
    • cryptoChecksumTypesClient: (SHA512)
  • Empfehlung:

    1. Überprüfen Sie die serverseitigen Konfigurationen, einschließlich SQLNET. ENCRYPTION_SERVER und SQLNET. CRYPTO_CHECKSUM_SERVER. Aktualisieren Sie bei Bedarf die zusätzlichen Eigenschaften encryptionClient des verknüpften Diensts und cryptoChecksumClient auf der Clientseite. Beachten Sie, dass das tatsächliche Verhalten durch das Aushandlungsergebnis zwischen Client- und Serverkonfiguration bestimmt wird, wie unten dargestellt.

      Client/Server zurückgewiesen akzeptiert angefordert Erforderlich
      zurückgewiesen AUS AUS AUS Verbindung schlägt fehl
      akzeptiert AUS AUS AUF AUF
      angefordert AUS AUF AUF AUF
      Erforderlich Verbindung schlägt fehl AUF AUF AUF
    2. Überprüfen Sie die serverseitigen Konfigurationen, einschließlich SQLNET. ENCRYPTION_TYPES_SERVER und SQLNET. CRYPTO_CHECKSUM_TYPES_SERVER. Aktualisieren Sie die verknüpften Diensteigenschaften encryptionTypesClient und cryptoChecksumTypesClient auf clientseitiger Seite, um sicherzustellen, dass zwischen ihnen ein gemeinsamer Algorithmus gefunden werden kann. Sie können encryptionTypesClient auf (AES128, AES192, AES256, 3DES112, 3DES168) und cryptoChecksumTypesClient auf (SHA1, SHA256, SHA384, SHA512) festlegen, um alle unterstützten clientseitigen Algorithmen einzuschließen.

Fehler: Dezimalgenauigkeit zu groß

  • Symptome: Beim Kopieren von Spalten des Typs ZAHLEN aus Oracle kann die Kopie fehlschlagen oder die in die Senke geschriebenen Daten können von anderen Tools nicht weiter verwendet werden, da die Dezimalgenauigkeit zu groß ist.

  • Ursache: Um Datenverluste zu vermeiden, beträgt die dezimale Genauigkeit, die zum Darstellen des Oracle NUMBER-Typs verwendet wird, 256, was die maximale Genauigkeit überschreitet, die vom Sink-Connector oder nachgeschalteten Konsumenten unterstützt wird.

  • Empfehlung:

    Beheben Sie dieses Problem, indem Sie eine der beiden folgenden Methoden verwenden:

    • Verwenden Sie eine Abfrage, um die Spalte explizit in BINARY_DOUBLE zu umwandeln. Beispiel:
      SELECT CAST(ColA AS BINARY_DOUBLE) AS ColB FROM TableA.

    • Legen Sie die zusätzliche Eigenschaft supportV1DataTypes des verknüpften Diensts auf true, wodurch sichergestellt wird, dass Version 2.0 dieselben Datentypzuordnungen wie Version 1.0 verwendet.

Fehlermeldung: ORA-00933: SQL-Befehl wurde nicht ordnungsgemäß beendet

  • Symptome: Sie treffen die folgende Fehlermeldung: ORA-00933: SQL command not properly ended

  • Ursache: Derzeit unterstützt Oracle Version 2.0 die Abfrage nicht, die mit einem Semikolon beendet wurde.

  • Empfehlung: Entfernen Sie das Semikolon am Ende der Abfrage.

Version 1.0

Fehlercode: ArgumentOutOfRangeException

  • Meldung: Hour, Minute, and Second parameters describe an un-representable DateTime.

  • Ursache: In Azure Data Factory- und Synapse-Pipelines werden DateTime-Werte im Bereich von 0001-01-01 00:00:00 bis 9999-12-31 23:59:59 unterstützt. Oracle unterstützt jedoch einen größeren Bereich von DateTime-Werten (z. B. Jahreszahlen vor unserer Zeitrechnung oder Minuten-/Sekundenangaben>59). Dies kann zu einem Fehler führen.

  • Empfehlung:

    Führen Sie select dump(<column name>) aus, um zu ermitteln, ob sich der Wert in Oracle im unterstützten Datumsbereich befindet.

    Wenn Sie die Bytereihenfolge im Ergebnis ermitteln möchten, lesen Sie Wie werden Daten in Oracle gespeichert?

Hinzufügen sicherer Algorithmen bei Verwendung der selbst gehosteten Integrationslaufzeit, Version 5.36.8726.3 oder höher

  • Symptome: Wenn Sie die selbst gehostete Integrationslaufzeit Version 5.36.8726.3 oder höher verwenden, wird diese Fehlermeldung angezeigt: [Oracle]ORA-12650: No common encryption or data integrity algorithm.

  • Ursache: Der sichere Algorithmus wird ihrem Oracle-Server nicht hinzugefügt.

  • Empfehlung: Aktualisieren Sie Ihre Oracle-Servereinstellungen, um diese sicheren Algorithmen hinzuzufügen, falls sie noch nicht enthalten sind:

    • Für SQLNET.ENCRYPTION_TYPES_SERVER müssen Sie die folgenden Algorithmen hinzufügen, die von OpenSSL als sicher eingestuft wurden und für die OAS-Verschlüsselung (Oracle Advanced Security) verwendet werden.

      • AES256
      • AES192
      • 3DES168
      • AES128
      • 3DES112
      • DES
    • Für SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER müssen Sie die folgenden Algorithmen hinzufügen, die von OpenSSL als sicher eingestuft wurden und für die OAS-Datenintegrität (Oracle Advanced Security) verwendet werden.

      • SHA256
      • SHA384
      • SHA512

      Hinweis

      Die empfohlenen Datenintegritätsalgorithmen SHA-256, SHA-384 und SHA-512 sind für Oracle 19c oder höher verfügbar.

Fehlercode: UserErrorFailedToConnectOdbcSource

Diesem Fehlercode sind drei Fehlermeldungen zugeordnet. Überprüfen Sie die entsprechende Ursache und Empfehlung für jede Fehlermeldung.

  • Meldung: "Cannot load trust store", or "SSL Handshake Failure reason [error:OA000086:SSL routines::certificate verify failed]"

  • Ursache: truststore ist für OpenSSL 3.0 nicht geeignet, da die truststore-Datei mithilfe schwacher Verschlüsselungsverfahren wie RC4, MD5 und SHA1 generiert wird.

  • Empfehlung: Sie müssen truststore mithilfe starker Verschlüsselungsverfahren wie AES256 erneut erstellen. Weitere Informationen zum Einrichten der TLS-Verbindung mithilfe von finden Sie in diesem truststore.


  • Meldung:
    SSL Handshake Failure reason[Unknown SSL Error]
    SSL Handshake Failure reason [error:OA000410:SSL routines::sslv3 alert handshake failure]

  • Ursache: Der Server ist nicht mit starken Verschlüsselungsverfahren für die SSL-Kommunikation konfiguriert. OpenSSL 3.0 sollte entweder TLS 1.0 oder höhere Versionen nutzen, da SSL-Protokollversionen veraltet sind. Beispiel: Der Server akzeptiert möglicherweise Verbindungen mit TLS-Protokollversionen bis TLS 1.0.

  • Empfehlung: Überarbeiten Sie die Serverkonfiguration, damit stärkere TLS-Versionen verwendet werden.


  • Meldung: SSL Handshake Failure reason [error:0A00014D:SSL routines::legacy sigalg disallowed or unsupported].

  • Ursache: CryptoProtocolVersion ist so festgelegt, dass veraltete TLS-Protokollversionen mit OpenSSL 3.0 verwendet werden.

  • Empfehlung: Geben Sie die Eigenschaft der Verbindungszeichenfolge CryptoProtocolVersion=TLSv1.2 an.

Weitere Informationen zur Problembehandlung finden Sie in diesen Ressourcen: