Samouczek: migrowanie online z usługi Amazon Aurora PostgreSQL do usługi Azure Database for PostgreSQL za pomocą usługi migracji
W tym artykule opisano sposób migrowania bazy danych PostgreSQL z usługi Amazon Aurora do usługi Azure Database for PostgreSQL w trybie online.
Usługa migracji w usłudze Azure Database for PostgreSQL to w pełni zarządzana usługa zintegrowana z witryną Azure Portal i interfejsem wiersza polecenia platformy Azure. Została zaprojektowana tak, aby uprościć migrację do usługi Azure Database for PostgreSQL.
W tym samouczku zostały wykonane następujące czynności:
- Pełne wymagania wstępne
- Inicjowanie migracji
- Monitorowanie migracji
- Inicjowanie migracji jednorazowej
- Weryfikowanie migracji
Wymagania wstępne
Przed rozpoczęciem migracji przy użyciu usługi migracji w usłudze Azure Database for PostgreSQL należy spełnić następujące wymagania wstępne. Te wymagania wstępne zostały specjalnie zaprojektowane na potrzeby scenariuszy migracji online.
- Weryfikowanie wersji źródłowej
- Instalowanie test_decoding na potrzeby instalacji źródłowej
- Konfigurowanie konfiguracji docelowej
- Włączanie usługi CDC jako źródła
- Konfigurowanie konfiguracji sieci
- Włączanie rozszerzeń
- Sprawdzanie parametrów serwera
- Sprawdzanie użytkowników i ról
Weryfikowanie wersji źródłowej
Źródłowa wersja serwera PostgreSQL musi być w wersji 9.5 lub nowszej. Jeśli źródłowa wersja bazy danych PostgreSQL jest starsza niż 9.5, przed rozpoczęciem migracji uaktualnij wersję do wersji 9.5 lub nowszej.
Instalowanie test_decoding na potrzeby instalacji źródłowej
- Wtyczka test_decoding odbiera rejestrowanie zapisu z wyprzedzeniem (WAL) za pomocą mechanizmu dekodowania logicznego. Wtyczka dekoduje plik WAL do reprezentacji tekstowych wykonywanych operacji.
- W usłudze Amazon RDS for PostgreSQL wtyczka test_decoding jest wstępnie zainstalowana i gotowa do replikacji logicznej. Można łatwo skonfigurować gniazda replikacji logicznej i przesyłać strumieniowo zmiany WAL, na przykład w celu przechwytywania zmian danych (CDC) lub replikacji do systemów zewnętrznych.
Aby uzyskać więcej informacji na temat wtyczki test_decoding, zobacz dokumentację bazy danych PostgreSQL.
Konfigurowanie konfiguracji docelowej
Przed rozpoczęciem migracji należy utworzyć wystąpienie usługi Azure Database for PostgreSQL na platformie Azure. Jednostka SKU aprowizowana dla usługi Azure Database for PostgreSQL — serwer elastyczny powinna być zgodna ze źródłem.
Aby uzyskać więcej informacji, zobacz Tworzenie wystąpienia usługi Azure Database for PostgreSQL.
Włączanie usługi CDC jako źródła
Wtyczka dekodowania logicznego test_decoding przechwytuje zmienione rekordy ze źródła.
Aby zezwolić użytkownikowi migracji na dostęp do uprawnień replikacji, wykonaj następujące polecenie:
GRANT rds_replication TO <username>;
W źródłowym wystąpieniu bazy danych PostgreSQL zmodyfikuj następujące parametry w grupie parametrów klastrów baz danych, tworząc nową grupę parametrów:
- Ustaw wartość opcji
rds.logical_replication
na1
. - Ustaw
max_replication_slots
wartość większą niż1
. Wartość powinna być większa niż liczba baz danych wybranych do migracji. - Ustaw
max_wal_senders
wartość większą niż1
. Powinna to być co najmniej ta sama wartość co wartość parametrumax_replication_slots
, a także liczba nadawców używanych już w twoim wystąpieniu. - Parametr
wal_sender_timeout
kończy nieaktywne połączenia replikacji, które są dłuższe niż określona liczba milisekund. Wartość domyślna dla wystąpienia usługi Amazon Aurora PostgreSQL to30000 milliseconds (30 seconds)
. Ustawienie wartości w celu0 (zero)
wyłączenia mechanizmu przekroczenia limitu czasu i jest prawidłowym ustawieniem migracji.
- Ustaw wartość opcji
Na docelowym serwerze elastycznym, aby zapobiec wyczerpaniu magazynu w trybie online w celu przechowywania dzienników, upewnij się, że masz wystarczający magazyn w przestrzeni tabel przy użyciu aprowizowanego dysku zarządzanego. Wyłącz parametr
azure.enable_temp_tablespaces_on_local_ssd
serwera na czas trwania migracji. Przywróć parametr do oryginalnego stanu po migracji.
Konfigurowanie konfiguracji sieci
Konfiguracja sieci ma kluczowe znaczenie dla usługi migracji do poprawnego działania. Upewnij się, że źródłowy serwer PostgreSQL może komunikować się z serwerem docelowym w usłudze Azure Database for PostgreSQL.
Aby uzyskać informacje na temat konfiguracji sieci, zobacz Scenariusze sieciowe dla usługi migracji.
Włączanie rozszerzeń
Aby zapewnić pomyślną migrację przy użyciu usługi migracji w usłudze Azure Database for PostgreSQL, może być konieczne zweryfikowanie rozszerzeń w źródłowym wystąpieniu bazy danych PostgreSQL. Rozszerzenia udostępniają funkcje i funkcje, które mogą być wymagane dla aplikacji. Przed zainicjowaniem procesu migracji upewnij się, że rozszerzenia są weryfikowane w źródłowym wystąpieniu bazy danych PostgreSQL.
W docelowym wystąpieniu usługi Azure Database for PostgreSQL — serwer elastyczny włącz obsługiwane rozszerzenia, które są identyfikowane w źródłowym wystąpieniu bazy danych PostgreSQL.
Aby uzyskać więcej informacji, zobacz Rozszerzenia w usłudze Azure Database for PostgreSQL.
Uwaga
Ponowne uruchomienie jest wymagane po wprowadzeniu jakichkolwiek zmian w parametrze shared_preload_libraries
.
Sprawdzanie parametrów serwera
Parametry serwera nie są automatycznie migrowane do środowiska docelowego i muszą być skonfigurowane ręcznie.
Dopasuj wartości parametrów serwera ze źródłowej bazy danych PostgreSQL do wystąpienia usługi Azure Database for PostgreSQL. W witrynie Azure Portal przejdź do pozycji Parametry serwera i ręcznie zaktualizuj wartości.
Zapisz zmiany parametru i uruchom ponownie wystąpienie usługi Azure Database for PostgreSQL, aby w razie potrzeby zastosować nową konfigurację.
Sprawdzanie użytkowników i ról
W przypadku migracji do usługi Azure Database for PostgreSQL niezbędne jest oddzielne rozwiązanie migracji użytkowników i ról, ponieważ wymagają one interwencji ręcznej.
Ręczna migracja użytkowników i ról: użytkownicy i skojarzone z nimi role muszą zostać ręcznie zmigrowane do wystąpienia usługi Azure Database for PostgreSQL. Aby ułatwić ten proces, możesz użyć narzędzia pg_dumpall z flagą
--globals-only
w celu wyeksportowania obiektów globalnych, takich jak role i konta użytkowników.Uruchom następujące polecenie. Zastąp
<username>
ciąg rzeczywistą nazwą użytkownika i zastąp<filename>
ciąg nazwą, której chcesz użyć dla pliku wyjściowego.pg_dumpall --globals-only -U <username> -f <filename>.sql
Ograniczenie ról administratora: usługa Azure Database for PostgreSQL nie obsługuje ról administratora. Przed migracją należy usunąć uprawnienia administratora. Upewnij się, że odpowiednio dostosujesz uprawnienia i role.
Wykonując te kroki, możesz upewnić się, że konta użytkowników i role są prawidłowo migrowane do usługi Azure Database for PostgreSQL bez problemów związanych z ograniczeniami administratora.
Wyłączanie wysokiej dostępności (niezawodności) i replik do odczytu w obiekcie docelowym
Przed rozpoczęciem migracji należy wyłączyć wysoką dostępność (niezawodność) i repliki do odczytu w środowisku docelowym. Te funkcje powinny być włączone dopiero po zakończeniu migracji.
Inicjowanie migracji
Migrację można przeprowadzić przy użyciu witryny Azure Portal lub interfejsu wiersza polecenia platformy Azure.
Witryna Azure Portal oferuje proste i intuicyjne środowisko oparte na kreatorze, które przeprowadzi Cię przez migrację. Wykonując kroki opisane w tym samouczku, możesz bezproblemowo przenieść bazę danych do usługi Azure Database for PostgreSQL — serwer elastyczny i korzystać z zaawansowanych funkcji i skalowalności.
Aby przeprowadzić migrację przy użyciu witryny Azure Portal, najpierw skonfiguruj zadanie migracji. Następnie połącz się ze źródłem i obiektem docelowym i zainicjuj migrację.
Konfigurowanie zadania migracji
Aby skonfigurować zadanie migracji w witrynie Azure Portal:
Otwórz przeglądarkę internetową i przejdź do witryny Azure Portal. Wprowadź swoje poświadczenia, aby się zalogować.
Przejdź do wystąpienia usługi Azure Database for PostgreSQL — serwer elastyczny.
W menu usługi wybierz pozycję Migracja.
Wybierz pozycję Utwórz , aby przeprowadzić migrację z usługi Amazon Aurora do serwera elastycznego.
Przy pierwszym użyciu usługi migracji zostanie wyświetlona pusta siatka z monitem o rozpoczęcie pierwszej migracji. Jeśli migracje do obiektu docelowego serwera elastycznego zostały już utworzone, siatka zawiera informacje o próbach migracji.
Wybierz pozycję Utwórz , aby przejść przez serię kart, aby skonfigurować migrację.
Ustawienia
Wprowadź lub wybierz następujące informacje:
Nazwa migracji: wprowadź unikatowy identyfikator dla każdej migracji do tego obiektu docelowego serwera elastycznego. W nazwie migracji można używać tylko znaków alfanumerycznych i łączników (
-
). Nazwa nie może zaczynać się od łącznika i musi być unikatowa dla serwera docelowego. Brak dwóch migracji do tego samego obiektu docelowego serwera elastycznego może mieć taką samą nazwę.Typ serwera źródłowego: wybierz typ źródła, który odpowiada źródle bazy danych PostgreSQL, takie jak oparta na chmurze usługa PostgreSQL, konfiguracja lokalna lub maszyna wirtualna.
Opcja migracji: wybierz jedną z następujących opcji weryfikacji premii:
- Zweryfikuj. Sprawdza gotowość serwera i bazy danych do migracji do źródła docelowego.
- Migrowanie. Pomija walidację i rozpoczyna migrację.
- Weryfikowanie i migrowanie. Przeprowadza walidację przed wyzwoleniem migracji. Jeśli nie ma żadnych niepowodzeń walidacji, migracja zostanie wyzwolona.
Dobrym rozwiązaniem jest wybranie opcji Weryfikuj lub Zweryfikuj i migruj na potrzeby weryfikacji premigracji.
Aby uzyskać więcej informacji, zobacz Weryfikacje premigration.
Tryb migracji: wybierz tryb migracji. Opcja domyślna to Offline.
Wybierz pozycję Dalej: Połącz ze źródłem.
Wybierz serwer środowiska uruchomieniowego
Serwer środowiska uruchomieniowego migracji to wyspecjalizowana funkcja usługi migracji. Serwer środowiska uruchomieniowego działa jako serwer pośredniczący podczas migracji. Jest to oddzielne wystąpienie usługi Azure Database for PostgreSQL — serwer elastyczny, który nie jest serwerem docelowym. Serwer środowiska uruchomieniowego ułatwia migrację baz danych ze środowiska źródłowego, które jest dostępne tylko za pośrednictwem sieci prywatnej.
Aby uzyskać więcej informacji, zobacz Serwer środowiska uruchomieniowego migracji.
Nawiązywanie połączenia ze źródłem
Na karcie Połącz ze źródłem wprowadź lub wybierz następujące informacje dla źródła bazy danych:
- Nazwa serwera: wprowadź nazwę hosta lub adres IP źródłowego wystąpienia bazy danych PostgreSQL.
- Port: wprowadź numer portu serwera źródłowego.
- Nazwa logowania administratora serwera: wprowadź nazwę użytkownika źródłowego serwera PostgreSQL.
- Hasło: wprowadź hasło źródłowego serwera PostgreSQL.
- Tryb SSL: Obsługiwane wartości to Preferuj i Wymagaj. Gdy protokół SSL (Secure Sockets Layer) na źródłowym serwerze PostgreSQL jest wyłączony, wybierz pozycję Preferuj. Jeśli protokół SSL na serwerze źródłowym jest włączony, wybierz pozycję Wymagaj. Wartości SSL są ustawiane w pliku postgresql.conf .
- Połączenie testowe: inicjuje test łączności między miejscem docelowym a źródłem. Po pomyślnym nawiązaniu połączenia przejdź do następnego kroku, aby zidentyfikować problemy z siecią między elementem docelowym i źródłem oraz zweryfikować nazwę użytkownika i hasło dla źródła. Nawiązywanie połączenia testowego trwa kilka minut.
Po pomyślnym połączeniu testowym wybierz pozycję Dalej: wybierz docelową migrację.
Wybierz cel migracji
Na karcie Wybieranie miejsca docelowego migracji wprowadź lub wybierz następujące informacje dotyczące obiektu docelowego serwera elastycznego, oprócz subskrypcji, grupy zasobów i nazwy serwera:
- Nazwa użytkownika administratora: nazwa użytkownika administratora docelowego serwera PostgreSQL.
- Hasło: hasło docelowego serwera PostgreSQL.
- Niestandardowa nazwa FQDN/adres IP (opcjonalnie): niestandardowe pole FQDN/IP jest opcjonalne i może być używane, gdy obiekt docelowy znajduje się za niestandardowym serwerem DNS lub ma niestandardowe przestrzenie nazw DNS, dzięki czemu jest dostępny tylko za pośrednictwem określonych nazw FQDN lub adresów IP. Na przykład może to obejmować wpisy, takie jak
flexibleserver.example.com
,198.1.0.2
lub nazwa FQDN postgreSQL, takie jakflexibleserver.postgres.database.azure.com
, jeśli niestandardowy serwer DNS zawiera strefępostgres.database.azure.com
DNS lub przekazuje zapytania dla tej strefy do168.63.129.16
, gdzie nazwa FQDN jest rozpoznawana w publicznej lub prywatnej strefie DNS platformy Azure. - Połączenie testowe: inicjuje test łączności między miejscem docelowym a źródłem. Po pomyślnym nawiązaniu połączenia przejdź do następnego kroku, aby zidentyfikować problemy z siecią między obiektem docelowym i źródłem oraz zweryfikować nazwę użytkownika i hasło serwera docelowego. Nawiązywanie połączenia testowego trwa kilka minut.
Po pomyślnym połączeniu testowym wybierz pozycję Dalej: wybierz bazy danych do migracji.
Wybieranie baz danych na potrzeby migracji
Na karcie Wybierz bazę danych do migracji wybierz z listy baz danych użytkowników, które mają być migrowane z źródłowego serwera PostgreSQL.
Po wybraniu baz danych wybierz pozycję Dalej: Podsumowanie.
Podsumowanie
Karta Podsumowanie zawiera podsumowanie wszystkich szczegółów źródłowych i docelowych dotyczących tworzenia walidacji lub migracji. Przejrzyj szczegóły, a następnie wybierz pozycję Rozpocznij walidację i migrację.
Monitorowanie migracji
W ciągu kilku sekund po wybraniu pozycji Rozpocznij walidację i migrację zostanie wyświetlone powiadomienie informujące o pomyślnym zakończeniu weryfikacji lub utworzenia migracji. Nastąpi przekierowanie do okienka Migracja wystąpienia serwera elastycznego. Wpis stanu to InProgress , a podstan to PerformingPreRequisiteSteps. Skonfigurowanie infrastruktury migracji i sprawdzenie połączeń sieciowych w przepływie pracy trwa od 2 do 3 minut.
Siatka zawierająca migracje zawiera następujące kolumny:
- Nazwa/nazwisko
- Stan
- Tryb migracji
- Typ migracji
- Serwer źródłowy
- Typ serwera źródłowego
- Bazy danych
- Czas trwania
- Godzina rozpoczęcia
Wpisy są wyświetlane w kolejności malejącej czasu rozpoczęcia z najnowszym wpisem u góry. Możesz wybrać pozycję Odśwież na pasku menu, aby odświeżyć stan weryfikacji lub uruchomienia migracji.
Szczegóły migracji
Na liście migracji wybierz nazwę migracji, aby wyświetlić skojarzone szczegóły.
Na karcie Instalator wybierz opcję migracji Zweryfikuj i migruj. W tym scenariuszu walidacje są wykonywane przed rozpoczęciem migracji. Po zakończeniu podstanu PerformingPreRequisiteSteps przepływ pracy przechodzi do podstanu Walidacja w toku .
Jeśli walidacja zawiera błędy, migracja zostanie przeniesiona do stanu Niepowodzenie.
Jeśli walidacja zostanie ukończona bez żadnego błędu, migracja zostanie uruchomiona, a przepływ pracy przejdzie do podstanu Migrowanie danych.
Szczegóły weryfikacji można sprawdzić na poziomie wystąpienia i na poziomie bazy danych:
Walidacja na poziomie wystąpienia:
- Sprawdź walidację związaną z sprawdzaniem łączności dla wersji źródłowej (
PostgreSQL version >= 9.5
sprawdzanie parametru serwera), czy rozszerzenia są włączone w parametrach serwera wystąpienia usługi Azure Database for PostgreSQL — serwer elastyczny.
- Sprawdź walidację związaną z sprawdzaniem łączności dla wersji źródłowej (
Walidacja na poziomie bazy danych:
- Sprawdź walidację poszczególnych baz danych związanych z obsługą rozszerzeń i sortowania w usłudze Azure Database for PostgreSQL — serwer elastyczny.
Bieżący stan migracji i walidacji można wyświetlić w okienku szczegółów migracji.
W poniższych tabelach opisano niektóre możliwe stany i podstany migracji.
Stany migracji
Stan | opis |
---|---|
Ruch przychodzący | Trwa konfigurowanie infrastruktury migracji lub trwa rzeczywista migracja danych. |
Anulowane | Migracja zostanie anulowana lub usunięta. |
Nie działa | Migracja nie powiodła się. |
Walidacja nie powiodła się | Walidacja nie powiodła się. |
Powodzenie | Migracja zakończyła się pomyślnie i została ukończona. |
OczekiwanieForUserAction | Dotyczy tylko migracji online. Oczekiwanie na wykonanie migracji jednorazowej przez użytkownika. |
Podstany migracji
Podstan | opis |
---|---|
PerformingPreRequisiteSteps | Trwa konfigurowanie infrastruktury na potrzeby migracji danych. |
Walidacja w toku | Walidacja jest w toku. |
Migrowanie danych | Migracja danych jest w toku. |
UkończenieMigration | Migracja jest na ostatnim etapie ukończenia. |
Zakończono | Migracja została ukończona. |
Nie działa | Migracja nie powiodła się. |
Podstany walidacji
Podstan | opis |
---|---|
Nie działa | Sprawdzanie poprawności nie powiodło się. |
Powodzenie | Walidacja zakończyła się pomyślnie. |
Ostrzeżenie | Walidacja wyświetla ostrzeżenie. |
Inicjowanie migracji jednorazowej
W przypadku wyświetlenia obu opcji Migracja i Weryfikowanie i Migrowanie ukończenie migracji online wymaga dodatkowego kroku inicjowania migracji jednorazowej. Po zakończeniu kopiowania i klonowania danych podstawowych migracja zostanie przeniesiona do stanu WaitingForUserAction i podstanu WaitingForCutoverTrigger . W tym stanie użytkownik może wyzwolić migrację jednorazową z portalu, wybierając migrację.
Przed zainicjowaniem migracji jednorazowej należy upewnić się, że:
- Operacje zapisu w źródle są zatrzymywane.
- Wartość
latency
zmniejsza się do 0 lub blisko 0.
Możesz uzyskać latency
wartość w okienku szczegółów migracji:
Wartość latency
wskazuje, kiedy element docelowy został ostatnio zsynchronizowany ze źródłem. W tym momencie można zatrzymać zapisywanie w źródle i zainicjowanie migracji jednorazowej. Jeśli na serwerze źródłowym występuje duży ruch, zalecamy, aby najpierw zatrzymać zapisy, aby latency
zbliżyć się do wartości 0. Następnie zainicjuj migrację jednorazową.
Operacja migracji jednorazowej stosuje wszystkie oczekujące zmiany ze źródła do elementu docelowego i kończy migrację. Jeśli wyzwalasz migrację jednorazową, nawet z wartością inną niżzerowa dla latency
, replikacja zostanie zatrzymana w tym momencie w czasie. Wszystkie dane są w źródle do momentu zastosowania punktu jednorazowego do obiektu docelowego. Jeśli na przykład opóźnienie wynosi 15 minut w punkcie migracji jednorazowej, wszystkie zmienione dane w ciągu ostatnich 15 minut zostaną zastosowane do wartości docelowej. Czas potrzebny na zakończenie migracji jednorazowej zależy od listy prac zmian, które wystąpiły w ciągu tych 15 minut. Dlatego zalecamy, aby opóźnienie przechodziło do zera lub zbliżonego do zera przed wyzwoleniem migracji jednorazowej.
Migracja zostanie przeniesiona do stanu Powodzenie , gdy podstan Migrowanie danych lub migracja jednorazowa (w migracji online) zakończy się pomyślnie. Jeśli wystąpił problem w podstanie Migrowanie danych , migracja zostanie przeniesiona do stanu Niepowodzenie .
Weryfikowanie migracji
Po zakończeniu migracji bazy danych ręcznie zweryfikuj dane między źródłem a obiektem docelowym. Sprawdź, czy wszystkie obiekty w docelowej bazie danych zostały pomyślnie utworzone.
Po migracji można wykonać następujące zadania:
- Sprawdź dane na serwerze elastycznym i upewnij się, że jest to dokładna kopia wystąpienia źródłowego.
- Po weryfikacji włącz opcję wysokiej dostępności na serwerze elastycznym zgodnie z potrzebami.
- Zmień jednostkę SKU (wersja) serwera elastycznego, aby odpowiadała potrzebom aplikacji. Ta zmiana wymaga ponownego uruchomienia serwera bazy danych.
- Jeśli zmienisz jakiekolwiek parametry serwera z ich wartości domyślnych w wystąpieniu źródłowym, skopiuj te wartości parametrów serwera do serwera elastycznego.
- Skopiuj inne ustawienia serwera, takie jak tagi, alerty i reguły zapory (jeśli dotyczy), z wystąpienia źródłowego do serwera elastycznego.
- Wprowadź zmiany w aplikacji, aby wskazać parametry połączenia serwerowi elastycznemu.
- Uważnie monitoruj wydajność bazy danych, aby sprawdzić, czy wymaga dostrajania wydajności.