Migrace databáze PostgreSQL na server PostgreSQL s podporou služby Azure Arc
Tento dokument popisuje postup získání stávající databáze PostgreSQL (která není hostovaná v datových službách s podporou Azure Arc) do serveru PostgreSQL s podporou Služby Azure Arc.
Poznámka:
Jako funkce ve verzi Preview platí, že technologie uvedená v tomto článku podléhá dodatečným podmínkám použití pro verze Microsoft Azure Preview.
Nejnovější aktualizace jsou k dispozici v poznámkách k verzi.
Důležité informace
Server PostgreSQL s podporou služby Azure Arc je komunitní verze PostgreSQL. Všechny nástroje, které fungují na PostgreSQL mimo Azure Arc, by proto měly fungovat se serverem PostgreSQL s podporou Azure Arc.
Díky sadě nástrojů, které dnes používáte pro Postgres, byste měli být schopni:
- Zálohování databáze Postgres z vaší instance hostované mimo Azure Arc
- Obnovení na serveru PostgreSQL s podporou Služby Azure Arc
Co vám zbývá, je:
- resetování parametrů serveru
- resetování kontextů zabezpečení: opětovné vytvoření uživatelů, rolí a resetování oprávnění...
K provedení této operace zálohování/obnovení můžete použít jakýkoli nástroj, který dokáže provést zálohování nebo obnovení pro Postgres. Příklad:
- Azure Data Studio a jeho rozšíření Postgres
pgcli
pgAdmin
pg_dump
pg_restore
psql
- ...
Příklad
Pojďme si tyto kroky ilustrovat pgAdmin
pomocí nástroje.
Zvažte následující nastavení:
Zdroj:
Server Postgres spuštěný místně na holém serveru s názvem JEANYDSRV. Je verze 14 a hostuje databázi s názvem MyOnPremPostgresDB s jednou tabulkou T1, která má 1 řádek.Cíl:
Server Postgres spuštěný v prostředí Azure Arc s názvem postgres01. Je verze 14. Nemá žádnou databázi s výjimkou standardní databáze Postgres.
Zálohování zdrojové databáze v místním prostředí
Nakonfigurujte ho:
- Pojmenujte ho: MySourceBackup
- Nastavení formátu na Vlastní
Zálohování se úspěšně dokončí:
Vytvoření prázdné databáze v cílovém systému na serveru PostgreSQL s podporou Azure Arc
Poznámka:
Pokud chcete v pgAdmin
nástroji zaregistrovat instanci Postgres, musíte ve svém clusteru Kubernetes použít veřejnou IP adresu vaší instance a odpovídajícím způsobem nastavit kontext portu a zabezpečení. Po spuštění následujícího příkazu najdete tyto podrobnosti na psql
řádku koncového bodu:
az postgres server-arc endpoint list -n postgres01 --k8s-namespace <namespace> --use-k8s
Vrátí výstup podobný následujícímu:
{
"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"
}
Pojmenujme cílovou databázi RESTORED_MyOnPremPostgresDB.
Obnovení databáze v nastavení Arc
Konfigurace obnovení:
Přejděte na soubor, který obsahuje zálohu k obnovení: MySourceBackup
Zachovat formát nastavený na Vlastní nebo tar
Klikněte na Obnovit.
Obnovení proběhlo úspěšně.
Ověřte, že se databáze úspěšně obnovila na serveru PostgreSQL s podporou služby Azure Arc.
Použijte některou z následujících metod:
Od pgAdmin
:
Rozbalte instanci Postgres hostované v nastavení Služby Azure Arc. Zobrazí se tabulka v databázi, kterou jste obnovili, a když vyberete data, zobrazí se stejný řádek jako v místní instanci:
Z psql
nastavení Azure Arc:
V rámci nastavení Arc se můžete připojit psql
k instanci Postgres, nastavit kontext databáze a dotazovat RESTORED_MyOnPremPostgresDB
se na data:
Uveďte
psql
koncové body, které vám pomůžou vytvořit připojovací řetězec: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" }
psql
Z vašeho připojovací řetězec použijte-d
parametr k označení názvu databáze. Pomocí následujícího příkazu se zobrazí výzva k zadání hesla:psql -d RESTORED_MyOnPremPostgresDB -U postgres -h 10.0.0.4 -p 32639
psql
spojuje.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=#
Vyberte tabulku a zobrazí se data, která jste obnovili z místní instance Postgres:
RESTORED_MyOnPremPostgresDB=# select * from t1;
col1 | col2 ------+------------- 1 | BobbyIsADog (1 row)
Poznámka:
- V současnosti není možné "připojit k Azure Arc" existující instanci Postgres, která by běžela místně nebo v jiném cloudu. Jinými slovy, ve stávající instanci Postgres není možné nainstalovat nějaký druh agenta Azure Arc, aby bylo možné nastavit Postgres v Azure Arc. Místo toho musíte vytvořit novou instanci Postgres a přenést do ní data. K tomu můžete použít techniku uvedenou výše nebo můžete použít libovolný nástroj ETL podle vašeho výběru.
*V těchto dokumentech přeskočte části Přihlášení k webu Azure Portal a vytvořte Azure Database for PostgreSQL. Implementujte zbývající kroky v nasazení Azure Arc. Tyto části jsou specifické pro server Azure Database for PostgreSQL nabízený jako služba PaaS v cloudu Azure, ale ostatní části dokumentů se vztahují přímo na váš server PostgreSQL s podporou Služby Azure Arc.