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
Użyj środowiska powłoki Bash w usłudze Azure Cloud Shell. Aby uzyskać więcej informacji, zobacz Szybki start dotyczący powłoki Bash w usłudze Azure Cloud Shell.
Jeśli wolisz uruchamiać polecenia referencyjne interfejsu wiersza polecenia lokalnie, zainstaluj interfejs wiersza polecenia platformy Azure. Jeśli korzystasz z systemu Windows lub macOS, rozważ uruchomienie interfejsu wiersza polecenia platformy Azure w kontenerze Docker. Aby uzyskać więcej informacji, zobacz Jak uruchomić interfejs wiersza polecenia platformy Azure w kontenerze platformy Docker.
Jeśli korzystasz z instalacji lokalnej, zaloguj się do interfejsu wiersza polecenia platformy Azure za pomocą polecenia az login. Aby ukończyć proces uwierzytelniania, wykonaj kroki wyświetlane w terminalu. Aby uzyskać inne opcje logowania, zobacz Logowanie się przy użyciu interfejsu wiersza polecenia platformy Azure.
Po wyświetleniu monitu zainstaluj rozszerzenie interfejsu wiersza polecenia platformy Azure podczas pierwszego użycia. Aby uzyskać więcej informacji na temat rozszerzeń, zobacz Korzystanie z rozszerzeń w interfejsie wiersza polecenia platformy Azure.
Uruchom polecenie az version, aby znaleźć zainstalowane wersje i biblioteki zależne. Aby uaktualnić do najnowszej wersji, uruchom polecenie az upgrade.
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ąć 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 .
Nawiązywanie połączenia z serwerem 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
Po nawiązaniu połączenia z serwerem utwórz pustą bazę danych za pomocą wiersza polecenia:
CREATE DATABASE mypgsqldb;
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