Esercitazione: Progettare un'istanza di Database di Azure per PostgreSQL con l'interfaccia della riga di comando di AzureTutorial: Design an Azure Database for PostgreSQL using Azure CLI

In questa esercitazione, si usano l'interfaccia della riga di comando di Azure e altre utilità per informazioni su come:In this tutorial, you use Azure CLI (command-line interface) and other utilities to learn how to:

  • Creare un database di Azure per il server PostgreSQLCreate an Azure Database for PostgreSQL server
  • Configurare il firewall del serverConfigure the server firewall
  • Usare l'utilità psql per creare un databaseUse psql utility to create a database
  • Caricare dati di esempioLoad sample data
  • Eseguire query sui datiQuery data
  • Aggiornare i datiUpdate data
  • Ripristinare i datiRestore data

È possibile usare Azure Cloud Shell nel browser oppure installare l'interfaccia della riga di comando di Azure 2.0 nel proprio computer per eseguire i comando di questa esercitazione.You may use the Azure Cloud Shell in the browser, or install Azure CLI 2.0 on your own computer to run the commands in this tutorial.

Aprire Azure Cloud ShellOpen Azure Cloud Shell

Azure Cloud Shell è una shell interattiva gratuita che può essere usata per eseguire la procedura di questo articolo.Azure Cloud Shell is a free, interactive shell that you can use to run the steps in this article. Gli strumenti comuni di Azure sono preinstallati e configurati in Cloud Shell per l'uso con l'account.Common Azure tools are preinstalled and configured in Cloud Shell for you to use with your account. È sufficiente selezionare il pulsante Copia per copiare il codice, incollarlo in Cloud Shell e quindi premere INVIO per eseguirlo.Just select the Copy button to copy the code, paste it in Cloud Shell, and then press Enter to run it. Esistono alcuni modi per aprire Cloud Shell:There are a few ways to open Cloud Shell:

Selezionare Prova nell'angolo superiore destro di un blocco di codice.Select Try It in the upper-right corner of a code block. Cloud Shell in questo articolo
Aprire Cloud Shell nel browser.Open Cloud Shell in your browser. https://shell.azure.com/bash
Selezionare il pulsante Cloud Shell nel menu nell'angolo superiore destro del portale di Azure.Select the Cloud Shell button on the menu in the upper-right corner of the Azure portal. Cloud Shell nel portale

Se si sceglie di installare e usare l'interfaccia della riga di comando in locale, per questo articolo è necessario eseguire la versione 2.0 o successiva dell'interfaccia della riga di comando di Azure.If you choose to install and use the CLI locally, this article requires that you are running the Azure CLI version 2.0 or later. Eseguire az --version per trovare la versione.Run az --version to find the version. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure 2.0.If you need to install or upgrade, see Install Azure CLI 2.0.

Se si dispone di più sottoscrizioni, scegliere la sottoscrizione appropriata in cui la risorsa esiste o per cui è configurata.If you have multiple subscriptions, choose the appropriate subscription in which the resource exists or is billed for. Selezionare un ID di sottoscrizione specifico sotto l'account tramite il comando az account set.Select a specific subscription ID under your account using az account set command.

az account set --subscription 00000000-0000-0000-0000-000000000000

Creare un gruppo di risorseCreate a resource group

Creare un gruppo di risorse di Azure con il comando az group create.Create an Azure resource group using the az group create command. Un gruppo di risorse è un contenitore logico in cui le risorse di Azure vengono distribuite e gestite come gruppo.A resource group is a logical container into which Azure resources are deployed and managed as a group. Nell'esempio seguente viene creato un gruppo di risorse denominato myresourcegroup nella posizione westus.The following example creates a resource group named myresourcegroup in the westus location.

az group create --name myresourcegroup --location westus

Creare un database di Azure per il server PostgreSQLCreate an Azure Database for PostgreSQL server

Creare un database di Azure per il server PostgreSQL tramite il comando az postgres server create.Create an Azure Database for PostgreSQL server using the az postgres server create command. Un server contiene un gruppo di database gestiti come gruppo.A server contains a group of databases managed as a group.

Nell'esempio seguente viene creato un server denominato mydemoserver nel gruppo di risorse myresourcegroup con account di accesso dell'amministratore del server myadmin.The following example creates a server called mydemoserver in your resource group myresourcegroup with server admin login myadmin. Poiché viene eseguito il mapping del nome di un server a un nome DNS, il nome deve essere univoco a livello globale in Azure.The name of a server maps to DNS name and is thus required to be globally unique in Azure. Sostituire <server_admin_password> con il proprio valore.Substitute the <server_admin_password> with your own value. Questo è un server per utilizzo generico di generazione 4 con 2 vCore.It is a General Purpose, Gen 4 server with 2 vCores.

az postgres server create --resource-group myresourcegroup --name mydemoserver --location westus --admin-user myadmin --admin-password <server_admin_password> --sku-name GP_Gen4_2 --version 9.6

Il valore del parametro sku-name segue la convenzione {piano tariffario}_{generazione calcolo}_{vCore} come illustrato nell'esempio seguente:The sku-name parameter value follows the convention {pricing tier}_{compute generation}_{vCores} as in the examples below:

  • --sku-name B_Gen4_4 esegue il mapping a Basic, Gen 4 e 4 vCore.--sku-name B_Gen4_4 maps to Basic, Gen 4, and 4 vCores.
  • --sku-name GP_Gen5_32 esegue il mapping a utilizzo generico, Gen 5 e 32 vCore.--sku-name GP_Gen5_32 maps to General Purpose, Gen 5, and 32 vCores.
  • --sku-name MO_Gen5_2 esegue il mapping a ottimizzazione per la memoria, Gen 5 e 2 vCore.--sku-name MO_Gen5_2 maps to Memory Optimized, Gen 5, and 2 vCores.

Vedere la documentazione dei piani tariffari per comprendere i valori validi per area e livello.Please see the pricing tiers documentation to understand the valid values per region and per tier.

Importante

L'account di accesso amministratore server e la password qui specificati sono necessari per accedere al server e ai relativi database più avanti in questa guida di avvio rapido.The server admin login and password that you specify here are required to log in to the server and its databases later in this quickstart. Prendere nota di queste informazioni per usarle in seguito.Remember or record this information for later use.

Per impostazione predefinita, il database postgres viene creato al di sotto del server.By default, postgres database gets created under your server. Il database postgres è un database predefinito che può essere usato da utenti, utilità e applicazioni di terze parti.The postgres database is a default database meant for use by users, utilities, and third-party applications.

Configurare una regola del firewall a livello di serverConfigure a server-level firewall rule

Creare una regola del firewall a livello di server per PostgreSQL Azure tramite il comando az postgres server firewall-rule create.Create an Azure PostgreSQL server-level firewall rule with the az postgres server firewall-rule create command. Una regola del firewall a livello di server consente a un'applicazione esterna, ad esempio psql o PgAdmin, di connettersi al server tramite il firewall del servizio PostgreSQL Azure.A server-level firewall rule allows an external application, such as psql or PgAdmin to connect to your server through the Azure PostgreSQL service firewall.

È possibile impostare una regola del firewall che copra un intervallo di indirizzi IP per consentire la connessione dalla rete in uso.You can set a firewall rule that covers an IP range to be able to connect from your network. L'esempio seguente usa az postgres server firewall-rule create per creare una regola del firewall AllowMyIP che consenta la connessione da un singolo indirizzo IP.The following example uses az postgres server firewall-rule create to create a firewall rule AllowMyIP that allows connection from a single IP address.

az postgres server firewall-rule create --resource-group myresourcegroup --server mydemoserver --name AllowMyIP --start-ip-address 192.168.0.1 --end-ip-address 192.168.0.1

Per limitare l'accesso al server Azure PostgreSQL a una sola rete, impostare una regola del firewall che copra l'intervallo di indirizzi IP della rete aziendale.To restrict access to your Azure PostgreSQL server to only your network, you can set the firewall rule to only cover your corporate network IP address range.

Nota

Il server PostgreSQL Azure comunica sulla porta 5432.Azure PostgreSQL server communicates over port 5432. Quando si esegue la connessione da una rete aziendale, il traffico in uscita sulla porta 5432 potrebbe non essere consentito dal firewall della rete.When connecting from within a corporate network, outbound traffic over port 5432 may not be allowed by your network's firewall. Richiedere al reparto IT di aprire la porta 5432 per connettersi al server di database SQL di Azure.Have your IT department open port 5432 to connect to your Azure SQL Database server.

Ottenere le informazioni di connessioneGet the connection information

Per connettersi al server, è necessario specificare le informazioni sull'host e le credenziali di accesso.To connect to your server, you need to provide host information and access credentials.

az postgres server show --resource-group myresourcegroup --name mydemoserver

Il risultato è in formato JSON.The result is in JSON format. Annotare l'administratorLogin e il fullyQualifiedDomainName.Make a note of the administratorLogin and fullyQualifiedDomainName.

{
  "administratorLogin": "myadmin",
  "earliestRestoreDate": null,
  "fullyQualifiedDomainName": "mydemoserver.postgres.database.azure.com",
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.DBforPostgreSQL/servers/mydemoserver",
  "location": "westus",
  "name": "mydemoserver",
  "resourceGroup": "myresourcegroup",
  "sku": {
    "capacity": 2,
    "family": "Gen4",
    "name": "GP_Gen4_2",
    "size": null,
    "tier": "GeneralPurpose"
  },
  "sslEnforcement": "Enabled",
  "storageProfile": {
    "backupRetentionDays": 7,
    "geoRedundantBackup": "Disabled",
    "storageMb": 5120
  },
  "tags": null,
  "type": "Microsoft.DBforPostgreSQL/servers",
  "userVisibleState": "Ready",
  "version": "9.6"

}

Connettersi al Database di Azure per il database PostgreSQL tramite psqlConnect to Azure Database for PostgreSQL database using psql

Se nel computer client è installato PostgreSQL, è possibile usare un'istanza locale di psql o la console Cloud di Azure per connettersi a un server PostgreSQL di Azure.If your client computer has PostgreSQL installed, you can use a local instance of psql, or the Azure Cloud Console to connect to an Azure PostgreSQL server. Si usi ora l'utilità della riga di comando psql per connettersi al Database di Azure per il server PostgreSQL.Let's now use the psql command-line utility to connect to the Azure Database for PostgreSQL server.

  1. Eseguire il comando psql seguente per connettersi a un Database di Azure per PostgreSQL:Run the following psql command to connect to an Azure Database for PostgreSQL database:

    psql --host=<servername> --port=<port> --username=<user@servername> --dbname=<dbname>
    

    Ad esempio, il comando seguente consente di connettersi al database predefinito denominato postgres nel server PostgreSQL mydemoserver.postgres.database.azure.com usando le credenziali di accesso.For example, the following command connects to the default database called postgres on your PostgreSQL server mydemoserver.postgres.database.azure.com using access credentials. Immettere il valore di <server_admin_password> scelto quando viene chiesta la password.Enter the <server_admin_password> you chose when prompted for password.

    psql --host=mydemoserver.postgres.database.azure.com --port=5432 --username=myadmin@mydemoserver --dbname=postgres
    
  2. Dopo aver eseguito la connessione al server, creare un database vuoto al prompt:Once you are connected to the server, create a blank database at the prompt:

    CREATE DATABASE mypgsqldb;
    
  3. Nel prompt, eseguire il comando seguente per cambiare la connessione nel database appena creato mypgsqldb:At the prompt, execute the following command to switch connection to the newly created database mypgsqldb:

    \c mypgsqldb
    

Creare tabelle nel databaseCreate tables in the database

Dopo aver appreso come connettersi al Database di Azure per PostgreSQL, si possono completare alcune attività di base:Now that you know how to connect to the Azure Database for PostgreSQL, you can complete some basic tasks:

In primo luogo, creare una tabella e caricarvi alcuni dati.First, create a table and load it with some data. Creare ad esempio una tabella che tenga traccia delle informazioni riguardanti l'inventario:For example, create a table that tracks inventory information:

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

È possibile visualizzare ora la tabella appena creata nell'elenco di tabelle digitando:You can see the newly created table in the list of tables now by typing:

\dt

Caricare i dati nella tabellaLoad data into the table

Ora che è stata creata una tabella, inserirvi alcuni dati.Now that there is a table created, insert some data into it. Nella finestra del prompt dei comandi aperta, eseguire la query seguente per inserire alcune righe di dati:At the open command prompt window, run the following query to insert some rows of data:

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.You have now added two rows of sample data into the table you created earlier.

Eseguire una query e aggiornare i dati nelle tabelleQuery and update the data in the tables

Eseguire la query seguente per recuperare informazioni dalla tabella di inventario:Execute the following query to retrieve information from the inventory table:

SELECT * FROM inventory;

Si possono anche aggiornare query e dati nella tabella:You can also update the data in the inventory table:

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

Quando si recuperano i dati, è possibile visualizzare i valori aggiornati:You can see the updated values when you retrieve the data:

SELECT * FROM inventory;

Ripristinare un database a un momento precedenteRestore a database to a previous point in time

Si supponga di aver eliminato accidentalmente una tabella.Imagine you have accidentally deleted a table. Si tratta di un elemento che non è facile da ripristinare.This is something you cannot easily recover from. 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.Azure Database for PostgreSQL allows you to go back to any point-in-time for which your server has backups (determined by the backup retention period you configured) and restore this point-in-time to a new server. È possibile usare questo nuovo server per ripristinare i dati eliminati.You can use this new server to recover your deleted data.

La procedura seguente consente di ripristinare il server di esempio in un punto precedente all'aggiunta della tabella:The following command restores the sample server to a point before the table was added:

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:The az postgres server restore command needs the following parameters:

ImpostazioneSetting Valore consigliatoSuggested value DESCRIZIONEDescription
resource-groupresource-group myresourcegroupmyresourcegroup Il gruppo di risorse in cui si trova il server di origine.The resource group in which the source server exists.
namename mydemoserver-restoredmydemoserver-restored Il nome del nuovo server creato con il comando di ripristino.The name of the new server that is created by the restore command.
restore-point-in-timerestore-point-in-time 2017-04-13T13:59:00Z2017-04-13T13:59:00Z Selezionare un punto di ripristino temporizzato.Select a point-in-time to restore to. La data e l'ora devono trovarsi all'interno del periodo di memorizzazione dei backup del server di origine.This date and time must be within the source server's backup retention period. Usare il formato ISO8601 per la data e l'ora.Use ISO8601 date and time format. È 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.For example, you may use your own local timezone, such as 2017-04-13T05:59:00-08:00, or use UTC Zulu format 2017-04-13T13:59:00Z.
source-serversource-server mydemoservermydemoserver Il nome o l'ID del server di origine da cui eseguire il ripristino.The name or ID of the source server to restore from.

Il ripristino di un server in un punto nel tempo crea un nuovo server, ovvero una copia del server originale nel momento specificato.Restoring a server to a point-in-time creates a new server, copied as the original server as of the point in time you specify. I valori relativi al percorso e al piano tariffario del server ripristinato sono gli stessi del server di origine.The location and pricing tier values for the restored server are the same as the source server.

Il comando è sincrono e il risultato verrà restituito dopo il ripristino del server.The command is synchronous, and will return after the server is restored. Una volta terminato il ripristino, individuare il nuovo server creato.Once the restore finishes, locate the new server that was created. Verificare che i dati siano stati ripristinati come previsto.Verify the data was restored as expected.

Passaggi successiviNext steps

In questa esercitazione è stato illustrato come usare l'interfaccia della riga di comando di Azure e altre utilità per:In this tutorial, you learned how to use Azure CLI (command-line interface) and other utilities to:

  • Creare un database di Azure per il server PostgreSQLCreate an Azure Database for PostgreSQL server
  • Configurare il firewall del serverConfigure the server firewall
  • Usare l'utilità psql per creare un databaseUse psql utility to create a database
  • Caricare dati di esempioLoad sample data
  • Eseguire query sui datiQuery data
  • Aggiornare i datiUpdate data
  • Ripristinare i datiRestore data

Successivamente, per informazioni su come usare il portale di Azure per eseguire attività simili, esaminare questa esercitazione: Progettare il primo Database di Azure per PostgreSQL tramite il portale di AzureNext, learn how to use the Azure portal to do similar tasks, review this tutorial: Design your first Azure Database for PostgreSQL using the Azure portal