Przenoszenie usługi Azure Database for PostgreSQL do innego regionu

W tym artykule opisano wskazówki dotyczące relokacji dla usługi Azure Database for PostgreSQL, pojedynczego serwera i serwerów elastycznych w różnych lokalizacjach geograficznych, w których pary regionów nie są dostępne do replikacji i przywracania geograficznego.

Istnieją różne powody, dla których możesz przenieść istniejące zasoby platformy Azure z jednego regionu do innego. Możesz chcieć:

  • Skorzystaj z nowego regionu świadczenia usługi Azure.
  • Wdrażanie funkcji lub usług dostępnych tylko w określonych regionach.
  • Spełnij wymagania dotyczące zasad wewnętrznych i ładu.
  • Dopasowanie do fuzji i przejęć firmy
  • Spełnianie wymagań dotyczących planowania pojemności.

Aby dowiedzieć się, jak przenieść usługę Azure Cosmos DB for PostgreSQL (wcześniej nazywaną usługą Azure Database for PostgreSQL — Hiperskala (Citus)), zobacz Temat Repliki do odczytu w usłudze Azure Cosmos DB for PostgreSQL.

Aby zapoznać się z omówieniem par regionów obsługiwanych przez replikację natywną, zobacz Replikacja między regionami.

Wymagania wstępne

Wymagania wstępne mają zastosowanie tylko do ponownego wdrożenia danych. Aby przenieść bazę danych bez danych, możesz przejść do sekcji Przygotowanie.

  • Aby przenieść bazę danych PostgreSQL z jednego regionu do innego, musisz mieć dodatkowy zasób obliczeniowy, aby uruchomić narzędzia do tworzenia kopii zapasowych i przywracania. W przykładach w tym przewodniku użyto maszyny wirtualnej platformy Azure z systemem Ubuntu 20.04 LTS. Zasoby obliczeniowe muszą:
    • Mieć dostęp sieciowy zarówno do źródła, jak i serwera docelowego, w sieci prywatnej lub przez dołączenie do reguł zapory.
    • Znajduje się w regionie źródłowym lub docelowym.
    • Użyj przyspieszonej sieci (jeśli jest dostępna).
    • Zawartość bazy danych nie jest zapisywana w żadnym magazynie pośrednim; dane wyjściowe narzędzia do tworzenia kopii zapasowej logicznej są wysyłane bezpośrednio do serwera docelowego.
  • W zależności od projektu wystąpienia usługi Azure Database for PostgreSQL może być konieczne wdrożenie i skonfigurowanie następujących zasobów zależnych w regionie docelowym przed przeniesieniem:

Przestój

Aby zrozumieć możliwe przestoje, zobacz Cloud Adoption Framework for Azure: Select a relocation method (Przewodnik Cloud Adoption Framework dla platformy Azure: wybieranie metody relokacji).

Przygotowywanie

Aby rozpocząć, wyeksportuj szablon usługi Resource Manager. Ten szablon zawiera ustawienia opisujące przestrzeń nazw usługi Automation.

  1. Zaloguj się w witrynie Azure Portal.

  2. Wybierz pozycję Wszystkie zasoby , a następnie wybierz zasób usługi Automation.

  3. Wybierz pozycję Eksportuj szablon.

  4. Wybierz pozycję Pobierz na stronie Eksportuj szablon .

  5. Znajdź pobrany plik .zip z portalu i rozpakuj ten plik do wybranego folderu.

    Ten plik zip zawiera pliki .json zawierające szablon i skrypty do wdrożenia szablonu.

Ponowne wdrażanie bez danych

  1. Dostosuj wyeksportowane parametry szablonu, aby odpowiadały regionowi docelowemu.

Ważne

Serwer docelowy musi być inny niż nazwa serwera źródłowego. Należy ponownie skonfigurować klientów, aby wskazać nowy serwer.

  1. Ponownie wdróż szablon w nowym regionie. Aby zapoznać się z przykładem użycia szablonu usługi ARM do utworzenia usługi Azure Database for PostgreSQL, zobacz Szybki start: tworzenie usługi Azure Database for PostgreSQL — serwer elastyczny przy użyciu szablonu usługi ARM.

Ponowne wdrażanie przy użyciu danych

Ponowne wdrażanie przy użyciu migracji danych dla usługi Azure Database for PostgreSQL jest oparte na logicznej kopii zapasowej i przywracaniu oraz wymaga natywnych narzędzi. W rezultacie można spodziewać się zauważalnego przestoju podczas przywracania.

Napiwek

Za pomocą witryny Azure Portal można przenieść usługę Azure Database for PostgreSQL — serwer elastyczny. Aby dowiedzieć się, jak przeprowadzić replikację dla pojedynczego serwera, zobacz Przenoszenie usługi Azure Database for PostgreSQL — serwer elastyczny do innego regionu przy użyciu witryny Azure Portal.

  1. Dostosuj wyeksportowane parametry szablonu, aby odpowiadały regionowi docelowemu.

Ważne

Nazwa serwera docelowego musi być inna niż nazwa serwera źródłowego. Należy ponownie skonfigurować klientów, aby wskazać nowy serwer.

  1. Ponownie wdróż szablon w nowym regionie. Aby zapoznać się z przykładem użycia szablonu usługi ARM do utworzenia usługi Azure Database for PostgreSQL, zobacz Szybki start: tworzenie usługi Azure Database for PostgreSQL — serwer elastyczny przy użyciu szablonu usługi ARM.

  2. Na zasobie obliczeniowym aprowizowanym na potrzeby migracji zainstaluj narzędzia klienckie PostgreSQL dla wersji postgreSQL, która ma zostać zmigrowana. W poniższym przykładzie użyto bazy danych PostgreSQL w wersji 13 na maszynie wirtualnej platformy Azure z systemem Ubuntu 20.04 LTS:

      sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
      wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
      sudo apt-get update
      sudo apt-get install -y postgresql-client-13
    

    Aby uzyskać więcej informacji na temat instalacji składników PostgreSQL w systemie Ubuntu, zobacz Pliki do pobrania systemu Linux (Ubuntu).

    W przypadku innych platform przejdź do pozycji Pliki do pobrania bazy danych PostgreSQL.

  3. (Opcjonalnie) Jeśli utworzono dodatkowe role na serwerze źródłowym, utwórz je na serwerze docelowym. Aby uzyskać listę istniejących ról, użyj następującego zapytania:

    select *
    from pg_catalog.pg_roles
    where rolename not like 'pg_%' and rolename not in ('azuresu', 'azure_pg_admin', 'replication')
    order by rolename;
    
  4. Aby przeprowadzić migrację każdej bazy danych, wykonaj następujące czynności:

    1. Zatrzymaj wszystkie działania bazy danych na serwerze źródłowym.
    2. Zastąp informacje o poświadczeniach, serwer źródłowy, serwer docelowy i nazwę bazy danych w następującym skrypcie:
        export USER=admin_username
        export PGPASSWORD=admin_password
        export SOURCE=pgsql-arpp-source.postgres.database.azure.com
        export TARGET=pgsql-arpp-target.postgres.database.azure.com
        export DATABASE=database_name
        pg_dump -h $SOURCE -U $USER --create --exclude-schema=pg_catalog $DATABASE | psql -h $TARGET -U $USER postgres
    
    1. Aby przeprowadzić migrację bazy danych, uruchom skrypt.

    2. Skonfiguruj klientów tak, aby wskazywały serwer docelowy.

    3. Wykonywanie testów funkcjonalnych w aplikacjach.

      1. Upewnij się, że flaga ignoreMissingVnetServiceEndpoint jest ustawiona na False, więc nie można wdrożyć bazy danych, gdy punkt końcowy usługi nie jest skonfigurowany w regionie docelowym.