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.
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:
- Tworzenie kopii zapasowej bazy danych Postgres z wystąpienia hostowanego poza usługą Azure Arc
- 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. Na 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 wierszMiejsce 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.
Tworzenie kopii zapasowej źródłowej bazy danych w środowisku lokalnym
Skonfiguruj go:
- Nadaj mu nazwę pliku: MySourceBackup
- Ustaw format na Niestandardowy
Tworzenie kopii zapasowej zakończy się pomyślnie:
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.
Przywracanie bazy danych w konfiguracji usługi Arc
Skonfiguruj przywracanie:
Wskaż plik zawierający kopię zapasową do przywrócenia: MySourceBackup
Zachowaj format ustawiony na niestandardowy lub tar
Kliknij przycisk Przywróć.
Przywracanie zakończyło się pomyślnie.
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:
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:
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" }
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=#
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.