Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten artykuł zawiera numery komunikatów o błędach oraz ich opisy dotyczące walidacji przed migracją.
Poniższe tabele zawierają kompleksową listę kodów błędów funkcji usługi migracji w usłudze Azure Database for PostgreSQL. Te kody błędów ułatwiają rozwiązywanie problemów podczas procesu migracji. Każdy kod błędu zawiera komunikat o błędzie i inne szczegóły, które zawierają dalszy kontekst i wskazówki dotyczące rozwiązywania problemu.
Przekroczenia limitu czasu połączenia
Objawy
Błędy migracji często manifestują się za pośrednictwem komunikatów o błędach wskazujących problemy z łącznością. Te problemy mogą wystąpić podczas procesu transferu danych. Gdy wystąpią takie błędy, powodują one następujące komunikaty o błędach:
- serwer nieoczekiwanie zamknął połączenie
- Błąd SSL SYSCALL: wykryto sygnał EOF
- nieoczekiwany EOF na połączeniu klienta
- nie można odebrać danych od klienta: połączenie zostało zresetowane przez drugą stronę
Przyczyna
Podstawową przyczyną tych objawów jest connection timeout. Dzieje się tak zwykle, gdy serwer lub klient oczekuje odbierania danych w określonym przedziale czasu, ale żadne dane nie są wysyłane ani odbierane, co prowadzi połączenie do przekroczenia limitu czasu. Określone przyczyny przekroczenia limitu czasu połączenia mogą się różnić, ale typowe czynniki obejmują przeciążenie sieci, błędnie skonfigurowane ustawienia sieci lub nadmiernie agresywne ustawienia limitu czasu.
W kontekście usługi migracji w usłudze Azure Database for PostgreSQL limit czasu połączenia między źródłem a usługą migracji lub między usługą migracji a obiektem docelowym może przerwać proces transferu danych, co powoduje objawy opisane powyżej.
Rozwiązanie
Aby rozwiązać problemy z limitem czasu połączenia, dostosuj parametry TCP na serwerach źródłowych i docelowych w następujący sposób:
tcp_keepalives_idle=10tcp_keepalives_interval=10tcp_keepalives_count=60
Te ustawienia pomagają utrzymać połączenie, wysyłając pakiety keepalive, aby zapobiec upływowi limitu czasu z powodu braku aktywności. Co ważne, modyfikowanie tych parametrów TCP nie wymaga ponownego uruchomienia źródłowych ani docelowych wystąpień bazy danych PostgreSQL. Zmiany można stosować dynamicznie, co pozwala na bezproblemową kontynuację usługi bez przerywania operacji bazy danych.
Połączenie zostało przerwane z powodu przekroczenia limitu czasu bezczynności transakcji
Objawy
- Usługa Migracja napotka komunikat o zakończeniu połączenia.
- W logach wyświetla się błąd:
terminating connection due to idle-in-transaction timeout.
Przyczyna
Ten błąd występuje, gdy połączenie z bazą danych pozostaje bezczynne w ramach transakcji dłużej niż wartość określona w parametrze idle_in_transaction_timeout . Usługa PostgreSQL automatycznie przerywa takie połączenia, aby uniknąć problemów z blokowaniem zasobów.
Rozwiązanie
- Ustaw parametr
idle_in_transaction_timeoutna0, aby wyłączyć limit czasu podczas procesu migracji. - Przykładowe polecenie, aby zastosować to ustawienie:
ALTER SYSTEM SET idle_in_transaction_timeout = 0;
- Upewnij się, że ten parametr zostanie zresetowany do oryginalnej wartości po migracji, aby zachować wydajność bazy danych i zapobiec długotrwałym bezczynnym połączeniom.
Wyczerpanie pamięci udostępnionej
Objawy
Proces migracji zostaje nieoczekiwanie zatrzymany. W logach wyświetla się błąd: out of shared memory.
Przyczyna
Ten błąd wskazuje, że usługa PostgreSQL wyczerpała pamięć udostępnioną przydzieloną do blokad. Zwykle występuje, gdy proces migracji obejmuje wiele blokad poza bieżącym ustawieniem parametru max_locks_per_transaction.
Rozwiązanie
- Zwiększ wartość parametru
max_locks_per_transaction, aby uwzględnić kolejne blokady wymagane podczas procesu migracji. - Przykładowe polecenie, aby zmodyfikować to ustawienie:
ALTER SYSTEM SET max_locks_per_transaction = <<>>; - Upewnij się, że
max_locks_per_transaction * max_connections > Number of tables + Number of indexes - Jeśli problem będzie się powtarzać, rozważ zwiększenie parametru shared_buffers, aby zapewnić dostępność wystarczającej ilości pamięci udostępnionej na potrzeby zarządzania blokadami.
Korzystanie z typu CREATE
Objawy
Proces migracji zostaje nieoczekiwanie zatrzymany. W logach wyświetla się błąd: pg_restore: error: could not execute query: ERROR: must be superuser to create a base type .
Przyczyna
Aby utworzyć nowy typ podstawowy, musisz być superużytkownikiem (to ograniczenie jest wykonywane, ponieważ błędna definicja typu może mylić lub nawet spowodować awarię serwera).
Rozwiązanie
- Niestandardowy typ podstawowy musi zostać usunięty i/lub zastąpiony rozpoznanym typem podstawowym.
- Więcej szczegółów można znaleźć tutaj.
Kody błędów migracji
| Kod błędu | Komunikat o błędzie | Rozwiązanie |
|---|---|---|
| 603000 | Połączenie nie powiodło się. Połączenie z serwerem {serverName} nie powiodło się. Upewnij się, że serwer źródłowy jest osiągalny z serwera docelowego lub środowiska uruchomieniowego. |
Zapoznaj się z przewodnikiem dotyczącym sieci, aby uzyskać informacje na temat debugowania problemów z łącznością. |
| 603001 | Błąd konfiguracji protokołu SSL. Serwer {serverName} nie obsługuje protokołu SSL. Sprawdź ustawienia protokołu SSL. Ustaw tryb SSL na prefer i ponów migrację. |
Zapoznaj się z przewodnikiem dotyczącym sieci, aby uzyskać informacje na temat debugowania problemów z łącznością. |
| 603100 | Uwierzytelnianie nie powiodło się. Hasło serwera {serverName} jest niepoprawne. Wprowadź poprawne hasło i ponów próbę migracji. |
Nie dotyczy |
| 603101 | Baza danych istnieje w miejscu docelowym. Baza danych {dbName} istnieje na serwerze docelowym. Upewnij się, że serwer docelowy nie ma bazy danych i ponów próbę migracji. |
Nie dotyczy |
| 603102 | Brak źródłowej bazy danych. Baza danych {dbName} nie istnieje na serwerze źródłowym. Podaj prawidłową bazę danych i ponów próbę migracji. |
Nie dotyczy |
| 603103 | Brak roli Microsoft Entra. Brak roli {roleNames} Microsoft Entra na serwerze docelowym. Utwórz rolę Entra i ponów próbę migracji. |
Nie dotyczy |
| 603104 | Brak roli replikacji. Użytkownik {0} nie ma roli replikacji na serwerze {1}. Przed ponowieniu próby migracji przyznaj rolę replikacji. |
Użyj elementu ALTER ROLE <rolename> WITH REPLICATION;, aby nadać wymagane uprawnienie. |
| 603105 | Błąd ustawień GUC. Niewystarczające miejsca replikacji na serwerze źródłowym do migracji. Zwiększ parametr GUC do max_replication_slots lub nowszego{0}. |
Serwer źródłowy nie ma wystarczających miejsc replikacji dostępnych do przeprowadzenia migracji online. Użyj tego zapytania SELECT * FROM pg_replication_slots WHERE active = false AND slot_type = 'logical'; , aby uzyskać listę nieaktywnych miejsc replikacji i usunąć je przy użyciu SELECT pg_drop_replication_slot('slot_name'); przed zainicjowaniem migracji. Alternatywnie ustaw parametr "max_replication_slots" na {0} lub wyższy. Upewnij się również, że parametr max_wal_senders został zmieniony tak, aby był większy lub równy wartości max_replication_slots' parameter. |
| 603106 | Błąd ustawień GUC. Parametr GUC max_wal_senders jest ustawiony na {0}. Upewnij się, że jest równa lub większa od wartości „max_replication_slots”. |
Nie dotyczy |
| 603107 | Błąd ustawień GUC. Parametr poziomu WAL serwera źródłowego jest ustawiony na {0}. Ustaw poziom WAL parametru GUC na wartość "logical". |
Nie dotyczy |
| 603108 | Wymagana jest lista dozwolonych rozszerzeń. Nie można zainstalować rozszerzeń {0} na serwerze docelowym, ponieważ nie są one dozwolone. Dodaj rozszerzenia do listy dozwolonych i spróbuj ponownie przeprowadzić migrację. |
Ustaw listę dozwolonych, wykonując kroki wymienione w rozszerzeniach PostgreSQL. |
| 603109 | Błąd konfiguracji bibliotek współdzielonego wstępnego ładowania. Dodaj rozszerzenia {0}, które znajdują się na liście dozwolonych, w parametrze „shared_preload_libraries” na serwerze docelowym, a następnie ponów próbę migracji. |
Ustaw udostępnione biblioteki wstępnego ładowania, wykonując kroki wymienione w rozszerzeniach PostgreSQL. Wymaga to ponownego uruchomienia serwera. |
| 603110 | Niewystarczające uprawnienia. Użytkownik migracji nie ma niezbędnych uprawnień dostępu do bazy danych. Upewnij się, że użytkownik migracji jest właścicielem źródłowych baz danych i ma uprawnienia do odczytu i zapisu oraz ponów próbę migracji. | Nie dotyczy |
| 603111 | Oczyszczanie docelowej bazy danych nie powiodło się. Nie można zakończyć aktywnych połączeń z docelową bazą danych w fazie przed migracją. Przypisz rolę pg_signal_backend użytkownikowi migracji i ponów próbę migracji. | Dodaj rolę pg_signal_backend do użytkownika migracji za pomocą polecenia „GRANT pg_signal_backend to <migration_user>” |
| 603112 | Błąd ustawień GUC. Nie można ustawić parametru default_transaction_read_only GUC na wyłączone. Upewnij się, że dostęp do zapisu użytkownika został prawidłowo ustawiony i ponów próbę migracji. | Ustaw parametr „default_transaction_read_only” na „off” na serwerze źródłowym za pośrednictwem portalu Azure lub za pomocą polecenia psql (na przykład ALTER SYSTEM SET default_transaction_read_only = off). |
| 603113 | Niepowodzenie przełączenia. Nie można zainicjować przełączenia dla bazy danych '{dbName}', ponieważ migracja ma już stan Ukończono/Niepowodzenie/Anulowano. | Nie dotyczy |
| 603114 | Niepowodzenie przełączenia. Nie można zainicjować przełączenia dla bazy danych '{dbName}' w trybie migracji offline. | Nie dotyczy |
| 603115 | Brak uprawnień użytkownika. Użytkownik migracji "{0}" nie należy do roli azure_pg_admin. Dodaj niezbędne uprawnienia na serwerze docelowym i ponów próbę migracji. | Nie dotyczy |
| 603116 | Brak uprawnień użytkownika. Użytkownik migracji "{0}" nie ma uprawnień do tworzenia roli. Dodaj niezbędne uprawnienia na serwerze docelowym i ponów próbę migracji. | Uruchom zapytanie ALTER ROLE <rolename> WITH CREATEROLE; na serwerze docelowym. |
| 603117 | Brak uprawnień użytkownika. Użytkownik migracji "{0}" nie ma niezbędnych uprawnień do usunięcia bazy danych "{dbName}" na serwerze docelowym. Ręcznie upuść bazę danych z serwera docelowego i ponów próbę migracji. | Nie dotyczy |
| 603400 | Nieobsługiwana wersja źródłowa. Migracja poniższych wersji {0} postgreSQL nie jest obsługiwana. |
Należy użyć innej metody migracji. |
| 603401 | Niezgodność reguł sortowania. Kolejność sortowania {0} w bazie danych {1} nie jest dostępna na serwerze docelowym. |
Nie dotyczy |
| 603402 | Niezgodność reguł sortowania. Reguły sortowania {0} dla tabeli {1} w kolumnie {2} nie są dostępne na serwerze docelowym. |
Skontaktuj się z pomocą techniczną firmy Microsoft, aby dodać niezbędne sortowania. |
| 603403 | Niezgodność reguł sortowania. Źródłowa baza danych zawiera sortowania zdefiniowane przez użytkownika. Usuń te ustawienia sortowania i ponów migrację. | Nie dotyczy |
| 603404 | Wykryto nieobsługiwane OID. Wykryto tabele z 'WITH OIDs' w bazie danych {0}. Nie są one obsługiwane w programie PostgreSQL w wersji 12 lub nowszej. |
Odwiedź stronę Informacje o wersji bazy danych PostgreSQL. |
| 603405 | Nieobsługiwane rozszerzenia. Usługa migracji nie obsługuje migracji baz danych z {0} rozszerzeniami na serwerze docelowym. |
Nie dotyczy |
| 603406 | Nieobsługiwane rozszerzenia. Docelowa baza danych PostgreSQL {0} obsługuje oprogramowanie POSTGIS w wersji 3.2.3, która jest niezgodna z elementami źródłowymi {1}. |
Zalecamy uaktualnienie serwera docelowego do wersji 11. Odwiedź stronę Zmiany powodujące niezgodność w systemie PostGIS. |
| 603407 | Błąd schematu rozszerzenia.
{0} Rozszerzenia znajdujące się w schemacie systemowym na serwerze źródłowym nie są obsługiwane na serwerze docelowym. Usuń rozszerzenia i utwórz je ponownie w schemacie niesystemowym, a następnie ponów próbę migracji. |
Odwiedź rozszerzenia PostgreSQL. |
| 603408 | Nieobsługiwane rozszerzenia. Serwer docelowy w wersji 16 nie obsługuje {0} rozszerzeń. Przeprowadź migrację do wersji 15 lub nowszej, a następnie uaktualnij je, gdy rozszerzenia są obsługiwane. |
Nie dotyczy |
| 603409 | Występują rzutowania zdefiniowane przez użytkownika. Źródłowa baza danych {0} zawiera rzutowania zdefiniowane przez użytkownika, których nie można migrować do serwera docelowego. |
Nie dotyczy |
| 603410 | Błąd uprawnień tabeli systemowej. Użytkownicy mają dostęp do tabel systemowych, takich jak pg_authid i pg_shadow, których nie można migrować do obiektu docelowego. Odwołaj te uprawnienia i ponów próbę migracji. | Weryfikowanie uprawnień domyślnych przyznanych pg_catalog tabelom/widokom (takim jak pg_authid i pg_shadow) jest niezbędne. Nie można jednak przypisać tych uprawnień do obiektu docelowego. W szczególności użytkownik {1} ma {2} uprawnienia, podczas gdy użytkownik {3} posiada {4} uprawnienia. Aby obejść ten problem, odwiedź stronę Użytkownik, Role i Uprawnienia |
| 603413 | Nieobsługiwane języki. Usługa migracji nie obsługuje migracji baz danych z językami {0} na serwerze docelowym. Usuń języki i zaimplementowane funkcje. |
Serwer docelowy nie obsługuje nieobsługiwanych języków. Spróbuj wyłączyć lub usunąć odpowiedni język na serwerze źródłowym przed migracją na serwer docelowy. |
| 603700 | Oczyszczanie docelowej bazy danych nie powiodło się. Nie można przerwać aktywnych połączeń w docelowej bazie danych podczas fazy przed migracją/po migracji. | Nie dotyczy |
| 603701 | Wewnętrzny błąd serwera. Nie można utworzyć ról na serwerze docelowym. | Skontaktuj się z pomocą techniczną firmy Microsoft, aby uzyskać dalszą analizę. |
| 603702 | Wewnętrzny błąd serwera. Nie udało się wyeksportować ról z serwera źródłowego. | Skontaktuj się z pomocą techniczną firmy Microsoft, aby uzyskać dalszą analizę. |
| 603703 | Wewnętrzny błąd serwera. Nie udało się edytować pliku zrzutu roli globalnej. | Skontaktuj się z pomocą techniczną firmy Microsoft, aby uzyskać dalszą analizę. |
| 603704 | Wewnętrzny błąd serwera. Nie można ustawić wszystkich ról źródłowych jako członka docelowego użytkownika migracji. | Skontaktuj się z pomocą techniczną firmy Microsoft, aby uzyskać dalszą analizę. |
| 603705 | Wewnętrzny błąd serwera. Nie można przywrócić nadania/cofnięcia uprawnień. | Skontaktuj się z pomocą techniczną firmy Microsoft, aby uzyskać dalszą analizę. |
| 603706 | Wewnętrzny błąd serwera. Nie można usunąć użytkownika migracji na serwerze docelowym. Użytkownik docelowy migracji może pełnić wiele ról. Usuń wszystkie niepotrzebne role z użytkownika migracji serwera docelowego i ponów próbę migracji. | Skontaktuj się z pomocą techniczną firmy Microsoft, aby uzyskać dalszą analizę. |
| 603707 | Wewnętrzny błąd serwera. Nie można udzielić azure_pg_admin użytkownikowi administracyjnemu serwera źródłowego. | Skontaktuj się z pomocą techniczną firmy Microsoft, aby uzyskać dalszą analizę. |
| 603708 | Wewnętrzny błąd serwera. Nie można zmienić właściciela schematu publicznego na azure_pg_admin w bazie danych "{dbName}". Zmień właściciela schematu publicznego na azure_pg_admin ręcznie i ponów próbę migracji. | Skontaktuj się z pomocą techniczną firmy Microsoft, aby uzyskać dalszą analizę. |
| 603709 | Instalacja migracji nie powiodła się. | Skontaktuj się z pomocą techniczną firmy Microsoft, aby uzyskać dalszą analizę. |