Tutorial: Diseño de una instancia de Azure Database for PostgreSQL: servidor único con la CLI de AzureTutorial: Design an Azure Database for PostgreSQL - Single Server using Azure CLI

En este tutorial, usa la CLI (interfaz de la línea de comandos) de Azure y otras utilidades para aprender a hacer lo siguiente:In this tutorial, you use Azure CLI (command-line interface) and other utilities to learn how to:

  • Creación de un servidor de Azure Database for PostgreSQLCreate an Azure Database for PostgreSQL server
  • Configuración del firewall del servidorConfigure the server firewall
  • Uso de la utilidad psql para crear una base de datosUse psql utility to create a database
  • Carga de datos de ejemploLoad sample data
  • Datos de consultaQuery data
  • Actualización de datosUpdate data
  • Restauración de datosRestore data

Puede usar Azure Cloud Shell en el explorador, o bien instalar la CLI de Azure en su propio equipo para ejecutar los comandos de este tutorial.You may use the Azure Cloud Shell in the browser, or install Azure CLI on your own computer to run the commands in this tutorial.

Apertura de Azure Cloud ShellOpen Azure Cloud Shell

Azure Cloud Shell es un entorno de shell interactivo que se hospeda en Azure y se utiliza a través del explorador.Azure Cloud Shell is an interactive shell environment hosted in Azure and used through your browse. Azure Cloud Shell le permite usar los shell bash o PowerShell para ejecutar una variedad de herramientas para trabajar con los servicios de Azure.Azure Cloud Shell allows you to use either bash or PowerShell shells to run a variety of tools to work with Azure services. Azure Cloud Shell viene preinstalado con los comandos para permitirle ejecutar el contenido de este artículo sin tener que instalar nada en su entorno local.Azure Cloud Shell comes pre-installed with the commands to allow you to run the content of this article without having to install anything on your local environment.

Para ejecutar cualquier código contenido en este artículo en Azure Cloud Shell, abra una sesión de Cloud Shell, utilice el botón Copiar en un bloque de código para copiar el código y péguelo en la sesión de Cloud Shell con Ctrl+Mayús+V en Windows y Linux, o Cmd+Mayús+V en macOS.To run any code contained in this article on Azure Cloud Shell, open a Cloud Shell session, use the Copy button on a code block to copy the code, and paste it into the Cloud Shell session with Ctrl+Shift+V on Windows and Linux, or Cmd+Shift+V on macOS. El texto pegado no se ejecuta automáticamente, así que presione ENTRAR para ejecutar el código.Pasted text is not automatically executed, so press Enter to run code.

Puede iniciar Azure Cloud Shell con:You can launch Azure Cloud Shell with:

Seleccione Probarlo en la esquina superior derecha de un bloque de código.Select Try It in the upper-right corner of a code block. Esto no copia automáticamente el texto en Cloud Shell.This doesn't automatically copy text to Cloud Shell. Ejemplo de Probarlo para Azure Cloud Shell
Abra shell.azure.com en el explorador.Open shell.azure.com in your browser. Botón Iniciar Cloud ShellLaunch Azure Cloud Shell button
Seleccione el botón Cloud Shell en el menú de la esquina superior derecha de Azure Portal.Select the Cloud Shell button on the menu in the upper-right corner of the Azure portal. Botón Cloud Shell en Azure Portal

Si decide instalar y usar la CLI localmente, para este artículo es preciso que ejecute la versión 2.0 o posterior de la CLI de 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. Ejecute az --version para encontrar la versión.Run az --version to find the version. Si necesita instalarla o actualizarla, vea Instalación de la CLI de Azure.If you need to install or upgrade, see Install Azure CLI.

Si tiene varias suscripciones, elija la adecuada donde se encuentre el recurso o para la cual se facture.If you have multiple subscriptions, choose the appropriate subscription in which the resource exists or is billed for. Seleccione un identificador de suscripción específico en su cuenta mediante el 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

Crear un grupo de recursosCreate a resource group

Cree un grupo de recursos de Azure con el comando az group create.Create an Azure resource group using the az group create command. Un grupo de recursos es un contenedor lógico en el que se implementan y se administran recursos de Azure como un grupo.A resource group is a logical container into which Azure resources are deployed and managed as a group. En el ejemplo siguiente, se crea un grupo de recursos denominado myresourcegroup en la ubicación westus.The following example creates a resource group named myresourcegroup in the westus location.

az group create --name myresourcegroup --location westus

Creación de un servidor de Azure Database for PostgreSQLCreate an Azure Database for PostgreSQL server

Cree un servidor de Azure Database for PostgreSQL con el comando az postgres server create.Create an Azure Database for PostgreSQL server using the az postgres server create command. Un servidor contiene un conjunto de bases de datos administradas como un grupo.A server contains a group of databases managed as a group.

En el ejemplo siguiente se crea un servidor denominado mydemoserver en el grupo de recursos myresourcegroup con el inicio de sesión de administrador de servidor myadmin.The following example creates a server called mydemoserver in your resource group myresourcegroup with server admin login myadmin. El nombre de un servidor se asigna al nombre DNS y, por tanto, debe ser único a nivel global en Azure.The name of a server maps to DNS name and is thus required to be globally unique in Azure. Sustituya <server_admin_password> por su propio valor.Substitute the <server_admin_password> with your own value. Se trata de un servidor Gen 5 de uso general con 2 núcleos virtuales.It is a General Purpose, Gen 5 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_Gen5_2 --version 9.6

El valor del parámetro sku-name sigue la convención {plan de tarifa}_{generación de proceso}_{núcleos virtuales} como en los ejemplos siguientes:The sku-name parameter value follows the convention {pricing tier}_{compute generation}_{vCores} as in the examples below:

  • --sku-name B_Gen5_2 se asigna a Básico, Gen 5 y 2 núcleos virtuales.--sku-name B_Gen5_2 maps to Basic, Gen 5, and 2 vCores.
  • --sku-name GP_Gen5_32 se asigna a De uso general, Gen 5 y 32 núcleos virtuales.--sku-name GP_Gen5_32 maps to General Purpose, Gen 5, and 32 vCores.
  • --sku-name MO_Gen5_2 se asigna a Optimizado para memoria, Gen 5 y 2 núcleos virtuales.--sku-name MO_Gen5_2 maps to Memory Optimized, Gen 5, and 2 vCores.

Para comprender cuáles son los valores válidos por región y nivel consulte la documentación sobre planes de tarifa.Please see the pricing tiers documentation to understand the valid values per region and per tier.

Importante

El inicio de sesión y la contraseña de administrador del servidor que especifique aquí serán necesarios para iniciar sesión más adelante en ese servidor y en las bases de datos que se especificarán en esta guía de inicio rápido.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. Recuerde o grabe esta información para su uso posterior.Remember or record this information for later use.

De forma predeterminada, la base de datos de postgres se crea en el servidor.By default, postgres database gets created under your server. La base de datos postgres es una base de datos predeterminada pensada para que la usen los usuarios, las utilidades y aplicaciones de otros fabricantes.The postgres database is a default database meant for use by users, utilities, and third-party applications.

Configuración de una regla de firewall de nivel de servidorConfigure a server-level firewall rule

Cree una regla de firewall de nivel de servidor de Azure PostgreSQL con el 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 regla de firewall de nivel de servidor permite que una aplicación externa, como psql o PgAdmin, se conecte al servidor a través del firewall del servicio Azure PostgreSQL.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.

Puede establecer una regla de firewall que abarque un intervalo de IP para poder conectarse desde la red.You can set a firewall rule that covers an IP range to be able to connect from your network. En el ejemplo siguiente se usa az postgres server firewall-rule create para crear una regla de firewall AllowMyIP que permite la conexión desde una única dirección 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

Para restringir el acceso a su servidor de Azure PostgreSQL solamente a su red, puede establecer la regla de firewall para que solo cubra el intervalo de direcciones IP de su red corporativa.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

El servidor Azure PostgreSQL se comunica a través de puerto 5432.Azure PostgreSQL server communicates over port 5432. Al conectarse desde una red corporativa, es posible que el firewall de la red no permita el tráfico saliente a través del puerto 5432.When connecting from within a corporate network, outbound traffic over port 5432 may not be allowed by your network's firewall. Haga que el departamento de TI abra el puerto 5432 para conectarse al servidor de Azure SQL Database.Have your IT department open port 5432 to connect to your Azure SQL Database server.

Obtención de la información de conexiónGet the connection information

Para conectarse al servidor, debe proporcionar las credenciales de acceso y la información del host.To connect to your server, you need to provide host information and access credentials.

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

El resultado está en formato JSON.The result is in JSON format. Tome nota de los valores de administratorLogin y 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": "Gen5",
    "name": "GP_Gen5_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"

}

Conexión a la base de datos de Azure Database for PostgreSQL mediante psqlConnect to Azure Database for PostgreSQL database using psql

Si el equipo cliente tiene PostgreSQL instalado, puede usar una instancia local de psql o usar la consola de Azure Cloud para conectarse a un servidor Azure PostgreSQL.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. Ahora vamos a usar la utilidad de línea de comandos psql para conectarnos al servidor de Azure Database for PostgreSQL.Let's now use the psql command-line utility to connect to the Azure Database for PostgreSQL server.

  1. Ejecute el comando psql siguiente para conectarse a una base de datos Azure Database for 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>
    

    Por ejemplo, el siguiente comando se conecta a la base de datos predeterminada llamada postgres en el servidor PostgreSQL mydemoserver.postgres.database.azure.com con las credenciales de acceso.For example, the following command connects to the default database called postgres on your PostgreSQL server mydemoserver.postgres.database.azure.com using access credentials. Escriba el valor de <server_admin_password> que eligió cuando se le solicitó una contraseña.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. Una vez conectado al servidor, cree una base de datos vacía en el símbolo del sistema:Once you are connected to the server, create a blank database at the prompt:

    CREATE DATABASE mypgsqldb;
    
  3. En el símbolo del sistema, ejecute el siguiente comando para cambiar la conexión a la base de datos mypgsqldb recién creada:At the prompt, execute the following command to switch connection to the newly created database mypgsqldb:

    \c mypgsqldb
    

Creación de tablas en la base de datosCreate tables in the database

Ahora que sabe cómo conectarse a la base de datos de Azure Database for PostgreSQL, puede completar algunas tareas básicas:Now that you know how to connect to the Azure Database for PostgreSQL, you can complete some basic tasks:

En primer lugar, cree una tabla y cárguela con algunos datos.First, create a table and load it with some data. Por ejemplo, vamos a crear una tabla que haga un seguimiento de la información del inventario:For example, create a table that tracks inventory information:

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

Puede ver la tabla recién creada ahora en la lista de tablas si escribe lo siguiente:You can see the newly created table in the list of tables now by typing:

\dt

Carga de datos en la tablaLoad data into the table

Ahora que ya hay una tabla creada, inserte algunos datos en ella.Now that there is a table created, insert some data into it. En la ventana de símbolo del sistema abierta, ejecute la consulta siguiente para insertar algunas filas de datos: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);

Ahora ha agregado dos filas de datos de ejemplo en la tabla que creó anteriormente.You have now added two rows of sample data into the table you created earlier.

Consulta y actualización de los datos en las tablasQuery and update the data in the tables

Ejecute la siguiente consulta para recuperar información de la tabla del inventario:Execute the following query to retrieve information from the inventory table:

SELECT * FROM inventory;

También puede actualizar los datos en la tabla del inventario:You can also update the data in the inventory table:

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

Puede ver los valores actualizados cuando recupera los datos:You can see the updated values when you retrieve the data:

SELECT * FROM inventory;

Restauración de una base de datos a un momento anterior en el tiempoRestore a database to a previous point in time

Imagine que ha eliminado accidentalmente una tabla.Imagine you have accidentally deleted a table. No se puede recuperar con facilidad.This is something you cannot easily recover from. Azure Database for PostgreSQL permite volver a cualquier momento dado para el cual haya copias de seguridad del servidor (en función del período de retención de copia de seguridad que se configuró) y restaurar este momento dado en un nuevo servidor.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. Puede usar este servidor nuevo para recuperar los datos eliminados.You can use this new server to recover your deleted data.

El comando siguiente restaura el servidor de ejemplo a un punto antes de que se agregara la tabla: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

El comando az postgres server restore necesita los parámetros siguientes:The az postgres server restore command needs the following parameters:

ConfiguraciónSetting Valor sugeridoSuggested value DESCRIPCIÓNDescription  
resource-groupresource-group  myresourcegroupmyresourcegroup  Grupo de recursos en el que existe el servidor de origen.The resource group in which the source server exists. 
Nombrename mydemoserver-restoredmydemoserver-restored Nombre del nuevo servidor que se crea mediante el comando de restauración.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 Seleccione un momento dado en el que quiere restaurar.Select a point-in-time to restore to. Esta fecha y hora debe estar dentro del período de retención de copia de seguridad del servidor de origen.This date and time must be within the source server's backup retention period. Use el formato de fecha y hora ISO8601.Use ISO8601 date and time format. Por ejemplo, puede usar su propia zona horaria local, como 2017-04-13T05:59:00-08:00, o usar el formato de hora Zulú UTC 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 Nombre o identificador del servidor de origen desde el que se va a restaurar.The name or ID of the source server to restore from.

Al restaurar un servidor a un momento dado, se crea un servidor que se copia como servidor original a un momento dado que especifique.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. Los valores de ubicación y plan de tarifa del servidor restaurado son los mismos que los del servidor de origen.The location and pricing tier values for the restored server are the same as the source server.

El comando es sincrónico y se devolverá después de que se haya restaurado el servidor.The command is synchronous, and will return after the server is restored. Una vez finalizada la restauración, busque el servidor que ha creado.Once the restore finishes, locate the new server that was created. Compruebe que los datos se han restaurado del modo esperado.Verify the data was restored as expected.

Pasos siguientesNext steps

En este tutorial, aprendió a usar la CLI (interfaz de la línea de comandos) de Azure y otras utilidades para hacer lo siguiente:In this tutorial, you learned how to use Azure CLI (command-line interface) and other utilities to:

  • Creación de un servidor de Azure Database for PostgreSQLCreate an Azure Database for PostgreSQL server
  • Configuración del firewall del servidorConfigure the server firewall
  • Uso de la utilidad psql para crear una base de datosUse psql utility to create a database
  • Carga de datos de ejemploLoad sample data
  • Datos de consultaQuery data
  • Actualización de datosUpdate data
  • Restauración de datosRestore data

Después, para aprender a usar Azure Portal para realizar tareas similares, consulte este tutorial: Diseño de la primera base de datos de Azure Database for PostgreSQL con Azure PortalNext, 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