Migrowanie bazy danych PostgreSQL do serwera PostgreSQL z obsługą usługi Azure Arc

W tym dokumencie opisano kroki pobierania istniejącej bazy danych PostgreSQL (takiej, która nie jest hostowana w usługach danych z obsługą usługi Azure Arc) na serwerze PostgreSQL z obsługą usługi Azure Arc.

Uwaga

Jako funkcja w wersji zapoznawczej technologia przedstawiona w tym artykule podlega dodatkowym warunkom użytkowania dla wersji zapoznawczych platformy Microsoft Azure.

Najnowsze aktualizacje są dostępne w informacjach o wersji.

Kwestie wymagające rozważenia

Serwer PostgreSQL z obsługą usługi Azure Arc jest wersją społeczności bazy danych PostgreSQL. Dlatego każde narzędzie, które działa w usłudze PostgreSQL poza usługą Azure Arc, powinno współpracować z serwerem PostgreSQL z obsługą usługi Azure Arc.

W związku z tym, przy użyciu zestawu narzędzi używanych obecnie dla bazy danych Postgres, powinno być możliwe:

  1. Tworzenie kopii zapasowej bazy danych Postgres z wystąpienia hostowanego poza usługą Azure Arc
  2. Przywracanie go na serwerze PostgreSQL z obsługą usługi Azure Arc

To, co pozostanie Ci do zrobienia, to:

  • resetowanie parametrów serwera
  • zresetuj konteksty zabezpieczeń: utwórz ponownie użytkowników, role i resetuj uprawnienia...

Aby wykonać tę operację tworzenia/przywracania kopii zapasowej, możesz użyć dowolnego narzędzia, które może wykonywać kopie zapasowe/przywracanie dla bazy danych Postgres. Przykład:

  • Azure Data Studio i jego rozszerzenie Postgres
  • pgcli
  • pgAdmin
  • pg_dump
  • pg_restore
  • psql
  • ...

Przykład

Zilustrujmy pgAdmin te kroki przy użyciu narzędzia . Rozważ następującą konfigurację:

  • Źródło:
    Serwer Postgres działający lokalnie na serwerze bez systemu operacyjnego i o nazwie JEANYDSRV. Jest to wersja 14 i hostuje bazę danych o nazwie MyOnPremPostgresDB, która ma jedną tabelę T1, która ma 1 wiersz Migrate-source

  • Miejsce docelowe:
    Serwer Postgres działający w środowisku usługi Azure Arc o nazwie postgres01. Jest to wersja 14. Nie ma żadnej bazy danych z wyjątkiem standardowej bazy danych Postgres.
    Migrate-destination

Tworzenie kopii zapasowej źródłowej bazy danych w środowisku lokalnym

Migrate-source-backup

Skonfiguruj go:

  1. Nadaj mu nazwę pliku: MySourceBackup
  2. Ustaw format na NiestandardowyMigrate-source-backup-configure

Tworzenie kopii zapasowej zakończy się pomyślnie:
Migrate-source-backup-completed

Tworzenie pustej bazy danych w systemie docelowym na serwerze PostgreSQL z obsługą usługi Azure Arc

Uwaga

Aby zarejestrować wystąpienie bazy danych Postgres w narzędziu pgAdmin , musisz użyć publicznego adresu IP wystąpienia w klastrze Kubernetes i odpowiednio ustawić port i kontekst zabezpieczeń. Te szczegóły znajdują się w wierszu punktu końcowego po uruchomieniu psql następującego polecenia:

az postgres server-arc endpoint list -n postgres01 --k8s-namespace <namespace> --use-k8s

Spowoduje to zwrócenie danych wyjściowych, takich jak:

{
  "instances": [
    {
      "endpoints": [
    "Description": "PostgreSQL Instance",
    "Endpoint": "postgresql://postgres:<replace with password>@12.345.123.456:1234"
  },
  {
    "Description": "Log Search Dashboard",
    "Endpoint": "https://12.345.123.456:12345/kibana/app/kibana#/discover?_a=(query:(language:kuery,query:'custom_resource_name:\"postgres01\"'))"
  },
  {
    "Description": "Metrics Dashboard",
    "Endpoint": "https://12.345.123.456:12345/grafana/d/postgres-metrics?var-Namespace=arc3&var-Name=postgres01"
  }
],
"engine": "PostgreSql",
"name": "postgres01"
}
  ],
  "namespace": "arc"
}

Nadajmy nazwę docelowej bazie danych RESTORED_MyOnPremPostgresDB.

Migrate-destination-db-create

Przywracanie bazy danych w konfiguracji usługi Arc

Migratre-db-restore

Skonfiguruj przywracanie:

  1. Wskaż plik zawierający kopię zapasową do przywrócenia: MySourceBackup

  2. Zachowaj format ustawiony na niestandardowy lub tarMigrate-db-restore-configure

  3. Kliknij przycisk Przywróć.

    Przywracanie zakończyło się pomyślnie.
    Migrate-db-restore-completed

Sprawdź, czy baza danych została pomyślnie przywrócona na serwerze PostgreSQL z obsługą usługi Azure Arc

Użyj jednej z następujących metod:

Z elementu pgAdmin:

Rozwiń wystąpienie Bazy danych Postgres hostowane w konfiguracji usługi Azure Arc. Tabela zostanie wyświetlona w przywróconej bazie danych, a po wybraniu danych zostanie wyświetlony ten sam wiersz co w wystąpieniu lokalnym:

Migrate-db-restore-verification

Z psql poziomu konfiguracji usługi Azure Arc:

W ramach konfiguracji usługi Arc możesz użyć psql polecenia , aby nawiązać połączenie z wystąpieniem bazy danych Postgres, ustawić kontekst bazy danych na i wykonać RESTORED_MyOnPremPostgresDB zapytanie dotyczące danych:

  1. Podaj listę punktów końcowych, które pomogą Ci psql utworzyć parametry połączenia:

    az postgres server-arc endpoint list -n postgres01 --k8s-namespace <namespace> --use-k8s
    
    {
      "instances": [
        {
          "endpoints": [
        "Description": "PostgreSQL Instance",
        "Endpoint": "postgresql://postgres:<replace with password>@12.345.123.456:1234"
      },
      {
        "Description": "Log Search Dashboard",
        "Endpoint": "https://12.345.123.456:12345/kibana/app/kibana#/discover?_a=(query:(language:kuery,query:'custom_resource_name:\"postgres01\"'))"
      },
      {
        "Description": "Metrics Dashboard",
        "Endpoint": "https://12.345.123.456:12345/grafana/d/postgres-metrics?var-Namespace=arc3&var-Name=postgres01"
      }
    ],
    "engine": "PostgreSql",
    "name": "postgres01"
    }
      ],
      "namespace": "arc"
    }
    
  2. Z parametry połączenia psql użyj parametru , -d aby wskazać nazwę bazy danych. Poniższe polecenie spowoduje wyświetlenie monitu o podanie hasła:

    psql -d RESTORED_MyOnPremPostgresDB -U postgres -h 10.0.0.4 -p 32639
    

    psql Łączy.

    Password for user postgres:
    psql (10.12 (Ubuntu 10.12-0ubuntu0.18.04.1), server 12.3 (Debian 12.3-1.pgdg100+1))
    WARNING: psql major version 10, server major version 12.
          Some psql features might not work.
    SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
    Type "help" for help.
    
    RESTORED_MyOnPremPostgresDB=#   
    
  3. Wybierz tabelę i zobaczysz dane przywrócone z lokalnego wystąpienia bazy danych Postgres:

    RESTORED_MyOnPremPostgresDB=# select * from t1;
    
     col1 |    col2
    ------+-------------
        1 | BobbyIsADog
    (1 row)
    

Uwaga

  • Obecnie nie można "dołączyć do usługi Azure Arc" istniejącego wystąpienia bazy danych Postgres działającego lokalnie lub w innej chmurze. Innymi słowy, nie można zainstalować pewnego rodzaju "agenta usługi Azure Arc" w istniejącym wystąpieniu bazy danych Postgres, aby konfiguracja bazy danych Postgres była włączona przez usługę Azure Arc. Zamiast tego należy utworzyć nowe wystąpienie bazy danych Postgres i przesłać do niego dane. Możesz użyć powyższej techniki, aby to zrobić lub użyć dowolnego wybranego narzędzia ETL.

*W tych dokumentach pomiń sekcje Zaloguj się do witryny Azure Portal i Utwórz usługę Azure Database for PostgreSQL. Zaimplementuj pozostałe kroki we wdrożeniu usługi Azure Arc. Te sekcje są specyficzne dla serwera usługi Azure Database for PostgreSQL oferowanego jako usługa PaaS w chmurze platformy Azure, ale pozostałe części dokumentów mają bezpośrednie zastosowanie do serwera PostgreSQL z obsługą usługi Azure Arc.