Samouczek: projektowanie usługi Azure Database for PostgreSQL — pojedynczy serwer przy użyciu interfejsu wiersza polecenia platformy Azure

DOTYCZY: Azure Database for PostgreSQL — pojedynczy serwer

Ważne

Usługa Azure Database for PostgreSQL — pojedynczy serwer znajduje się na ścieżce wycofania. Zdecydowanie zalecamy uaktualnienie do usługi Azure Database for PostgreSQL — serwer elastyczny. Aby uzyskać więcej informacji na temat migracji do usługi Azure Database for PostgreSQL — serwer elastyczny, zobacz Co się dzieje z usługą Azure Database for PostgreSQL — pojedynczy serwer?.

W tym samouczku dowiesz się, jak wykonywać następujące czynności, używając interfejsu wiersza polecenia platformy Azure:

  • Tworzenie serwera usługi Azure Database for PostgreSQL
  • Konfigurowanie zapory serwera
  • Użycie narzędzia psql do utworzenia bazy danych
  • Ładowanie danych przykładowych
  • Zapytania o dane
  • Aktualizowanie danych
  • Przywracanie danych

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure.

Wymagania wstępne

Uruchamianie usługi Azure Cloud Shell

Usługa Azure Cloud Shell to bezpłatna interaktywna powłoka, której możesz używać do wykonywania kroków opisanych w tym artykule. Udostępnia ona wstępnie zainstalowane i najczęściej używane narzędzia platformy Azure, które są skonfigurowane do użycia na koncie.

Aby otworzyć usługę Cloud Shell, wybierz pozycję Wypróbuj w prawym górnym rogu bloku kodu. Możesz również uruchomić usługę Cloud Shell w oddzielnej karcie przeglądarki, przechodząc do strony https://shell.azure.com.

Po otwarciu usługi Cloud Shell sprawdź, czy dla danego środowiska wybrano powłokę Bash . Kolejne sesje będą używać interfejsu wiersza polecenia platformy Azure w środowisku powłoki Bash, wybierz pozycję Kopiuj , aby skopiować bloki kodu, wkleić go do usługi Cloud Shell i nacisnąć klawisz Enter , aby go uruchomić.

Logowanie się do platformy Azure

Usługa Cloud Shell jest automatycznie uwierzytelniana na początkowym koncie zalogowanym. Użyj następującego skryptu, aby zalogować się przy użyciu innej subskrypcji, zastępując <Subscription ID> element identyfikatorem subskrypcji platformy Azure. Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure.

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)

Ustawianie wartości parametrów

Następujące wartości są używane w kolejnych poleceniach do tworzenia bazy danych i wymaganych zasobów. Nazwy serwerów muszą być globalnie unikatowe na całej platformie Azure, więc funkcja $RANDOM jest używana do tworzenia nazwy serwera.

Zmień lokalizację zgodnie z potrzebami środowiska. Zastąp 0.0.0.0 ciąg zakresem adresów IP, aby pasować do określonego środowiska. Użyj publicznego adresu IP komputera, którego używasz, aby ograniczyć dostęp do serwera tylko do twojego adresu IP.

# Variable block
let "randomIdentifier=$RANDOM*$RANDOM"
location="East US"
resourceGroup="msdocs-postgresql-rg-$randomIdentifier"
tag="create-postgresql-server-and-firewall-rule"
server="msdocs-postgresql-server-$randomIdentifier"
sku="GP_Gen5_2"
login="azureuser"
password="Pa$$w0rD-$randomIdentifier"
# Specify appropriate IP address values for your environment
# to limit / allow access to the PostgreSQL server
startIp=0.0.0.0
endIp=0.0.0.0
echo "Using resource group $resourceGroup with login: $login, password: $password..."

Tworzenie grupy zasobów

Utwórz grupę zasobów za pomocą polecenia az group create. Grupa zasobów platformy Azure to logiczny kontener przeznaczony do wdrażania zasobów platformy Azure i zarządzania nimi. W poniższym przykładzie pokazano tworzenie grupy zasobów o nazwie myResourceGroup w lokalizacji eastus:

# Create a resource group
echo "Creating $resourceGroup in $location..."
az group create --name $resourceGroup --location "$location" --tags $tag

Tworzenie serwera

Utwórz serwer za pomocą polecenia az postgres server create .

# Create a PostgreSQL server in the resource group
# Name of a server maps to DNS name and is thus required to be globally unique in Azure.
echo "Creating $server in $location..."
az postgres server create --name $server --resource-group $resourceGroup --location "$location" --admin-user $login --admin-password $password --sku-name $sku

Uwaga

  • Nazwa serwera może zawierać tylko małe litery, cyfry i znaki łącznika (-). Musi zawierać od 3 do 63 znaków. Aby uzyskać więcej informacji, zobacz Azure Database for PostgreSQL Naming Rules (Reguły nazewnictwa usługi Azure Database for PostgreSQL).
  • Nazwa użytkownika administratora nie może być azure_superuser, administrator, administrator, główny, gość lub publiczny.
  • Hasło musi zawierać od 8 do 128 znaków z trzech z następujących kategorii: wielkie litery angielskie, małe litery angielskie, cyfry i znaki inne niż alfanumeryczne.
  • Aby uzyskać informacje o jednostkach SKU, zobacz Cennik usługi Azure Database for PostgreSQL.

Ważne

  • Domyślna wersja bazy danych PostgreSQL na serwerze to 9.6. Aby wyświetlić wszystkie obsługiwane wersje, zobacz Obsługiwane wersje główne bazy danych PostgreSQL.
  • Protokół SSL jest domyślnie włączony na serwerze. Aby uzyskać więcej informacji na temat protokołu SSL, zobacz Konfigurowanie łączności SSL.

Konfigurowanie reguły zapory opartej na serwerze

Utwórz regułę zapory za pomocą polecenia az postgres server firewall-rule create , aby zapewnić środowisku lokalnemu dostęp do połączenia z serwerem.

# Configure a firewall rule for the server 
echo "Configuring a firewall rule for $server for the IP address range of $startIp to $endIp"
az postgres server firewall-rule create --resource-group $resourceGroup --server $server --name AllowIps --start-ip-address $startIp --end-ip-address $endIp

Napiwek

Jeśli nie znasz swojego adresu IP, przejdź do WhatIsMyIPAddress.com , aby go uzyskać.

Uwaga

Aby uniknąć problemów z łącznością, upewnij się, że zapora sieci zezwala na port 5432. Serwery usługi Azure Database for PostgreSQL używają tego portu.

Wyświetlanie listy reguł zapory opartej na serwerze

Aby wyświetlić listę istniejących reguł zapory serwera, uruchom polecenie az postgres server firewall-rule list .

# List firewall rules for the server
echo "List of server-based firewall rules for $server"
az postgres server firewall-rule list --resource-group $resourceGroup --server-name $server
# You may use the switch `--output table` for a more readable table format as the output.

Dane wyjściowe zawierają listę reguł zapory, jeśli istnieją, domyślnie w formacie JSON. Możesz użyć przełącznika --output table w celu bardziej czytelnego formatu tabeli jako danych wyjściowych.

Uzyskiwanie informacji o połączeniu

Aby nawiązać połączenie z serwerem, podaj informacje o hoście i poświadczenia dostępu.

az postgres server show --resource-group $resourceGroup --name $server

Zanotuj wartości administratorLogin i fullyQualifiedDomainName .

Połączenie do serwera usługi Azure Database for PostgreSQL przy użyciu narzędzia psql

Klient psql jest popularnym wyborem do nawiązywania połączenia z serwerami PostgreSQL. Połączenie z serwerem można nawiązać za pomocą psql usługi Azure Cloud Shell. Możesz również użyć psql w środowisku lokalnym, jeśli jest on dostępny. Pusta baza danych postgres jest tworzona automatycznie przy użyciu nowego serwera PostgreSQL. Tej bazy danych można użyć do nawiązania połączenia z usługą psql, jak pokazano w poniższym kodzie.

psql --host=<server_name>.postgres.database.azure.com --port=5432 --username=<admin_user>@<server_name> --dbname=postgres

Napiwek

Jeśli wolisz użyć ścieżki adresu URL do nawiązania połączenia z usługą Postgres, zakoduj adres URL zakoduj nazwę użytkownika przy użyciu polecenia %40. Na przykład parametry połączenia dla narzędzia psql to:

psql postgresql://<admin_user>%40<server_name>@<server_name>.postgres.database.azure.com:5432/postgres

Tworzenie pustej bazy danych

  1. Po nawiązaniu połączenia z serwerem utwórz pustą bazę danych za pomocą wiersza polecenia:

    CREATE DATABASE mypgsqldb;
    
  2. W wierszu polecenia wykonaj poniższe polecenie, aby przełączyć połączenie na nowo utworzoną bazę danych mypgsqldb:

    \c mypgsqldb
    

Tworzenie tabel w bazie danych

Teraz, gdy wiesz, jak nawiązać połączenie z usługą Azure Database for PostgreSQL, możesz wykonać niektóre podstawowe zadania:

Najpierw utwórz tabelę i załaduj do niej dane. Na przykład utwórz tabelę służącą do śledzenia informacji o spisie:

CREATE TABLE inventory (
  id serial PRIMARY KEY, 
  name VARCHAR(50), 
  quantity INTEGER
);

Teraz możesz wyświetlić nowo utworzoną tabelę na liście tabel, wpisując:

\dt

Ładowanie danych do tabel

Teraz, po utworzeniu tabeli, wstaw do niej trochę danych. W otwartym oknie wiersza polecenia uruchom następujące zapytanie, aby wstawić wiersze danych:

INSERT INTO inventory (id, name, quantity) VALUES (1, 'banana', 150); 
INSERT INTO inventory (id, name, quantity) VALUES (2, 'orange', 154);

Do utworzonej wcześniej tabeli dodano właśnie dwa wiersze przykładowych danych.

Wykonywanie zapytania względem danych w tabelach i aktualizowanie tych danych

Wykonaj następujące zapytanie, aby pobrać informacje z tabeli ze spisem:

SELECT * FROM inventory;

Możesz także zaktualizować dane w tabeli ze spisem:

UPDATE inventory SET quantity = 200 WHERE name = 'banana';

Po pobraniu danych możesz zobaczyć zaktualizowane wartości:

SELECT * FROM inventory;

Przywracanie bazy danych do określonego punktu w czasie

Załóżmy, że tabela została przypadkowo usunięta. W takiej sytuacji niełatwo jest odzyskać dane. Usługa Azure Database for PostgreSQL umożliwia powrót do dowolnego punktu w czasie, dla którego istnieją kopie zapasowe na serwerze (określa to skonfigurowany okres przechowywania kopii zapasowych), i przywrócenie tego punktu w czasie na nowym serwerze. Przy użyciu tego nowego serwera można odzyskać usunięte dane.

Poniższe polecenie służy do przywrócenia przykładowego serwera do punktu przed dodaniem tabeli:

az postgres server restore --resource-group myresourcegroup --name mydemoserver-restored --restore-point-in-time 2017-04-13T13:59:00Z --source-server mydemoserver

Polecenie az postgres server restore wymaga podania następujących parametrów:

Ustawienie Sugerowana wartość Opis
resource-group  myresourcegroup  Grupa zasobów, w której istnieje serwer źródłowy. 
name mydemoserver-restored Nazwa nowego serwera utworzonego za pomocą polecenie przywracania.
restore-point-in-time 2017-04-13T13:59:00Z Wybierz punkt w czasie, do którego ma zostać przeprowadzone przywrócenie. Ta data i godzina musi przypadać w okresie przechowywania kopii zapasowej serwera źródłowego. Użyj daty i godziny w formacie ISO8601. Na przykład możesz użyć własnej lokalnej strefy czasowej, takiej jak 2017-04-13T05:59:00-08:00, lub użyć formatu UTC Zulu 2017-04-13T13:59:00Z.
source-server mydemoserver Nazwa lub identyfikator serwera źródłowego, z którego ma zostać przeprowadzone przywrócenie.

Przywrócenie serwera do określonego punktu w czasie powoduje utworzenie nowego serwera skopiowanego na podstawie oryginalnego serwera z określonego punktu w czasie. Wartości lokalizacji i warstwy cenowej dla przywróconego serwera są takie same, jak w przypadku serwera źródłowego.

Polecenie jest synchroniczne i zostanie zakończone po przywróceniu serwera. Po zakończeniu przywracania zlokalizuj nowy serwer, który został utworzony. Sprawdź, czy dane zostały przywrócone zgodnie z oczekiwaniami.

Czyszczenie zasobów

Użyj następującego polecenia, aby usunąć grupę zasobów i wszystkie skojarzone z nią zasoby przy użyciu polecenia az group delete — chyba że masz ciągłą potrzebę tych zasobów. Utworzenie niektórych z tych zasobów może trochę potrwać, a także usunięcie.

az group delete --name $resourceGroup

Następne kroki

W tym samouczku omówiono sposób użycia interfejsu wiersza polecenia platformy Azure i innych narzędzi w celu wykonania następujących czynności:

  • Tworzenie serwera usługi Azure Database for PostgreSQL
  • Konfigurowanie zapory serwera
  • Tworzenie bazy danych za pomocą narzędzia psql
  • Ładowanie danych przykładowych
  • Zapytania o dane
  • Aktualizowanie danych
  • Przywracanie danych