Udostępnij za pośrednictwem


Rozwiązywanie problemów z połączeniem z usługą Azure Database for PostgreSQL — pojedynczy serwer

DOTYCZY: Azure Database for PostgreSQL — pojedynczy serwer

Ważne

Usługa Azure Database for PostgreSQL — pojedynczy serwer znajduje się na ścieżce wycofania. Zdecydowanie zalecamy uaktualnienie do usługi Azure Database for PostgreSQL — serwer elastyczny. Aby uzyskać więcej informacji na temat migracji do usługi Azure Database for PostgreSQL — serwer elastyczny, zobacz Co się dzieje z usługą Azure Database for PostgreSQL — pojedynczy serwer?.

Problemy z połączeniem mogą być spowodowane przez różne elementy, w tym:

  • Ustawienia zapory
  • Przekroczenie limitu czasu połączenia
  • Nieprawidłowe informacje logowania
  • Osiągnięto maksymalny limit dla niektórych zasobów usługi Azure Database for PostgreSQL
  • Problemy z infrastrukturą usługi
  • Konserwacja wykonywana w usłudze
  • Alokacja obliczeniowa serwera jest zmieniana przez skalowanie liczby rdzeni wirtualnych lub przejście do innej warstwy usługi

Ogólnie rzecz biorąc, problemy z połączeniem z usługą Azure Database for PostgreSQL można sklasyfikować w następujący sposób:

  • Błędy przejściowe (krótkotrwałe lub sporadyczne)
  • Błędy trwałe lub nieprzejściowe (błędy powtarzające się regularnie)

Rozwiązywanie problemów dotyczących błędów przejściowych

Błędy przejściowe występują, gdy jest wykonywana konserwacja, gdy system napotyka błąd sprzętu lub oprogramowania albo gdy zmieniasz liczbę rdzeni wirtualnych lub warstwę usługi serwera. Usługa Azure Database for PostgreSQL ma wbudowaną wysoką dostępność i została zaprojektowana w celu automatycznego eliminowania tego typu problemów. Jednak Twoja aplikacja traci połączenie z serwerem przez krótki czas, zwykle nie dłuższy niż 60 sekund. Czasami eliminowanie niektórych zdarzeń może trwać dłużej, na przykład gdy duża transakcja powoduje długotrwałe odzyskiwanie.

Kroki rozwiązywania przejściowych problemów z łącznością

  1. Sprawdź na pulpicie nawigacyjnym usług platformy Microsoft Azure, czy wystąpiły znane awarie w czasie, gdy aplikacja zgłaszała błędy.
  2. Aplikacje, które łączą się z usługą w chmurze, taką jak Azure Database for PostgreSQL, powinny oczekiwać przejściowych błędów i zaimplementować logikę ponawiania prób, aby obsłużyć te błędy zamiast nadawać je jako błędy aplikacji użytkownikom. Zapoznaj się z artykułem Obsługa przejściowych błędów łączności dla usługi Azure Database for PostgreSQL , aby uzyskać najlepsze rozwiązania i wytyczne dotyczące projektowania dotyczące obsługi błędów przejściowych.
  3. Ponieważ serwer zbliża się do limitów zasobów, błędy mogą wydawać się przejściowym problemem z łącznością. Zobacz Ograniczenia w usłudze Azure Database for PostgreSQL.
  4. Jeśli problemy z łącznością będą kontynuowane lub czas trwania napotkania błędu przez aplikację przekracza 60 sekund lub jeśli w danym dniu zostanie wyświetlonych wiele wystąpień błędu, prześlij żądanie pomoc techniczna platformy Azure, wybierając pozycję Uzyskaj pomoc techniczną w witrynie pomocy technicznej platformy Azure.

Rozwiązywanie problemów z trwałymi błędami

Jeśli aplikacja stale nie może nawiązać połączenia z usługą Azure Database for PostgreSQL, zwykle wskazuje na problem z jednym z następujących elementów:

  • Konfiguracja zapory serwera: upewnij się, że zapora serwera Azure Database for PostgreSQL jest skonfigurowana tak, aby zezwalała na połączenia od klienta, w tym przez serwery proxy i bramy.
  • Konfiguracja zapory klienta: zapora na kliencie musi zezwalać na połączenia z serwerem bazy danych. Adresy IP i porty serwera, z którym nie można się połączyć, musi być dozwolony, tak samo jak nazwy aplikacji, takie jak PostgreSQL, w niektórych zaporach.
  • Błąd użytkownika: W parametry połączenia lub braku sufiksu @servername w nazwie użytkownika mogą występować błędnie wtypowane parametry połączenia, takie jak nazwa serwera.
  • Jeśli widzisz błąd Serwer nie jest skonfigurowany do zezwalania na połączenia ipv6, pamiętaj, że warstwa Podstawowa nie obsługuje punktów końcowych usługi sieci wirtualnej. Musisz usunąć punkt końcowy Microsoft.Sql z podsieci próbującej nawiązać połączenie z serwerem w warstwie Podstawowa.
  • Jeśli zobaczysz, że wartość sslmode połączenia "***" jest nieprawidłowa, gdy obsługa protokołu SSL nie jest kompilowana w błędzie, oznacza to, że klient PostgreSQL nie obsługuje protokołu SSL. Najprawdopodobniej biblioteka libpq po stronie klienta nie została skompilowana z flagą „--with-openssl”. Spróbuj nawiązać połączenie z klientem PostgreSQL, który obsługuje protokół SSL.

Kroki rozwiązywania trwałych problemów z łącznością

  1. Skonfiguruj reguły zapory, aby zezwalać na użycie adresu IP klienta Wyłącznie do celów testowania tymczasowego skonfiguruj regułę zapory przy użyciu adresu 0.0.0.0 jako początkowego adresu IP i przy użyciu wartości 255.255.255.255 jako końcowego adresu IP. Ta reguła otwiera serwer dla wszystkich adresów IP. Jeśli to rozwiąże problem z łącznością, usuń tę regułę i utwórz regułę zapory dla odpowiednio ograniczonego adresu IP lub zakresu adresów.
  2. Upewnij się, że port 5432 we wszystkich zaporach między klientem a Internetem jest otwarty dla połączeń wychodzących.
  3. Sprawdź parametry połączenia i inne ustawienia połączenia.
  4. Sprawdź pulpit nawigacyjny kondycji usługi. Jeśli sądzisz, że wystąpiła awaria regionalna, zobacz Omówienie zagadnień dotyczących ciągłości działalności biznesowej zapewnianej przez usługę Azure Database for PostgreSQL i dowiedz się, co zrobić, aby przeprowadzić odzyskiwanie do nowego regionu.

Następne kroki