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.
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.
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.
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.
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.
Zaloguj się w witrynie Azure Portal. Wyszukaj i wybierz pozycję Subskrypcje.
Wybierz subskrypcję, w której chcesz utworzyć wystąpienie Azure Database Migration Service, a następnie wybierz pozycję Dostawcy zasobów.
Wyszukaj migrację, a następnie wybierz pozycję Zarejestruj dlapozycji Microsoft.DataMigration.
Tworzenie wystąpienia usługi Azure Database Migration Service
W menu Azure Portal lub na stronie głównej wybierz pozycję Utwórz zasób. Wyszukaj i wybierz pozycję Azure Database Migration Service.
Na ekranie Azure Database Migration Service wybierz polecenie Utwórz.
Wybierz odpowiedni typ serwera źródłowego i typ serwera docelowego, a następnie wybierz opcję Database Migration Service (wersja klasyczna).
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.
- Wybierz pozycję Dalej: Sieć.
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.
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:
Tworzenie projektu migracji
Po utworzeniu usługi znajdź ją w witrynie Azure Portal, otwórz ją, a następnie utwórz nowy projekt migracji.
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.
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.
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.
W sekcji Typ działania migracji wybierz pozycję Migracja danych online.
Uwaga
Alternatywnie możesz wybrać pozycję Utwórz projekt tylko , aby utworzyć projekt migracji teraz i wykonać migrację później.
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
Na ekranie Dodawanie szczegółów źródła określ szczegóły połączenia dla źródłowego wystąpienia bazy danych PostgreSQL.
Określanie szczegółów elementu docelowego
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.
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.
Kliknij przycisk Dalej:Wybierz tabele, a następnie na ekranie Wybieranie tabel wybierz wymagane tabele , które mają zostać zmigrowane.
Kliknij przycisk Dalej:Skonfiguruj ustawienia migracji, a następnie na ekranie Konfigurowanie ustawień migracji zaakceptuj wartości domyślne.
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.
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
Na ekranie działania migracji wybieraj polecenie Odśwież, aby zaktualizować ekran, aż do momentu, gdy Stan migracji zmieni się na Ukończono.
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).
Przeprowadzanie migracji jednorazowej
Po zakończeniu początkowego pełnego ładowania bazy danych są oznaczone jako Gotowe do migracji jednorazowej.
Gdy wszystko jest gotowe do zakończenia migracji bazy danych, wybierz pozycję Rozpocznij migrację jednorazową.
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.
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
- Aby uzyskać informacje o znanych problemach i ograniczeniach związanych z wykonywaniem migracji w trybie online do usługi Azure Database for PostgreSQL, zobacz artykuł Znane problemy i obejścia problemów związanych z migracjami online usługi Azure Database for PostgreSQL.
- Aby uzyskać informacje o usłudze Azure Database Migration Service, zobacz artykuł Czym jest usługa Azure Database Migration Service?.
- Aby uzyskać informacje o Azure Database for PostgreSQL, zobacz artykuł Co to jest Azure Database for PostgreSQL?.