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:

  1. Zálohování databáze Postgres z vaší instance hostované mimo Azure Arc
  2. 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. Migrate-source

  • 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.
    Migrate-destination

Zálohování zdrojové databáze v místním prostředí

Migrate-source-backup

Nakonfigurujte ho:

  1. Pojmenujte ho: MySourceBackup
  2. Nastavení formátu na VlastníMigrate-source-backup-configure

Zálohování se úspěšně dokončí:
Migrate-source-backup-completed

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.

Migrate-destination-db-create

Obnovení databáze v nastavení Arc

Migratre-db-restore

Konfigurace obnovení:

  1. Přejděte na soubor, který obsahuje zálohu k obnovení: MySourceBackup

  2. Zachovat formát nastavený na Vlastní nebo tarMigrate-db-restore-configure

  3. Klikněte na Obnovit.

    Obnovení proběhlo úspěšně.
    Migrate-db-restore-completed

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:

Migrate-db-restore-verification

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:

  1. 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"
    }
    
  2. 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 Připojí.

    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. 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.