Udostępnij przez


Rozwiązywanie problemów z łącznikiem Oracle w usługach Azure Data Factory i Azure Synapse

DOTYCZY: Azure Data Factory Azure Synapse Analytics

Napiwek

Wypróbuj usługę Data Factory w usłudze Microsoft Fabric — rozwiązanie analityczne typu all-in-one dla przedsiębiorstw. Usługa Microsoft Fabric obejmuje wszystko, od przenoszenia danych do nauki o danych, analizy w czasie rzeczywistym, analizy biznesowej i raportowania. Dowiedz się, jak bezpłatnie rozpocząć nową wersję próbną !

Ten artykuł zawiera sugestie dotyczące rozwiązywania typowych problemów z łącznikiem Oracle w usługach Azure Data Factory i Azure Synapse.

Wersja 2.0

Komunikat o błędzie: ORA-12650: Brak wspólnego algorytmu szyfrowania lub integralności danych

  • Objawy: Zostanie wyświetlony następujący komunikat o błędzie: ORA-12650: No common encryption or data integrity algorithm

  • Przyczyna: Klient i serwer nie uzgodnili wspólnego zachowania szyfrowania/integralności danych lub algorytmu podczas negocjacji. Domyślne konfiguracje po stronie klienta są następujące:

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

    1. Sprawdź konfiguracje po stronie serwera, w tym SQLNET. ENCRYPTION_SERVER i SQLNET. CRYPTO_CHECKSUM_SERVER. Jeśli zajdzie potrzeba, zaktualizuj dodatkowe właściwości związanej usługi encryptionClient oraz cryptoChecksumClient po stronie klienta. Należy pamiętać, że rzeczywiste zachowanie jest określane przez wynik negocjacji między konfiguracją klienta i serwera, jak pokazano poniżej.

      Klient\Serwer Odrzucone zaakceptowano Żądany wymagane
      Odrzucone Wyłączone Wyłączone Wyłączone Połączenie kończy się niepowodzeniem
      zaakceptowano Wyłączone Wyłączone NA NA
      Żądany Wyłączone NA NA NA
      wymagane Połączenie kończy się niepowodzeniem NA NA NA
    2. Sprawdź konfiguracje po stronie serwera, w tym SQLNET.ENCRYPTION_TYPES_SERVER i SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER. Zaktualizuj dodatkowe właściwości encryptionTypesClient połączonej usługi i cryptoChecksumTypesClient po stronie klienta, aby upewnić się, że można między nimi znaleźć wspólny algorytm. Można ustawić encryptionTypesClient na (AES128, AES192, AES256, 3DES112, 3DES168) oraz cryptoChecksumTypesClient na (SHA1, SHA256, SHA384, SHA512), aby uwzględnić wszystkie obsługiwane algorytmy po stronie klienta.

Błąd: zbyt duża precyzja dziesiętna

  • Objawy: podczas kopiowania kolumn typu NUMBER z bazy danych Oracle kopia może zakończyć się niepowodzeniem lub dane zapisane w ujściu nie mogą być jeszcze bardziej używane przez inne narzędzia, ponieważ precyzja dziesiętna jest zbyt duża.

  • Przyczyna: Aby uniknąć utraty danych, precyzja dziesiętna używana do reprezentowania typu Oracle NUMBER wynosi 256, co przekracza maksymalną precyzję obsługiwaną przez łącznik ujścia lub odbiorcy podrzędnego.

  • Zalecenie:

    Rozwiąż ten problem, korzystając z jednej z dwóch metod podanych poniżej:

    • Użyj zapytania, aby jawnie przekonwertować kolumnę na typ BINARY_DOUBLE. Przykład:
      SELECT CAST(ColA AS BINARY_DOUBLE) AS ColB FROM TableA.

    • Ustaw dodatkową właściwość supportV1DataTypes połączonej usługi na true, co gwarantuje, że wersja 2.0 używa takich samych mapowań typów danych, co wersja 1.0.

Komunikat o błędzie: ORA-00933: Polecenie SQL nie zakończyło się poprawnie

  • Objawy: Zostanie wyświetlony następujący komunikat o błędzie: ORA-00933: SQL command not properly ended

  • Przyczyna: Obecnie program Oracle w wersji 2.0 nie obsługuje zapytania zakończonego średnikiem.

  • Zalecenie: Usuń średnik na końcu zapytania.

Wersja 1.0

Kod błędu: ArgumentOutOfRangeException

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

  • Przyczyna: W potokach usługi Azure Data Factory i Synapse wartości DateTime są obsługiwane w zakresie od 0001-01-01 00:00:00 do 9999-12-31 23:59:59:59. Jednak Oracle obsługuje szerszy zakres wartości DateTime, takich jak bc century lub min/s>59, co prowadzi do awarii.

  • Zalecenie:

    Aby sprawdzić, czy wartość w programie Oracle znajduje się w obsługiwanym zakresie dat, uruchom polecenie select dump(<column name>).

    Aby poznać sekwencję bajtów w wyniku, zobacz How are dates stored in Oracle? (Jak są przechowywane daty w programie Oracle?).

Dodawanie bezpiecznych algorytmów podczas korzystania z własnego środowiska Integration Runtime w wersji 5.36.8726.3 lub nowszej

  • Objawy: Jeśli używasz własnego środowiska Integration Runtime w wersji 5.36.8726.3 lub nowszej, zostanie wyświetlony następujący komunikat o błędzie: [Oracle]ORA-12650: No common encryption or data integrity algorithm.

  • Przyczyna: Bezpieczny algorytm nie jest dodawany do serwera Oracle.

  • Zalecenie: Zaktualizuj ustawienia serwera Oracle, aby dodać te bezpieczne algorytmy, jeśli nie zostały jeszcze uwzględnione:

    • W przypadku sieci SQLNET. ENCRYPTION_TYPES_SERVER należy dodać następujące algorytmy, które są uznawane za bezpieczne przez protokół OpenSSL i będą używane do szyfrowania OAS (Oracle Advanced Security).

      • AES256
      • Certyfikat AES192
      • 3DES168
      • AES128
      • 3DES112
      • Standard Szyfrowania Danych
    • W przypadku sieci SQLNET. CRYPTO_CHECKSUM_TYPES_SERVER należy dodać następujące algorytmy, które są uznawane za bezpieczne przez protokół OpenSSL i będą używane do integralności danych OAS (Oracle Advanced Security).

      • SHA256 powiedział:
      • SHA384 powiedział:
      • SHA512 powiedział:

      Uwaga

      Zalecane algorytmy integralności danych SHA256, SHA384 i SHA512 są dostępne dla wersji Oracle 19c lub nowszej.

Kod błędu: UserErrorFailedToConnectOdbcSource

Istnieją trzy komunikaty o błędach skojarzone z tym kodem błędu. Sprawdź przyczynę i zalecenie dla każdego komunikatu o błędzie odpowiednio.

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

  • Przyczyna: Element truststore nie jest odpowiedni dla biblioteki OpenSSL 3.0, ponieważ truststore plik jest generowany przy użyciu słabych szyfrów, takich jak RC4, MD5 i SHA1.

  • Zalecenie: należy ponownie utworzyć truststore przy użyciu silnych szyfrów, takich jak AES256. Zapoznaj się z tą sekcją , aby uzyskać szczegółowe informacje na temat konfigurowania połączenia TLS przy użyciu polecenia truststore.


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

  • Przyczyna: Serwer nie jest skonfigurowany z silnymi szyframi na potrzeby komunikacji SSL. Program OpenSSL 3.0 powinien używać protokołu TLS 1.0 lub nowszego, ponieważ jest to przestarzałe wersje protokołu SSL. Na przykład serwer może akceptować połączenia z wersjami protokołu TLS do czasu protokołu TLS 1.0.

  • Zalecenie: Popraw konfigurację serwera, aby używać silniejszych wersji protokołu TLS.


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

  • Przyczyna: Wartość CryptoProtocolVersion jest ustawiona na używanie przestarzałych wersji protokołu TLS z protokołem OpenSSL 3.0.

  • Zalecenie: określ właściwość CryptoProtocolVersion=TLSv1.2parametry połączenia .

Aby uzyskać pomoc dotyczącą rozwiązywania problemów, wypróbuj następujące zasoby: