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
Usare l'ambiente Bash in Azure Cloud Shell. Per altre informazioni, vedere la Avvio rapido di Bash in Azure Cloud Shell.
Se si preferisce eseguire i comandi di riferimento dell'interfaccia della riga di comando in locale, installare l'interfaccia della riga di comando di Azure. Per l'esecuzione in Windows o macOS, è consigliabile eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker. Per altre informazioni, vedere Come eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker.
Se si usa un'installazione locale, accedere all'interfaccia della riga di comando di Azure con il comando az login. Per completare il processo di autenticazione, seguire la procedura visualizzata nel terminale. Per altre opzioni di accesso, vedere Accedere tramite l'interfaccia della riga di comando di Azure.
Quando richiesto, al primo utilizzo installare l'estensione dell'interfaccia della riga di comando di Azure. Per altre informazioni sulle estensioni, vedere Usare le estensioni con l'interfaccia della riga di comando di Azure.
Eseguire az version per trovare la versione e le librerie dipendenti installate. Per eseguire l'aggiornamento alla versione più recente, eseguire az upgrade.
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
- La versione predefinita di PostgreSQL nel server è 9.6. Per informazioni su tutte le versioni supportate, vedere Versioni principali supportate di PostgreSQL.
- SSL viene abilitato per impostazione predefinita nel server. Per altre informazioni su SSL, vedere Configurare la connettività SSL.
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 psql
Azure 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
Dopo aver eseguito la connessione al server, creare un database vuoto al prompt:
CREATE DATABASE mypgsqldb;
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