Tutorial: Criar um Banco de Dados do Azure para PostgreSQL – Servidor único usando a CLI do Azure

APLICA-SE A: Banco de Dados do Azure para PostgreSQL – Servidor Único

Importante

O Banco de Dados do Azure para PostgreSQL – Servidor Único está prestes a ser desativado. É altamente recomendável atualizar para o Banco de Dados do Azure para PostgreSQL – Servidor Flexível. Para obter mais informações sobre a migração para o Banco de Dados do Azure para PostgreSQL – Servidor Flexível, veja O que está acontecendo com o Banco de Dados do Azure para PostgreSQL Servidor único?.

Neste tutorial, você usará a CLI (interface de linha de comando) do Azure e outros utilitários para aprender a:

  • Criar um Banco de Dados do Azure para o servidor PostgreSQL
  • Configurar o firewall do servidor
  • Useo utilitário psql para criar um banco de dados
  • Carregar dados de exemplo
  • Consultar dados
  • Atualizar dados
  • Restaurar dados

Caso você não tenha uma assinatura do Azure, crie uma conta gratuita do Azure antes de começar.

Pré-requisitos

Iniciar o Azure Cloud Shell

O Azure Cloud Shell é um shell gratuito e interativo que poderá ser usado para executar as etapas deste artigo. Ele tem ferramentas do Azure instaladas e configuradas para usar com sua conta.

Para abrir o Cloud Shell, basta selecionar Experimentar no canto superior direito de um bloco de código. Você também pode iniciar o Cloud Shell em uma guia separada do navegador indo até https://shell.azure.com.

Quando o Cloud Shell abrir, verifique se o Bash está selecionado para o ambiente. As sessões subsequentes usarão a CLI do Azure em um ambiente Bash. Selecione Copiar para copiar os blocos de código, cole-os no Cloud Shell e pressione Enter para executá-los.

Entrar no Azure

O Cloud Shell é autenticado automaticamente na conta inicial usada para entrar. Use o seguinte script para entrar usando uma assinatura diferente, substituindo <Subscription ID> pela ID da Assinatura do Azure. Caso você não tenha uma assinatura do Azure, crie uma conta gratuita do Azure antes de começar.

subscription="<subscriptionId>" # add subscription here

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

Para saber mais, confira definir assinatura ativa ou fazer logon de forma interativa

Definir valores de parâmetro

Os valores a seguir são usados em comandos subsequentes para criar o banco de dados e os recursos necessários. Os nomes de servidor precisam ser globalmente exclusivos em todo o Azure para que a função $RANDOM seja usada para criar o nome do servidor.

Altere o local conforme apropriado para o seu ambiente. Substitua 0.0.0.0 pelo intervalo de endereços IP para que correspondam ao seu ambiente específico. Use o endereço IP público do computador que você está usando para restringir o acesso ao servidor apenas ao seu endereço 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..."

Criar um grupo de recursos

Crie um grupo de recursos com o comando az group create. Um grupo de recursos do Azure é um contêiner lógico no qual os recursos do Azure são implantados e gerenciados. O exemplo a seguir cria um grupo de recursos chamado myResourceGroup na localização eastus:

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

Criar um servidor

Crie um servidor com o 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

Observação

  • O nome do servidor pode conter apenas letras minúsculas, números e o caractere de hífen (-). Ele precisa conter de 3 a 63 caracteres. Para obter mais informações, confira Regras de nomenclatura do Banco de Dados do Azure para PostgreSQL.
  • O nome do usuário administrador não pode ser azure_superuser, admin, administrator, root, guest nem public.
  • A senha deve conter de 8 a 128 caracteres das três seguintes categorias: letras maiúsculas, letras minúsculas, números e caracteres não alfanuméricos.
  • Para obter mais informações, confira Preços do Banco de Dados do Azure para PostgreSQL.

Importante

Configurar uma regra de firewall baseada em servidor

Crie uma regra de firewall com o comando az postgres server firewall-rule create para dar acesso ao seu ambiente local para se conectar ao servidor.

# 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

Dica

Se você não souber seu endereço IP, acesse WhatIsMyIPAddress.com para obtê-lo.

Observação

Para evitar problemas de conectividade, verifique se o firewall da rede permite a porta 5432. Os servidores do Banco de Dados do Azure para PostgreSQL usam essa porta.

Listar regras de firewall baseadas em servidor

Para listar as regras de firewall existentes no servidor, execute o 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.

A saída listará as regras de firewall, se houver, no formato JSON por padrão. Você pode usar a opção --output table para obter um formato de tabela mais legível como saída.

Obter informações de conexão

Para se conectar ao servidor, forneça credenciais de acesso e informações do host.

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

Anote os valores de administratorLogin e fullyQualifiedDomainName.

Conectar-se ao servidor do Banco de Dados do Azure para PostgreSQL usando o psql

O cliente psql é uma opção popular para se conectar a servidores PostgreSQL. Conecte-se ao seu servidor usando o psql com o Azure Cloud Shell. Você também poderá usar o psql no seu ambiente local se ele estiver disponível. Um banco de dados vazio, o postgres, é criado automaticamente com um novo servidor PostgreSQL. Use esse banco de dados para se conectar ao psql, conforme mostrado no código a seguir.

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

Dica

Se você preferir usar um caminho de URL para se conectar ao Postgres, codifique a URL de entrada @ do nome de usuário com %40. Por exemplo, a cadeia de conexão do psql será:

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

Criar um banco de dados vazio

  1. Quando já estiver conectado ao servidor, crie um banco de dados em branco no prompt:

    CREATE DATABASE mypgsqldb;
    
  2. No prompt, execute o seguinte comando para mudar a conexão para o banco de dados mypgsqldb recém-criado:

    \c mypgsqldb
    

Criar tabelas no banco de dados

Agora que você sabe como se conectar ao Banco de Dados do Azure para PostgreSQL, pode concluir algumas tarefas básicas:

Primeiro, crie uma tabela e carregue-a com alguns dados. Por exemplo, crie uma tabela que rastreia informações de inventário:

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

Você agora pode ver a tabela recém-criada na lista de tabelas digitando:

\dt

Carregar dados na tabela

Agora que uma tabela foi criada, insira alguns dados nela. Na janela do prompt de comando aberta, execute a consulta a seguir para inserir algumas linhas de dados:

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

Agora, você adicionou duas linhas de dados de exemplo na tabela criada anteriormente.

Consultar e atualizar os dados nas tabelas

Execute a seguinte consulta para recuperar as informações da tabela do inventário:

SELECT * FROM inventory;

Também é possível atualizar os dados na tabela do inventário:

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

Você pode ver os valores atualizados quando recuperar os dados:

SELECT * FROM inventory;

Restaurar um banco de dados em um ponto anterior no tempo

Imagine que você excluiu acidentalmente uma tabela. Isso é algo que você não pode se recuperar facilmente. O Banco de Dados do Azure para PostgreSQL permite que você volte para qualquer ponto anterior no qual o servidor tenha backups (determinados pelo período de retenção de backup que você configurou) e restaure esse ponto como um novo servidor. Use esse novo servidor para recuperar seus dados excluídos.

O comando a seguir restaura o servidor de exemplo para um ponto anterior à adição da tabela:

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

O comando az postgres server restore precisa dos seguintes parâmetros:

Configuração Valor sugerido Descrição
resource-group  myresourcegroup  O grupo de recursos no qual o servidor de origem existe. 
name mydemoserver-restored O nome do novo servidor que é criado pelo comando de restauração.
restore-point-in-time 2017-04-13T13:59:00Z Selecione um point-in-time para restaurar. Essa data e hora devem estar dentro do período de retenção de backup do servidor de origem. Use o formato ISO8601 de data e hora. Por exemplo, você pode usar seu próprio fuso horário local, como 2017-04-13T05:59:00-08:00, ou usar o formato UTC Zulu 2017-04-13T13:59:00Z.
source-server mydemoserver O nome ou ID para restaurar a partir do servidor de origem.

Restaurar um servidor para um ponto no tempo cria um novo servidor, copiado como o servidor original do ponto no tempo que você especificar. O local e os valores de tipo de preço para o servidor restaurado são o mesmo que o servidor de origem.

O comando é síncrono e retornará depois que o servidor for restaurado. Depois que a restauração é concluída, localize o novo servidor que foi criado. Verifique se os dados foram restaurados conforme o esperado.

Limpar os recursos

Use o comando a seguir para remover o grupo de recursos e todos os recursos associados a ele usando o comando az group delete, a menos que você necessite desses recursos com frequência. A criação e a exclusão de alguns desses recursos podem demorar um pouco.

az group delete --name $resourceGroup

Próximas etapas

Neste tutorial, você aprendeu como usar a CLI (interface de linha de comando) do Azure e outros utilitários para aprender a:

  • Criar um Banco de Dados do Azure para o servidor PostgreSQL
  • Configurar o firewall do servidor
  • Use o utilitário psql para criar um banco de dados
  • Carregar dados de exemplo
  • Consultar dados
  • Atualizar dados
  • Restaurar dados