Samouczek: migrowanie bazy danych PostgreSQL do usługi Azure Database for PostgreSQL w trybie online przy użyciu usługi DMS (klasycznej) za pośrednictwem witryny Azure Portal
Ważne
Zalecamy użycie nowej usługi migracji w usłudze Azure Database for PostgreSQL w celu uzyskania bardziej usprawnionego i wydajnego środowiska migracji. Ta usługa upraszcza proces, obsługując różne środowiska źródłowe, zapewniając bezproblemowe przejście do usługi Azure Database for PostgreSQL.
Aby uzyskać więcej informacji na temat usługi Azure Database Migration Service, zobacz artykuł Co to jest usługa Azure Database Migration Service?
Za pomocą usługi Azure Database Migration Service można migrować bazy danych z lokalnego wystąpienia bazy danych PostgreSQL do usługi 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 usługi Azure Database for PostgreSQL przy użyciu działania migracji online w usłudze Azure Database Migration Service.
Z tego samouczka dowiesz się, jak wykonywać następujące czynności:
- Przeprowadź migrację 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 usłudze Azure Database Migration Service.
- Uruchamianie migracji.
- Monitoruj migrację.
- Przeprowadź migrację jednorazową.
Przeprowadzenie migracji online przy użyciu usługi Azure Database Migration Service wymaga utworzenia wystąpienia na podstawie warstwy cenowej Premium. Szyfrujemy dysk, aby zapobiec kradzieży danych podczas procesu migracji
Ważne
Aby uzyskać optymalne środowisko migracji, firma Microsoft zaleca utworzenie wystąpienia usługi 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 w usłudze Azure Database for PostgreSQL — serwer elastyczny.
Należy również pamiętać, że docelowa wersja usługi Azure Database for PostgreSQL musi być równa lub nowsza niż lokalna wersja bazy danych PostgreSQL. Na przykład program PostgreSQL 12 może przeprowadzić migrację do usługi Azure Database for PostgreSQL >= 12, ale nie do usługi Azure Database for PostgreSQL 11.
Utworzenie usługi Microsoft Azure Virtual Network dla usługi Azure Database Migration Service przy użyciu modelu wdrożenia usługi Azure Resource Manager, która zapewnia łączność między lokacjami dla lokalnych serwerów źródłowych, z użyciem usługi ExpressRoute lub sieci VPN. Aby uzyskać więcej informacji na temat tworzenia sieci wirtualnej, zobacz dokumentację sieci wirtualnej, a zwłaszcza artykuły Szybki start ze szczegółowymi informacjami krok po kroku.
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ą portu wychodzącego 443 elementu ServiceTag dla usług ServiceBus, Storage i AzureMonitor. Aby uzyskać więcej informacji na temat filtrowania ruchu sieciowej grupy zabezpieczeń sieci wirtualnej, zapoznaj się z artykułem Filtrowanie ruchu sieciowego przy użyciu sieciowych grup zabezpieczeń.
Zapora sytemu Windows skonfigurowana pod kątem dostępu do aparatu bazy danych.
Otwórz zaporę systemu Windows, aby zezwolić usłudze Azure Database Migration Service na dostęp do źródłowego serwera PostgreSQL Server, czyli domyślnie ustawionego portu TCP 5432.
W przypadku korzystania z urządzenia zapory przed źródłowymi bazami danych może być konieczne dodanie reguł zapory, aby umożliwić usłudze Azure Database Migration Service dostęp do źródłowych baz danych na potrzeby migracji.
Utwórz regułę zapory na poziomie serwera dla usługi Azure Database for PostgreSQL, aby umożliwić usłudze Azure Database Migration Service dostęp do docelowych baz danych. Podaj zakres podsieci sieci wirtualnej używanej dla usługi 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], zalecamy ustawienie pięciu 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ę REPLIKACJA na serwerze hostującym źródłową bazę 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 usługi Azure Database for PostgreSQL w witrynie 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
Na 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 docelowego schematu 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 usługi Azure Database Migration Service, a następnie wybierz pozycję Dostawcy zasobów.
Wyszukaj pozycję migracja, a następnie wybierz pozycję Zarejestruj dla pozycji Microsoft.DataMigration.
Tworzenie wystąpienia usługi Azure Database Migration Service
W menu witryny 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 usługi Azure Database Migration Service.
- Wybierz lokalizację, w której chcesz utworzyć wystąpienie usługi 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 usłudze 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 witrynie Azure Portal, zobacz artykuł Tworzenie sieci wirtualnej przy użyciu witryny 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 będzie 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 usługi 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.
Alternatywnie możesz wybrać opcję Utwórz projekt tylko w celu utworzenia projektu migracji teraz i wykonania migracji później.
Wybierz pozycję Utwórz i uruchom działanie, aby pomyślnie użyć usługi 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 elementu docelowego określ szczegóły połączenia dla docelowego serwera usługi Azure Database for PostgreSQL — elastyczny, czyli wstępnie aprowizowanego wystąpienia, do którego wdrożono schemat przy użyciu pg_dump.
Wybierz pozycję Dalej:Wybierz bazy danych, a następnie na ekranie Wybieranie baz danych zamapuj źródłową i docelową bazę danych na potrzeby migracji.
Jeśli docelowa baza danych zawiera taką samą nazwę bazy danych jak źródłowa baza danych, usługa Azure Database Migration Service domyślnie wybiera docelową bazę danych.
Wybierz pozycję Dalej:Wybierz tabele, a następnie na ekranie Wybieranie tabel wybierz wymagane tabele, które mają zostać zmigrowane.
Wybierz pozycję 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 celu są zgodne z wcześniej określonymi informacjami.
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 synchronizacji danych przyrostowych.
Uwaga
Pełne ładowanie danych pokazuje stan migracji początkowej obciążenia, podczas gdy synchronizacja danych przyrostowych pokazuje stan przechwytywania zmian (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 zmiany, 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.
0
Gdy stan migracji bazy danych to Ukończono, utwórz ponownie sekwencje (jeśli dotyczy) i połącz aplikacje z nowym docelowym wystąpieniem usługi Azure Database for PostgreSQL.