Share via


Esercitazione: Progettare un Database di Azure per PostgreSQL - Server singolo usando l'interfaccia della riga di comando di Azure

SI APPLICA A: Database di Azure per PostgreSQL - Server singolo

Importante

Database di Azure per PostgreSQL - Server singolo si trova nel percorso di ritiro. È consigliabile eseguire l'aggiornamento a Database di Azure per PostgreSQL - Server flessibile. Per altre informazioni sulla migrazione a Database di Azure per PostgreSQL - Server flessibile, vedere What's happening to Database di Azure per PostgreSQL Single Server?.

In questa esercitazione, si usano l'interfaccia della riga di comando di Azure e altre utilità per informazioni su come:

  • Creare un server di Database di Azure per PostgreSQL
  • Configurare il firewall del server
  • Usare l'utilità psql per creare un database
  • Caricare dati di esempio
  • Eseguire query sui dati
  • Aggiornamento dei dati
  • Ripristinare i dati

Se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare.

Prerequisiti

Avviare Azure Cloud Shell

Azure Cloud Shell è una shell interattiva gratuita che può essere usata per eseguire la procedura di questo articolo. Include strumenti comuni di Azure preinstallati e configurati per l'uso con l'account.

Per aprire Cloud Shell, basta selezionare Prova nell'angolo superiore destro di un blocco di codice. È anche possibile avviare Cloud Shell in una scheda separata del browser visitando https://shell.azure.com.

Quando si apre Cloud Shell, verificare che sia selezionato Bash per l'ambiente. Le sessioni successive useranno l'interfaccia della riga di comando di Azure in un ambiente Bash. Selezionare Copia per copiare i blocchi di codice, incollarli in Cloud Shell e premere Invio per eseguirli.

Accedere ad Azure

Cloud Shell viene autenticato automaticamente con l'account iniziale con cui è stato eseguito l'accesso. Usare lo script seguente per accedere usando una sottoscrizione diversa, sostituendo <Subscription ID> con l'ID sottoscrizione di Azure. Se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare.

subscription="<subscriptionId>" # add subscription here

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

Per maggiori informazioni, vedere Impostare una sottoscrizione attiva o Accedere in modo interattivo

Impostare i valori di parametro

I valori seguenti vengono usati nei comandi successivi per creare il database e le risorse necessarie. I nomi dei server devono essere univoci a livello globale in tutto Azure, quindi per creare il nome del server viene usata la funzione $RANDOM.

Modificare la posizione in base alle esigenze specifiche dell'ambiente. Sostituire 0.0.0.0 con l’intervallo di indirizzi IP corrispondente all'ambiente specifico. Usare l'indirizzo IP pubblico del computer in uso per limitare l'accesso al server solo all'indirizzo 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..."

Creare un gruppo di risorse

Creare un gruppo di risorse con il comando az group create. Un gruppo di risorse di Azure è un contenitore logico in cui le risorse di Azure vengono distribuite e gestite. L'esempio seguente crea un gruppo di risorse denominato myResourceGroup nella posizione eastus:

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

Creare un server

Creare un server con il comando 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

Nota

  • Il nome del server può contenere solo lettere minuscole, numeri e il segno meno (-) Deve contenere da 3 a 63 caratteri. Per altre informazioni, vedere Regole di denominazione di Database di Azure per PostgreSQL.
  • Il nome utente per l'utente amministratore non può essere azure_superuser, amministratore, amministratore, radice, guest o pubblico.
  • La password deve contenere da 8 a 128 caratteri da tre delle categorie seguenti: lettere maiuscole, lettere minuscole, numeri e caratteri non alfanumerici.
  • Per informazioni sugli SKU, vedere Database di Azure per PostgreSQL prezzi.

Importante

Configurare una regola del firewall basata sul server

Creare una regola del firewall con il comando az postgres server firewall-rule create per concedere all'ambiente locale l'accesso per la connessione al server.

# 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

Suggerimento

Se non si conosce l'indirizzo IP, passare a WhatIsMyIPAddress.com per ottenerlo.

Nota

Per evitare problemi di connettività, verificare che il firewall della rete consenta la porta 5432. Il server di Database di Azure per PostgreSQL usa tale porta.

Elencare le regole del firewall basate su server

Per elencare le regole firewall del server esistenti, eseguire il comando 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.

L'output elenca le eventuali regole firewall presenti, per impostazione predefinita in formato JSON. È possibile usare l'opzione --output table per ottenere un formato di tabella più leggibile come output.

Ottenere le informazioni di connessione

Per connettersi al server, è necessario specificare le informazioni sull'host e le credenziali di accesso.

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

Prendere nota dei valori di administratorLogin e fullyQualifiedDomainName.

Connettersi al server di Database di Azure per PostgreSQL tramite psql

Il client psql è una scelta comune per la connessione ai server PostgreSQL. È possibile connettersi al server usando psqlAzure Cloud Shell. È anche possibile usare nell'ambiente psql locale, se disponibile. Viene automaticamente creato un database vuoto, postgres, con un nuovo server PostgreSQL. È possibile usare tale database per connettersi a psql, come illustrato nel codice seguente.

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

Suggerimento

Se si preferisce usare un percorso URL per connettersi a Postgres, l'URL codifica il segno @ nel nome utente con %40. Ad esempio, la stringa di connessione per psql sarà:

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

Creazione di un database vuoto

  1. Dopo aver eseguito la connessione al server, creare un database vuoto al prompt:

    CREATE DATABASE mypgsqldb;
    
  2. Nel prompt, eseguire il comando seguente per cambiare la connessione nel database appena creato mypgsqldb:

    \c mypgsqldb
    

Creare tabelle nel database

Dopo aver appreso come connettersi al Database di Azure per PostgreSQL, si possono completare alcune attività di base:

In primo luogo, creare una tabella e caricarvi alcuni dati. Creare ad esempio una tabella che tenga traccia delle informazioni riguardanti l'inventario:

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

È possibile visualizzare ora la tabella appena creata nell'elenco di tabelle digitando:

\dt

Caricare i dati nella tabella

Ora che è stata creata una tabella, inserirvi alcuni dati. Nella finestra del prompt dei comandi aperta, eseguire la query seguente per inserire alcune righe di dati:

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

A questo punto, sono presenti due righe di dati di esempio nella tabella creata in precedenza.

Eseguire una query e aggiornare i dati nelle tabelle

Eseguire la query seguente per recuperare informazioni dalla tabella di inventario:

SELECT * FROM inventory;

Si possono anche aggiornare query e dati nella tabella:

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

Quando si recuperano i dati, è possibile visualizzare i valori aggiornati:

SELECT * FROM inventory;

Ripristinare un database a un momento precedente

Si supponga di aver eliminato accidentalmente una tabella. Si tratta di un elemento che non è facile da ripristinare. Database di Azure per PostgreSQL consente di tornare a qualsiasi momento specifico per cui sono disponibili backup del server (in base al periodo di conservazione dei backup configurato) ed eseguirne il ripristino in un nuovo server. È possibile usare questo nuovo server per ripristinare i dati eliminati.

La procedura seguente consente di ripristinare il server di esempio in un punto precedente all'aggiunta della tabella:

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

Il comando az postgres server restore richiede i parametri seguenti:

Impostazione Valore suggerito Descrizione
resource-group  myresourcegroup  Il gruppo di risorse in cui si trova il server di origine. 
name mydemoserver-restored Il nome del nuovo server creato con il comando di ripristino.
restore-point-in-time 2017-04-13T13:59:00Z Selezionare un punto di ripristino temporizzato. La data e l'ora devono trovarsi all'interno del periodo di memorizzazione dei backup del server di origine. Usare il formato ISO8601 per la data e l'ora. È possibile usare il fuso orario locale, ad esempio 2017-04-13T05:59:00-08:00, o il formato UTC Zulu 2017-04-13T13:59:00Z.
source-server mydemoserver Il nome o l'ID del server di origine da cui eseguire il ripristino.

Il ripristino di un server in un punto nel tempo crea un nuovo server, ovvero una copia del server originale nel momento specificato. I valori relativi al percorso e al piano tariffario del server ripristinato sono gli stessi del server di origine.

Il comando è sincrono e il risultato verrà restituito dopo il ripristino del server. Una volta terminato il ripristino, individuare il nuovo server creato. Verificare che i dati siano stati ripristinati come previsto.

Pulire le risorse

Usare il seguente comando per rimuovere il gruppo di risorse e tutte le risorse associate usando il comando az group delete, a meno che non si abbia una necessità continua di queste risorse. La creazione e l'eliminazione di alcune di queste risorse può richiedere tempo.

az group delete --name $resourceGroup

Passaggi successivi

In questa esercitazione è stato illustrato come usare l'interfaccia della riga di comando di Azure e altre utilità per:

  • Creare un server di Database di Azure per PostgreSQL
  • Configurare il firewall del server
  • Usare l'utilità psql per creare un database
  • Caricare dati di esempio
  • Eseguire query sui dati
  • Aggiornamento dei dati
  • Ripristinare i dati