Udostępnij przez


Szybki start: tworzenie elastycznego serwera usługi Azure Database for PostgreSQL

Azure Database for PostgreSQL to usługa zarządzana, której można używać do uruchamiania baz danych PostgreSQL o wysokiej dostępności i zarządzania nimi w chmurze.

W tym przewodniku Szybki start pokazano, jak utworzyć wystąpienie serwera elastycznego usługi Azure Database for PostgreSQL przy użyciu witryny Azure Portal, interfejsu wiersza polecenia platformy Azure lub szablonów usługi Azure Resource Manager (ARM).

Wymagania wstępne

Przed rozpoczęciem upewnij się, że masz następujące elementy:

  • Subskrypcja platformy Azure. Jeśli go nie masz, utwórz bezpłatne konto platformy Azure.
  • Odpowiednie uprawnienia do tworzenia zasobów w ramach subskrypcji.

Zrozum, co tworzysz

Instancja serwera elastycznego usługi Azure Database for PostgreSQL obejmuje:

Uwaga / Notatka

Połączenia zwykle używają portu 5432 lub portu 6432, jeśli łączy się za pośrednictwem wbudowanego modułu puli połączeń PgBouncer .

Tworzenie serwera przy użyciu witryny Azure Portal

  1. Zaloguj się do witryny Azure Portal.
  2. Wybierz pozycję Utwórz zasób w lewym górnym rogu.
  3. W obszarze Kategorie wybierz pozycję Bazy danych.
  4. Znajdź i wybierz serwer elastyczny usługi Azure Database for PostgreSQL.
  5. Wybierz Utwórz.

Konfigurowanie ustawień podstawowych

Szczegóły projektu

Setting Sugerowana wartość Notatki
Subscription Twoja subskrypcja Wybieranie miejsca, w którym ma być rozliczany zasób
Grupa zasobów myresourcegroup Utwórz nową lub wybierz istniejącą

Szczegóły serwera

Setting Sugerowana wartość Description
Nazwa serwera mydemoserver-pgsql Musi ona być unikatowa w skali globalnej. Domena .postgres.database.azure.com jest dodawana automatycznie
Region Region najbliżej Ciebie Rozważ zgodność, miejsce przechowywania danych, ceny i bliskość użytkowników
Wersja bazy danych PostgreSQL Najnowsza dostępna Obecnie obsługiwane: 18, 17, 16, 15, 14, 13, 12, 11
Typ obciążenia Rozwój Rozwój wykorzystuje jednostki SKU z możliwością wzrostu. Środowisko produkcyjne używa konfiguracji General Purpose lub Memory Optimized.
Strefa dostępności Brak preferencji Przydatne do umieszczenia razem z aplikacją

Wysoka dostępność

Option SLA Description
Disabled 99,9% Pojedynczy serwer bez wstrzymania
Ta sama strefa 99.95% Wstrzymanie w tej samej strefie dostępności
Strefowo nadmiarowy 99,99% Wstrzymanie w innej strefie dostępności

Authentication

Setting Description Zalecane
Metoda uwierzytelniania Jak użytkownicy uwierzytelniają się - Tylko uwierzytelnianie PostgreSQL (na potrzeby przewodnika 'Szybki start')
- Uwierzytelnianie firmy Microsoft Entra (dla środowiska produkcyjnego)
- Oba (w celu zapewnienia elastyczności)
Nazwa użytkownika administratora adminuser - Musi mieć od 1 do 63 znaków
- Tylko cyfry i litery
- Nie można rozpocząć od pg_
- Nie można używać nazw zarezerwowanych przez system
Hasło Złożone hasło 8–128 znaków z wielkimi literami, małymi literami, cyframi i znakami specjalnymi

Konfigurowanie zasobów obliczeniowych i magazynu

Wybierz pozycję Konfiguruj serwer , aby dostosować:

Warstwa obliczeniowa

Warstwa Przypadek użycia Description
Możliwość serii Rozwój W przypadku obciążeń, które nie wymagają ciągłego pełnego wykorzystania CPU
Ogólne przeznaczenie Produkcja Najczęstsze obciążenia produkcyjne
Zoptymalizowane pod kątem pamięci Obciążenia o dużej ilości pamięci Obciążenia wymagające dużego stosunku pamięci do procesora

Ustawienia pamięci

Setting Może zmienić się później Description
Typ magazynu ❌ Nie SSD Premium lub SSD Premium v2
Rozmiar magazynu ✅ Tak (zwiększ tylko) Nie można zmniejszyć po utworzeniu
Poziom wydajności ✅ Tak Steruje operacjami we/wy na sekundę i przepływnością
Automatyczny przyrost pamięci masowej ✅ Tak Autoekspansja przy zbliżeniu się do limitów

Ustawienia kopii zapasowej

Setting Może zmienić się później Description
Przechowywanie kopii zapasowych ✅ Tak 7–35 dni
Redundancja kopii zapasowych ❌ Nie Lokalnie nadmiarowy, strefowo nadmiarowy lub geograficznie nadmiarowy
Nadmiarowość geograficzna ❌ Nie Dostępne tylko w sparowanych regionach platformy Azure

Konfigurowanie sieci

Wybierz metodę łączności (nie można jej zmienić po utworzeniu):

Dostęp publiczny (dozwolone adresy IP)

Nawiąż połączenie przez publiczny punkt końcowy, używając reguł zapory.

Ustawienia:

Setting Description
Zezwalaj na dostęp publiczny Włączanie dostępu publicznego w celu skonfigurowania reguł zapory
Zezwalaj na usługi platformy Azure Zezwalaj na połączenia ze wszystkich usług platformy Azure
Dodawanie bieżącego adresu IP klienta Dodaj swój adres IP do listy dozwolonych

Dostęp prywatny (integracja z siecią wirtualną)

Nawiąż połączenie za pośrednictwem prywatnego punktu końcowego w sieci wirtualnej. Aby uzyskać więcej informacji, zobacz Network with private access for Azure Database for PostgreSQL (Sieć z dostępem prywatnym dla usługi Azure Database for PostgreSQL).

Konfigurowanie zabezpieczeń

Setting Może zmienić się później Opcje
Klucz szyfrowania danych ❌ Nie Zarządzanie przez usługę lub zarządzanie przez klienta

Dodawanie tagów zasobów (opcjonalnie)

Organizowanie zasobów przy użyciu par name-value:

Name Wartość Przeznaczenie
Środowisko Rozwój Identyfikowanie typu środowiska
CostCenter IT-Dept Śledzenie kosztów według działu
Właściciel admin@contoso.com Identyfikowanie odpowiedzialnej strony

Przejrzyj i twórz

  1. Wybierz opcję Recenzja i utwórz.
  2. Przejrzyj wszystkie konfiguracje.
  3. Wybierz pozycję Utwórz , aby wdrożyć.

Wdrożenie zwykle trwa od 5 do 10 minut. Po zakończeniu wybierz pozycję Przejdź do zasobu , aby uzyskać dostęp do serwera.

Tworzenie serwera przy użyciu interfejsu wiersza polecenia platformy Azure

Wymagania wstępne dotyczące CLI

W przypadku tego skryptu użyj interfejsu wiersza polecenia platformy Azure lokalnie, ponieważ uruchamianie w usłudze Cloud Shell trwa zbyt długo.

Zaloguj się do Azure

Użyj poniższego skryptu, aby zalogować się przy użyciu określonej subskrypcji.

subscription="<subscriptionId>" # add subscription here

az account set -s $subscription # ...or use 'az login'

Aby uzyskać więcej informacji, zobacz set active subscription or log in interactively (Ustawianie aktywnej subskrypcji lub logowanie się interaktywnie)

Jeśli używasz w Azure Cloud Shell, jesteś już zalogowany.

Tworzenie serwera za pomocą interfejsu wiersza polecenia

Utwórz serwer za pomocą jednego polecenia:

az postgres flexible-server create \
  --resource-group myresourcegroup \
  --name mydemoserver-pgsql \
  --location eastus \
  --admin-user myadmin \
  --admin-password <password> \
  --sku-name Standard_D4ds_v5 \
  --tier GeneralPurpose \
  --public-access 0.0.0.0 \
  --storage-size 128 \
  --tags "Environment=Development"

Odniesienie do parametrów CLI

Parameter Description Example
--resource-group Nazwa grupy zasobów myresourcegroup
--name Globalnie unikatowa nazwa serwera mydemoserver-pgsql
--location region świadczenia platformy Azure eastus
--admin-user Nazwa użytkownika administratora myadmin
--admin-password Hasło administratora TwójPassword123!
--sku-name Jednostka SKU obliczeniowa Standard_D4ds_v5
--tier Warstwa obliczeniowa Burstowalne, Ogólnego Przeznaczenia, Optymalizowane pod kątem pamięci
--storage-size Magazyn w GB 128
--public-access Dozwolone adresy IP 0.0.0.0 (wszystkie usługi platformy Azure), adres IP lub zakres adresów IP
--version Wersja PostgreSQL 16
--high-availability Tryb HA (wysokiej dostępności) Wyłączony, Ta Sama Strefa, Zredukowane Strefy
--backup-retention Dni przechowywania kopii zapasowych 7-35

Zaawansowany przykład CLI

Utwórz strefowo redundantny serwer o wysokiej dostępności.

az postgres flexible-server create \
  --resource-group myresourcegroup \
  --name mydemoserver-pgsql-ha \
  --location eastus \
  --admin-user myadmin \
  --admin-password <password> \
  --sku-name Standard_D4ds_v5 \
  --tier GeneralPurpose \
  --storage-size 256 \
  --storage-type PremiumV2_LRS \
  --high-availability ZoneRedundant \
  --zone 1 \
  --standby-zone 2 \
  --backup-retention 14 \
  --public-access 0.0.0.0

Tworzenie serwera przy użyciu szablonu usługi ARM

Omówienie szablonu ARM

Szablony usługi Azure Resource Manager (ARM) umożliwiają definiowanie infrastruktury jako kodu. Użyj szablonów do powtarzalnych wdrożeń.

Minimalny szablon ARM

Zapisz ten plik jako postgres-server-template.json:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "serverName": {
      "type": "string",
      "metadata": {
        "description": "Server name must be globally unique"
      }
    },
    "administratorLogin": {
      "type": "string",
      "minLength": 1,
      "maxLength": 63,
      "metadata": {
        "description": "Administrator username"
      }
    },
    "administratorLoginPassword": {
      "type": "securestring",
      "minLength": 8,
      "metadata": {
        "description": "Administrator password"
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Server location"
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.DBforPostgreSQL/flexibleServers",
      "apiVersion": "2024-08-01",
      "name": "[parameters('serverName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "Standard_D4ds_v5",
        "tier": "GeneralPurpose"
      },
      "properties": {
        "administratorLogin": "[parameters('administratorLogin')]",
        "administratorLoginPassword": "[parameters('administratorLoginPassword')]",
        "version": "16",
        "storage": {
          "storageSizeGB": 128,
          "type": "Premium_LRS",
          "autoGrow": "Enabled"
        },
        "backup": {
          "backupRetentionDays": 7,
          "geoRedundantBackup": "Disabled"
        },
        "network": {
          "publicNetworkAccess": "Enabled"
        },
        "highAvailability": {
          "mode": "Disabled"
        }
      }
    }
  ],
  "outputs": {
    "serverFQDN": {
      "type": "string",
      "value": "[reference(parameters('serverName')).fullyQualifiedDomainName]"
    }
  }
}

Wdróż szablon ARM

az group create --name myresourcegroup --location eastus

az deployment group create \
  --resource-group myresourcegroup \
  --template-file postgres-server-template.json \
  --parameters \
    serverName=mydemoserver-pgsql \
    administratorLogin=myadmin \
    administratorLoginPassword=<password>

Uzyskaj informacje o połączeniu

Po utworzeniu serwera pobierz szczegóły połączenia:

Korzystanie z witryny Azure Portal

  1. Przejdź do serwera w witrynie Azure Portal.
  2. Otwórz stronę Przegląd.
  3. Skopiuj następujące wartości:
    • Nazwa serwera (punkt końcowy): mydemoserver-pgsql.postgres.database.azure.com
    • Logowanie administratora: myadmin

Korzystanie z Azure CLI

az postgres flexible-server show \
  --resource-group myresourcegroup \
  --name mydemoserver-pgsql \
  --query "{serverName:fullyQualifiedDomainName, adminUser:administratorLogin}" \
  --output table

Nawiązywanie połączenia przy użyciu narzędzia psql

Instalowanie narzędzia psql

Jeśli nie masz narzędzi klienckich postgreSQL, pobierz program PostgreSQL dla swojej platformy.

Nawiązywanie połączenia z serwerem

psql "host=mydemoserver-pgsql.postgres.database.azure.com port=5432 dbname=postgres user=myadmin sslmode=require"

Po wyświetleniu monitu wprowadź hasło administratora ustawione podczas tworzenia serwera.

Format ciągu połączenia

host=<server-name>.postgres.database.azure.com port=5432 dbname=<database-name> user=<admin-user> password=<password> sslmode=require

Weryfikowanie połączenia

Po nawiązaniu połączenia powinny zostać wyświetlone następujące elementy:

psql (14.13, server 16.4)
WARNING: psql major version 14, server major version 16.
         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.

postgres=>

Tworzenie bazy danych

CREATE DATABASE user_database;
\c user_database
\q

Rozwiązywanie problemów z połączeniem

Zapora blokuje połączenie

Jeśli widzisz następujące informacje:

connection to server at "mydemoserver-pgsql.postgres.database.azure.com" (###.###.###.###), port 5432 failed: Connection timed out

Rozwiązanie: Dodaj swój adres IP do reguł zapory:

az postgres flexible-server firewall-rule create \
  --resource-group myresourcegroup \
  --name mydemoserver-pgsql \
  --rule-name AllowMyIP \
  --start-ip-address <your-ip> \
  --end-ip-address <your-ip>

Wymagany protokół SSL, ale nieskonfigurowane

Upewnij się, że ciąg połączenia zawiera sslmode=require.

Uprzątnij zasoby

Po zakończeniu pracy z przewodnikiem Szybki start usuń zasoby, aby uniknąć naliczania opłat.

Usuwanie całej grupy zasobów

az group delete --name myresourcegroup --yes

Usuwanie tylko serwera

az postgres flexible-server delete \
  --resource-group myresourcegroup \
  --name mydemoserver-pgsql \
  --yes