Tutorial: Entwerfen einer Azure Database for PostgreSQL – Einzelserver unter Verwendung der Azure-Befehlszeilenschnittstelle

GILT FÜR: Azure Database for PostgreSQL – Single Server

Wichtig

Azure Database for PostgreSQL – Single Server wird eingestellt. Es wird dringend empfohlen, ein Upgrade auf Azure Database for PostgreSQL – Flexible Server auszuführen. Weitere Informationen zum Migrieren zu Azure Database for PostgreSQL – Flexible Server finden Sie unter Was geschieht mit Azure Database for PostgreSQL – Single Server?.

In diesem Tutorial verwenden Sie die Azure CLI (Befehlszeilenschnittstelle) und andere Hilfsprogramme, um zu lernen, wie Sie Folgendes ausführen:

  • Erstellen einer Azure-Datenbank für PostgreSQL-Server
  • Konfigurieren der Serverfirewall
  • Erstellen einer Datenbank mit dem Hilfsprogramm psql
  • Laden von Beispieldaten
  • Daten abfragen
  • Aktualisieren von Daten
  • Wiederherstellen von Daten

Wenn Sie kein Azure-Abonnement haben, erstellen Sie ein kostenloses Azure-Konto, bevor Sie beginnen.

Voraussetzungen

  • Verwenden Sie die Bash-Umgebung in Azure Cloud Shell. Weitere Informationen finden Sie unter Schnellstart für Bash in Azure Cloud Shell.

  • Wenn Sie CLI-Referenzbefehle lieber lokal ausführen, installieren Sie die Azure CLI. Wenn Sie Windows oder macOS ausführen, sollten Sie die Azure CLI in einem Docker-Container ausführen. Weitere Informationen finden Sie unter Ausführen der Azure CLI in einem Docker-Container.

    • Wenn Sie eine lokale Installation verwenden, melden Sie sich mithilfe des Befehls az login bei der Azure CLI an. Führen Sie die in Ihrem Terminal angezeigten Schritte aus, um den Authentifizierungsprozess abzuschließen. Informationen zu anderen Anmeldeoptionen finden Sie unter Anmelden mit der Azure CLI.

    • Installieren Sie die Azure CLI-Erweiterung beim ersten Einsatz, wenn Sie dazu aufgefordert werden. Weitere Informationen zu Erweiterungen finden Sie unter Verwenden von Erweiterungen mit der Azure CLI.

    • Führen Sie az version aus, um die installierte Version und die abhängigen Bibliotheken zu ermitteln. Führen Sie az upgrade aus, um das Upgrade auf die aktuelle Version durchzuführen.

Starten von Azure Cloud Shell

Azure Cloud Shell ist eine kostenlose interaktive Shell, mit der Sie die Schritte in diesem Artikel durchführen können. Sie verfügt über allgemeine vorinstallierte Tools und ist für die Verwendung mit Ihrem Konto konfiguriert.

Wählen Sie zum Öffnen von Cloud Shell oben rechts in einem Codeblock einfach die Option Ausprobieren. Sie können Cloud Shell auch auf einem separaten Browsertab starten, indem Sie zu https://shell.azure.com navigieren.

Überprüfen Sie nach dem Öffnen von Cloud Shell, ob Bash für Ihre Umgebung ausgewählt ist. In den folgenden Sitzungen wird die Azure CLI in einer Bash-Umgebung verwendet. Wählen Sie Kopieren aus, um die Codeblöcke zu kopieren. Fügen Sie sie in Cloud Shell ein, und drücken Sie die EINGABETASTE, um sie auszuführen.

Anmelden bei Azure

Cloud Shell wird automatisch unter dem Konto authentifiziert, mit dem die Anmeldung anfänglich erfolgt ist. Verwenden Sie das folgende Skript, um sich mit einem anderen Abonnement anzumelden, und ersetzen Sie <Subscription ID> durch Ihre Azure-Abonnement-ID. Wenn Sie kein Azure-Abonnement haben, erstellen Sie ein kostenloses Azure-Konto, bevor Sie beginnen.

subscription="<subscriptionId>" # add subscription here

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

Weitere Informationen finden Sie unter Festlegen des aktiven Abonnements oder unter Interaktives Anmelden.

Festlegen von Parameterwerten

Mit den folgenden Werten werden in nachfolgenden Befehlen die Datenbank und die erforderlichen Ressourcen erstellt. Servernamen müssen innerhalb von Azure global eindeutig sein, damit die Funktion „$RANDOM“ zum Erstellen des Servernamens verwendet werden kann.

Ändern Sie den Standort entsprechend Ihrer Umgebung. Ersetzen Sie 0.0.0.0 durch den IP-Adressbereich, der Ihrer spezifischen Umgebung entspricht. Verwenden Sie die öffentliche IP-Adresse Ihres Computers, um den Zugriff auf den Server nur auf Ihre IP-Adresse zu beschränken.

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

Erstellen einer Ressourcengruppe

Erstellen Sie mithilfe des Befehls az group create eine Ressourcengruppe. Eine Azure-Ressourcengruppe ist ein logischer Container, in dem Azure-Ressourcen bereitgestellt und verwaltet werden. Im folgenden Beispiel wird eine Ressourcengruppe mit dem Namen myResourceGroup am Standort eastus erstellt:

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

Erstellen eines Servers

Erstellen Sie mit dem Befehl az postgresql server create einen Server.

# 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

Hinweis

  • Der Servername darf nur Kleinbuchstaben, Zahlen und den Bindestrich (-) enthalten. Er muss zwischen 3 und 63 Zeichen aufweisen. Weitere Informationen finden Sie unter Benennungsregeln und -einschränkungen für Azure-Ressourcen.
  • Der Benutzername des Administrators darf nicht azure_superuser, admin, administrator, root, guest oder public lauten.
  • Das Kennwort muss zwischen 8 und 128 Zeichen aus drei der folgenden Kategorien enthalten: englische Großbuchstaben, englische Kleinbuchstaben, Zahlen und nicht alphanumerische Zeichen.
  • Informationen zu SKUs finden Sie unter Azure Database for PostgreSQL – Preise.

Wichtig

Konfigurieren einer serverbasierten Firewallregel

Erstellen Sie eine Firewallregel mit dem Befehl az postgres server firewall-rule create, damit Ihre lokale Umgebung Zugriff zum Herstellen einer Verbindung mit dem Server erhält.

# 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

Tipp

Wenn Sie Ihre IP-Adresse nicht kennen, rufen Sie sie unter WhatIsMyIPAddress.com ab.

Hinweis

Stellen Sie sicher, dass die Firewall des Netzwerks Port 5432 zulässt, um Konnektivitätsprobleme zu vermeiden. Azure Database for PostgreSQL-Server nutzen diesen Port.

Auflisten serverbasierter Firewallregeln

Führen Sie zum Auflisten der vorhandenen Serverfirewallregeln den az postgres server firewall-rule list-Befehl aus.

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

Die Ausgabe listet die Firewallregeln (sofern vorhanden) standardmäßig im JSON-Format auf. Sie können mit dem Switch --output table ein besser lesbares Tabellenformat als die Ausgabe erzeugen.

Abrufen der Verbindungsinformationen

Geben Sie zum Herstellen einer Verbindung mit dem Server Hostinformationen und Anmeldeinformationen für den Zugriff an.

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

Notieren Sie sich die Werte für administratorLogin und fullyQualifiedDomainName.

Herstellen einer Verbindung mit dem Azure Database for PostgreSQL-Server mithilfe von psql

Der psql-Client wird häufig zum Herstellen einer Verbindung mit PostgreSQL-Servern verwendet. Sie können mithilfe von psql und Azure Cloud Shell eine Verbindung mit Ihrem Server herstellen. Sie können auch psql in Ihrer lokalen Umgebung verwenden, sofern verfügbar. Mit einem neuen PostgreSQL-Server wird automatisch eine leere Datenbank (postgres) erstellt. Sie können diese Datenbank verwenden, um eine Verbindung mit psql herzustellen, wie im folgenden Code gezeigt.

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

Tipp

Wenn Sie lieber einen URL-Pfad zum Herstellen einer Verbindung mit Postgres verwenden, codiert die URL das @-Zeichen im Benutzernamen mit %40. Die Verbindungszeichenfolge für psql sieht beispielsweise so aus:

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

Leere Datenbank erstellen

  1. Sobald Sie mit dem Server verbunden sind, erstellen Sie an der Eingabeaufforderung eine leere Datenbank:

    CREATE DATABASE mypgsqldb;
    
  2. Führen Sie an der Eingabeaufforderung den folgenden Befehl zum Wechseln der Verbindung zur neu erstellten Datenbank mypgsqldb aus:

    \c mypgsqldb
    

Erstellen von Tabellen in der Datenbank

Da Sie nun wissen, wie Sie eine Verbindung mit Azure Database for PostgreSQL herstellen, können Sie einige grundlegende Aufgaben ausführen:

Zunächst erstellen Sie eine Tabelle und füllen sie mit einigen Daten auf. Erstellen Sie beispielsweise eine Tabelle, die Bestandsinformationen nachverfolgt:

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

Um die neu erstellte Tabelle in der Liste der Tabellen anzuzeigen, geben Sie Folgendes ein:

\dt

Laden von Daten in die Tabelle

Die Tabelle ist jetzt erstellt. Fügen Sie einige Daten ein. Führen Sie im geöffneten Eingabeaufforderungsfenster die folgende Abfrage zum Einfügen einiger Datenzeilen aus:

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

Die Tabelle, die Sie zuvor erstellt haben, enthält nun zwei hinzugefügte Zeilen mit Beispieldaten.

Abfragen und Aktualisieren der Daten in den Tabellen

Führen Sie die folgende Abfrage aus, um Informationen aus der Bestandstabelle abzurufen:

SELECT * FROM inventory;

Sie können die Daten in der Bestandstabelle auch aktualisieren:

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

Die aktualisierten Werte werden angezeigt, wenn Sie die Daten abrufen:

SELECT * FROM inventory;

Wiederherstellen eines früheren Zustands einer Datenbank

Stellen Sie sich vor, Sie haben versehentlich eine Tabelle gelöscht. Dies ist eine Situation, in der Sie die Datenbank nicht einfach wiederherstellen können. Mit Azure Database for PostgreSQL können Sie eine beliebige Zeitpunktsicherung Ihres Servers (abhängig vom konfigurierten Aufbewahrungszeitraum für Sicherungen) auf einem neuen Server wiederherstellen. Sie können diesen neuen Server zur Wiederherstellung gelöschter Daten verwenden.

Der folgende Befehl stellt den Beispielserver zu einem Zeitpunkt wieder her, der vor dem Hinzufügen der Tabelle liegt:

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

Für den Befehl az postgres server restore sind folgende Parameter erforderlich:

Einstellung Vorgeschlagener Wert Beschreibung
resource-group  myresourcegroup  Die Ressourcengruppe, in der sich der Quellserver befindet. 
name mydemoserver-restored Der Name des neuen Servers, der durch den Befehl „restore“ erstellt wird.
restore-point-in-time 2017-04-13T13:59:00Z Wählen Sie einen Zeitpunkt für die Wiederherstellung aus. Datum und Zeit müssen innerhalb des Aufbewahrungszeitraums für Sicherungen des Quellservers liegen. Verwenden Sie das Datums- und Zeitformat nach ISO 8601. Beispielsweise können Sie Ihre eigene lokale Zeitzone wie etwa 2017-04-13T05:59:00-08:00 oder das UTC-Format Zulu 2017-04-13T13:59:00Z verwenden.
source-server mydemoserver Der Name oder die ID des Quellservers, über den die Wiederherstellung durchgeführt wird.

Bei der Wiederherstellung eines Servers zu einem früheren Zeitpunkt wird ein neuer Server erstellt. Dabei wird der ursprüngliche Server zu dem von Ihnen festgelegten Zeitpunkt kopiert. Die Werte zum Standort und Tarif des wiederhergestellten Servers sind mit denen des Quellservers identisch.

Der Befehl ist synchron und gibt nach der Wiederherstellung des Servers Daten zurück. Sobald die Wiederherstellung abgeschlossen ist, suchen Sie nach dem neuen Server, der erstellt wurde. Stellen Sie sicher, dass die Daten wie erwartet wiederhergestellt wurden.

Bereinigen von Ressourcen

Verwenden Sie den folgenden Befehl, um die Ressourcengruppe und alle zugehörigen Ressourcen mit dem Befehl az group delete zu entfernen, es sei denn, Sie benötigen diese Ressourcen weiterhin. Bei einigen dieser Ressourcen kann das Erstellen wie auch das Löschen eine Weile dauern.

az group delete --name $resourceGroup

Nächste Schritte

In diesem Tutorial haben Sie die Verwendung der Azure CLI (Befehlszeilenschnittstelle) und anderer Hilfsprogramme zu folgenden Zwecken gelernt:

  • Erstellen einer Azure-Datenbank für PostgreSQL-Server
  • Konfigurieren der Serverfirewall
  • Erstellen einer Datenbank mit dem Hilfsprogramm psql
  • Laden von Beispieldaten
  • Daten abfragen
  • Aktualisieren von Daten
  • Wiederherstellen von Daten