Samouczek: migrowanie bazy danych PostgreSQL do Azure Database for PostgreSQL online przy użyciu usługi DMS (klasycznej) za pośrednictwem Azure Portal

Za pomocą Azure Database Migration Service można przeprowadzić migrację baz danych z lokalnego wystąpienia bazy danych PostgreSQL do Azure Database for PostgreSQL z minimalnym przestojem w aplikacji. W tym samouczku przeprowadzisz migrację przykładowej bazy danych listdb z lokalnego wystąpienia bazy danych PostgreSQL 13.10 do Azure Database for PostgreSQL przy użyciu działania migracji online w Azure Database Migration Service.

Ten samouczek zawiera informacje na temat wykonywania następujących czynności:

  • Migrowanie przykładowego schematu przy użyciu narzędzia pg_dump.
  • Utwórz wystąpienie usługi Azure Database Migration Service.
  • Utwórz projekt migracji w Azure Database Migration Service.
  • Uruchamianie migracji.
  • Monitoruj migrację.
  • Przeprowadź migrację jednorazową.

Uwaga

Użycie Azure Database Migration Service do przeprowadzenia migracji online wymaga utworzenia wystąpienia na podstawie warstwy cenowej Premium. Szyfrujemy dysk, aby zapobiec kradzieży danych podczas procesu migracji

Ważne

W celu uzyskania optymalnego środowiska migracji firma Microsoft zaleca utworzenie wystąpienia Azure Database Migration Service w tym samym regionie świadczenia usługi Azure co docelowa baza danych. Przenoszenie danych między regionami lub lokalizacjami geograficznymi może spowalniać proces migracji i powodować błędy.

Wymagania wstępne

Do ukończenia tego samouczka niezbędne są następujące elementy:

  • Pobierz i zainstaluj program PostgreSQL Community Edition. Źródłowa wersja serwera PostgreSQL musi być >= 9.4. Aby uzyskać więcej informacji, zobacz Obsługiwane wersje bazy danych PostgreSQL.

    Należy również pamiętać, że docelowa wersja Azure Database for PostgreSQL musi być równa lub nowsza niż lokalna wersja bazy danych PostgreSQL. Na przykład usługa PostgreSQL 12 może migrować do usługi Azure Database for PostgreSQL >= 12, ale nie do Azure Database for PostgreSQL 11.

  • Tworzenie serwera usługi Azure Database for PostgreSQL.

  • Utwórz Virtual Network platformy Microsoft Azure dla Azure Database Migration Service przy użyciu modelu wdrażania usługi Azure Resource Manager, który zapewnia łączność lokacja-lokacja z lokalnymi serwerami źródłowymi przy użyciu usługi ExpressRoute lub sieci VPN. Aby uzyskać więcej informacji na temat tworzenia sieci wirtualnej, zobacz dokumentację Virtual Network, a zwłaszcza artykuły Szybki start ze szczegółowymi informacjami krok po kroku.

    Uwaga

    Podczas konfigurowania sieci wirtualnej, jeśli używasz usługi ExpressRoute z komunikacją równorzędną sieci do firmy Microsoft, dodaj następujące punkty końcowe usługi do podsieci , w której będzie aprowizowana usługa:

    • Punkt końcowy docelowej bazy danych (np. punkt końcowy usługi SQL, punkt końcowy usługi Azure Cosmos DB)
    • Punkt końcowy magazynu
    • Punkt końcowy magistrali usług

    Taka konfiguracja jest konieczna, ponieważ usługa Azure Database Migration Service nie ma łączności z Internetem.

  • Upewnij się, że reguły sieciowej grupy zabezpieczeń dla sieci wirtualnej nie blokują wychodzącego portu 443 elementu ServiceTag dla usług ServiceBus, Storage i AzureMonitor. Aby uzyskać więcej informacji na temat filtrowania ruchu sieciowej grupy zabezpieczeń sieci wirtualnej, zobacz artykuł Filtrowanie ruchu sieciowego za pomocą sieciowych grup zabezpieczeń.

  • Zapora sytemu Windows skonfigurowana pod kątem dostępu do aparatu bazy danych.

  • Otwórz zaporę systemu Windows, aby zezwolić Azure Database Migration Service na dostęp do źródłowego serwera PostgreSQL, który domyślnie jest portem TCP 5432.

  • W przypadku korzystania z urządzenia zapory przed źródłową bazą danych konieczne może być dodanie reguł zapory, aby zezwolić usłudze Azure Database Migration Service na dostęp do źródłowej bazy danych podczas migracji.

  • Utwórz regułę zapory na poziomie serwera dla Azure Database for PostgreSQL, aby umożliwić Azure Database Migration Service dostęp do docelowych baz danych. Podaj zakres podsieci sieci wirtualnej używanej do Azure Database Migration Service.

  • Włącz replikację logiczną w pliku postgresql.config i ustaw następujące parametry:

    • wal_level = logical
    • max_replication_slots = [liczba miejsc], zaleca ustawienie na pięć miejsc
    • max_wal_senders = [liczba współbieżnych zadań] — parametr max_wal_senders ustawia liczbę współbieżnych zadań, które można uruchomić, przy czym zalecane ustawienie to 10 zadań
  • Użytkownik musi mieć rolę REPLIKACJI na serwerze hostowania źródłowej bazy danych.

Ważne

Wszystkie tabele w istniejącej bazie danych muszą mieć klucz podstawowy, aby upewnić się, że zmiany można zsynchronizować z docelową bazą danych.

Migrowanie przykładowego schematu

Aby utworzyć wszystkie obiekty bazy danych, takie jak schematy tabel, indeksy oraz procedury składowane, należy wyodrębnić schemat ze źródłowej bazy danych i zastosować go w bazie danych.

  1. Użyj polecenia -s pg_dump, aby utworzyć plik zrzutu schematu dla bazy danych.

    pg_dump -O -h hostname -U db_username -d db_name -s > your_schema.sql
    

    Aby na przykład utworzyć plik zrzutu schematu dla bazy danych listdb :

    pg_dump -O -h localhost -U postgres -d listdb -s -x > listdbSchema.sql
    

    Aby uzyskać więcej informacji na temat korzystania z narzędzia pg_dump, zobacz przykłady w samouczku narzędzia pg-dump.

  2. Utwórz pustą bazę danych w swoim środowisku docelowym, czyli w usłudze Azure Database for PostgreSQL.

    Aby uzyskać szczegółowe informacje na temat nawiązywania połączenia i tworzenia bazy danych, zobacz artykuł Tworzenie serwera Azure Database for PostgreSQL w Azure Portal.

  3. Zaimportuj schemat do docelowej bazy danych utworzonej przez przywrócenie pliku zrzutu schematu.

    psql -h hostname -U db_username -d db_name < your_schema.sql
    

    Przykład:

    psql -h mypgserver-20170401.postgres.database.azure.com  -U postgres -d migratedb < listdbSchema.sql
    

    Uwaga

    Usługa migracji wewnętrznie obsługuje włączanie/wyłączanie kluczy obcych i wyzwalaczy w celu zapewnienia niezawodnej i niezawodnej migracji danych. W związku z tym nie musisz martwić się o wprowadzanie żadnych modyfikacji schematu docelowej bazy danych.

Rejestrowanie dostawcy zasobów

Przed utworzeniem pierwszego wystąpienia usługi Database Migration Service zarejestruj dostawcę zasobów Microsoft.DataMigration.

  1. Zaloguj się w witrynie Azure Portal. Wyszukaj i wybierz pozycję Subskrypcje.

    Wyświetlanie subskrypcji w portalu

  2. Wybierz subskrypcję, w której chcesz utworzyć wystąpienie Azure Database Migration Service, a następnie wybierz pozycję Dostawcy zasobów.

    Wyświetlanie dostawców zasobów

  3. Wyszukaj migrację, a następnie wybierz pozycję Zarejestruj dlapozycji Microsoft.DataMigration.

    Rejestrowanie dostawcy zasobów

Tworzenie wystąpienia usługi Azure Database Migration Service

  1. W menu Azure Portal lub na stronie głównej wybierz pozycję Utwórz zasób. Wyszukaj i wybierz pozycję Azure Database Migration Service.

    Azure Marketplace

  2. Na ekranie Azure Database Migration Service wybierz polecenie Utwórz.

    Tworzenie wystąpienia usługi Azure Database Migration Service

    Wybierz odpowiedni typ serwera źródłowego i typ serwera docelowego, a następnie wybierz opcję Database Migration Service (wersja klasyczna).

    Wybieranie scenariusza Database Migration Service (klasyczny)

  3. Na ekranie Tworzenie podstaw usługi Migration Service :

    • Wybierz subskrypcję.
    • Utwórz nową grupę zasobów lub wybierz istniejącą.
    • Określ nazwę wystąpienia Azure Database Migration Service.
    • Wybierz lokalizację, w której chcesz utworzyć wystąpienie Azure Database Migration Service.
    • Wybierz platformę Azure jako tryb usługi.
    • Wybierz warstwę cenową. Aby uzyskać więcej informacji na temat kosztów i warstw cenowych, zobacz stronę z cennikiem.

    Konfigurowanie ustawień podstawowych wystąpień Azure Database Migration Service

    • Wybierz pozycję Dalej: Sieć.
  4. Na ekranie Tworzenie sieci usługi Migration Service :

    • Wybierz istniejącą sieć wirtualną lub utwórz nową. Sieć wirtualna zapewnia Azure Database Migration Service dostęp do serwera źródłowego i wystąpienia docelowego. Aby uzyskać więcej informacji na temat tworzenia sieci wirtualnej w Azure Portal, zobacz artykuł Tworzenie sieci wirtualnej przy użyciu Azure Portal.

    Konfigurowanie ustawień sieci wystąpienia Azure Database Migration Service

    • Wybierz pozycję Przejrzyj i utwórz , aby przejrzeć szczegóły, a następnie wybierz pozycję Utwórz , aby utworzyć usługę.

    • Po kilku chwilach wystąpienie usługi Azure Database Migration Service zostanie utworzone i gotowe do użycia:

    Utworzono usługę migracji

Tworzenie projektu migracji

Po utworzeniu usługi znajdź ją w witrynie Azure Portal, otwórz ją, a następnie utwórz nowy projekt migracji.

  1. W witrynie Azure Portal wybierz pozycję Wszystkie usługi, wyszukaj usługę Azure Database Migration Service, a następnie wybierz pozycję Azure Database Migration Services.

    Zrzut ekranu przedstawiający Azure Database Migration Service wyszukiwania.

  2. Na ekranie Azure Database Migration Services wyszukaj nazwę utworzonego wystąpienia Azure Database Migration Service, wybierz wystąpienie, a następnie wybierz pozycję + Nowy projekt migracji.

    Zrzut ekranu przedstawiający wyszukiwanie wystąpienia Azure Database Migration Service.

  3. Na ekranie Nowy projekt migracji określ nazwę projektu, w polu tekstowym Typ serwera źródłowego wybierz pozycję PostgreSQL, w polu tekstowym Typ serwera docelowego wybierz pozycję Azure Database for PostgreSQL.

  4. W sekcji Typ działania migracji wybierz pozycję Migracja danych online.

    Zrzut ekranu przedstawiający tworzenie nowego projektu migracji.

    Uwaga

    Alternatywnie możesz wybrać pozycję Utwórz projekt tylko , aby utworzyć projekt migracji teraz i wykonać migrację później.

  5. Wybierz pozycję Utwórz i uruchom działanie, aby pomyślnie użyć Azure Database Migration Service do migracji danych.

Określanie szczegółów źródła

  1. Na ekranie Dodawanie szczegółów źródła określ szczegóły połączenia dla źródłowego wystąpienia bazy danych PostgreSQL.

    Zrzut ekranu przedstawiający ekran Dodawanie szczegółów źródła.

Określanie szczegółów elementu docelowego

  1. Na ekranie Szczegóły obiektu docelowego określ szczegóły połączenia dla docelowego serwera Azure Database for PostgreSQL — serwer elastyczny, który jest wystąpieniem wstępnie aprowizacji, do którego wdrożono schemat przy użyciu pg_dump.

    Zrzut ekranu przedstawiający ekran Dodawanie szczegółów docelowych.

  2. Kliknij przycisk Dalej:Wybierz bazy danych, a następnie na ekranie Wybieranie baz danych zamapuj źródło i docelową bazę danych na potrzeby migracji.

    Jeśli docelowa baza danych zawiera tę samą nazwę bazy danych co źródłowa baza danych, Azure Database Migration Service domyślnie wybiera docelową bazę danych.

    Zrzut ekranu przedstawiający bazy danych mapy z ekranem docelowym.

  3. Kliknij przycisk Dalej:Wybierz tabele, a następnie na ekranie Wybieranie tabel wybierz wymagane tabele , które mają zostać zmigrowane.

    Zrzut ekranu przedstawiający wybieranie tabel dla ekranu migracji.

  4. Kliknij przycisk Dalej:Skonfiguruj ustawienia migracji, a następnie na ekranie Konfigurowanie ustawień migracji zaakceptuj wartości domyślne.

    Zrzut ekranu przedstawiający konfigurowanie ustawienia migracji.

  5. Na ekranie Podsumowanie migracji w polu tekstowym Nazwa działania określ nazwę działania migracji, a następnie przejrzyj podsumowanie, aby upewnić się, że szczegóły źródła i elementu docelowego są zgodne z wcześniej określonymi elementami.

    Zrzut ekranu przedstawiający ekran podsumowania migracji.

Uruchamianie migracji

  • Wybierz pozycję Rozpocznij migrację.

    Zostanie wyświetlone okno działania migracji, a stan działania powinien zostać zaktualizowany tak, aby był wyświetlany jako Kopia zapasowa w toku.

Monitorowanie migracji

  1. Na ekranie działania migracji wybieraj polecenie Odśwież, aby zaktualizować ekran, aż do momentu, gdy Stan migracji zmieni się na Ukończono.

    Zrzut ekranu przedstawiający ekran monitorowania migracji.

  2. Po zakończeniu migracji w obszarze Nazwa bazy danych wybierz określoną bazę danych, aby przejść do stanu migracji dla operacji pełnego ładowania danych i operacji synchronizacji danych przyrostowych .

    Uwaga

    Pełne ładowanie danych pokazuje stan migracji początkowej obciążenia, podczas gdy synchronizacja danych przyrostowych pokazuje stan przechwytywania zmian danych (CDC).

    Zrzut ekranu przedstawiający ekran szczegółów pełnego ładowania migracji.

    Zrzut ekranu przedstawiający ekran szczegółów ładowania przyrostowego migracji.

Przeprowadzanie migracji jednorazowej

Po zakończeniu początkowego pełnego ładowania bazy danych są oznaczone jako Gotowe do migracji jednorazowej.

  1. Gdy wszystko jest gotowe do zakończenia migracji bazy danych, wybierz pozycję Rozpocznij migrację jednorazową.

  2. Poczekaj na wyświetlenie licznika Oczekujące zmiany0 , aby upewnić się, że wszystkie transakcje przychodzące do źródłowej bazy danych zostaną zatrzymane, zaznacz pole wyboru Potwierdź , a następnie wybierz pozycję Zastosuj.

    Zrzut ekranu przedstawiający ekran uzupełniania jednorazowego.

  3. Po wyświetleniu stanu migracji bazy danych ukończonoutwórz ponownie sekwencje (jeśli ma to zastosowanie) i połącz aplikacje z nowym wystąpieniem docelowym Azure Database for PostgreSQL.

Następne kroki