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á no caminho da desativação. É altamente recomendável que você atualize para o Banco de Dados do Azure para PostgreSQL - Servidor Flexível. Para obter mais informações sobre como migrar para o Banco de Dados do Azure para PostgreSQL - Servidor Flexível, consulte O que está acontecendo com o Banco de Dados do Azure para Servidor Único PostgreSQL?

Neste tutorial, utiliza a CLI do Azure (interface de linha de comandos) e outros utilitários para saber como:

  • Criar um servidor da Base de Dados do Azure para PostgreSQL
  • Configurar a firewall do servidor
  • Utilize o utilitário psql para criar uma base de dados
  • Carregar dados de exemplo
  • Consultar os dados
  • Atualizar dados
  • Restaurar dados

Se não tiver uma subscrição do Azure, crie uma conta gratuita do Azure antes de começar.

Pré-requisitos

  • Use o ambiente Bash no Azure Cloud Shell. Para obter mais informações, consulte Guia de início rápido para Bash no Azure Cloud Shell.

  • Se preferir executar comandos de referência da CLI localmente, instale a CLI do Azure. Se estiver a utilizar o Windows ou macOS, considere executar a CLI do Azure num contentor Docker. Para obter mais informações, consulte Como executar a CLI do Azure em um contêiner do Docker.

    • Se estiver a utilizar uma instalação local, inicie sessão no CLI do Azure ao utilizar o comando az login. Para concluir o processo de autenticação, siga os passos apresentados no seu terminal. Para outras opções de entrada, consulte Entrar com a CLI do Azure.

    • Quando solicitado, instale a extensão da CLI do Azure na primeira utilização. Para obter mais informações sobre as extensões, veja Utilizar extensões com o CLI do Azure.

    • Execute o comando az version para localizar a versão e as bibliotecas dependentes instaladas. Para atualizar para a versão mais recente, execute o comando az upgrade.

Iniciar o Azure Cloud Shell

O Azure Cloud Shell é um shell interativo gratuito que pode utilizar para executar os passos neste artigo. Tem as ferramentas comuns do Azure pré-instaladas e configuradas para utilização com a sua conta.

Para abrir o Cloud Shell, basta selecionar Experimentar no canto superior direito de um bloco de código. Também pode iniciar o Cloud Shell num separador do browser separado ao aceder a https://shell.azure.com.

Quando o Cloud Shell abrir, verifique se o Bash está selecionado para o seu 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-o no Cloud Shell e pressione Enter para executá-lo.

Iniciar sessão no Azure

O Cloud Shell é autenticado automaticamente na conta inicial com a qual entrou conectado. Use o script a seguir para entrar usando uma assinatura diferente, substituindo <Subscription ID> por sua ID de Assinatura do Azure. Se não tiver uma subscrição 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 obter mais informações, consulte definir assinatura ativa ou fazer login interativamente

Definir valores de parâmetros

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 seu ambiente. Substitua 0.0.0.0 pelo intervalo de endereços IP para corresponder ao seu ambiente específico. Utilize o endereço IP público do computador que está a utilizar 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 contentor lógico no qual os recursos do Azure são implementados e geridos. O exemplo seguinte cria um grupo de recursos com o nome 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

Nota

  • O nome do servidor pode conter apenas letras minúsculas, números e o caráter de hífen (-). Deve conter de 3 a 63 caracteres. Para obter mais informações, consulte Banco de Dados do Azure para Regras de Nomenclatura do PostgreSQL.
  • O nome de usuário do usuário administrador não pode ser azure_superuser, admin, administrator, root, guest ou public.
  • A senha deve conter de 8 a 128 caracteres de três das seguintes categorias: letras maiúsculas em inglês, letras minúsculas em inglês, números e caracteres não alfanuméricos.
  • Para obter informações sobre SKUs, consulte Banco de Dados do Azure para preços do PostgreSQL.

Importante

  • A versão padrão do PostgreSQL no seu servidor é 9.6. Para ver todas as versões suportadas, consulte Versões principais do PostgreSQL suportadas.
  • O SSL está ativado por padrão no seu servidor. Para obter mais informações sobre SSL, consulte Configurar conectividade SSL.

Configurar uma regra de firewall ao nível do servidor

Crie uma regra de firewall com o comando az postgres server firewall-rule create para dar ao seu ambiente local acesso 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

Gorjeta

Se você não sabe seu endereço IP, vá para WhatIsMyIPAddress.com para obtê-lo.

Nota

Para evitar problemas de conectividade, certifique-se de que a firewall da rede permite a porta 5432. O Banco de Dados do Azure para servidores PostgreSQL usa essa porta.

Listar regras de firewall baseadas em servidor

Para listar as regras de firewall do servidor existentes, 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 lista as regras de firewall, se houver, por padrão no formato JSON. Você pode usar o switch --output table para um formato de tabela mais legível como saída.

Obter as informações da ligação

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

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

Anote os valores administratorLogin e fullyQualifiedDomainName .

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

O cliente psql é uma escolha popular para se conectar a servidores PostgreSQL. Você pode se conectar ao seu servidor usando psql o Azure Cloud Shell. Você também pode usar psql em seu ambiente local, se você tiver disponível. Um banco de dados vazio, postgres, é criado automaticamente com um novo servidor PostgreSQL. Você pode usar esse banco de dados para se conectar com psqlo , conforme mostrado no código a seguir.

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

Gorjeta

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

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

Criar uma base de dados vazia

  1. Assim que estiver ligado ao servidor, crie uma base de dados em branco na linha de comandos:

    CREATE DATABASE mypgsqldb;
    
  2. Na linha de comandos, execute o comando seguinte para mudar a ligação para a base de dados mypgsqldb criada recentemente:

    \c mypgsqldb
    

Criar tabelas na base de dados

Agora que sabe como ligar à Base de Dados do Azure para PostgreSQL, pode concluir algumas tarefas básicas:

Em primeiro lugar, crie uma tabela e carregue-a com alguns dados. Por exemplo, vamos criar uma tabela que controla as informações de inventário:

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

Agora pode ver a tabela criada recentemente na lista de tabelas ao escrever:

\dt

Carregar dados para a tabela

Agora que já criámos uma tabela, insira alguns dados. Na janela da linha de comandos aberta, execute a seguinte consulta 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);

Acabou de adicionar duas linhas de dados de exemplo às tabelas que criou anteriormente.

Consultar e atualizar os dados nas tabelas

Execute a seguinte consulta para obter informações da tabela de inventário:

SELECT * FROM inventory;

Também pode atualizar os dados na tabela de inventário:

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

Pode ver os valores atualizados ao obter os dados:

SELECT * FROM inventory;

Restaurar uma base de dados para um ponto anterior no tempo

Imagine que eliminou acidentalmente uma tabela. É algo de que não é fácil recuperar. A Base de Dados do Azure para PostgreSQL permite-lhe regressar a qualquer ponto anterior no tempo para o qual o seu servidor tenha cópias de segurança (determinado pelo período de retenção da cópia de segurança configurado por si) e restaurar este ponto anterior no tempo num novo servidor. Pode utilizar este servidor novo para recuperar os dados eliminados.

O comando seguinte restaura o servidor de exemplo para um ponto antes de a tabela ter sido adicionada:

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:

Definição Valor sugerido Descrição
resource-group  myresourcegroup  O grupo de recursos no qual se encontra o servidor de origem. 
nome mydemoserver-restored O nome do novo servidor que é criado pelo comando restore.
restore-point-in-time 2017-04-13T13:59:00Z Selecione um ponto anterior no tempo para o qual restaurar. Esta data e hora têm de estar dentro do período de retenção de cópias de segurança do servidor de origem. Utilize o formato de data e hora ISO8601. Por exemplo, pode utilizar o seu fuso horário local, como 2017-04-13T05:59:00-08:00, ou utilizar o formato UTC Zulu 2017-04-13T13:59:00Z.
source-server mydemoserver O nome ou ID do servidor de origem do qual pretende restaurar.

Restaurar um servidor para um ponto anterior no tempo cria um novo servidor, copiado como o servidor original do ponto anterior no tempo que especificar. A localização e os valores do escalão de preço do servidor restaurado são os mesmos do servidor de origem.

O comando é síncrono e irá regressar depois de o servidor ser restaurado. Depois de o restauro ser concluído, localize o novo servidor que foi criado. Certifique-se de que os dados foram restaurados conforme esperado.

Clean up resources (Limpar 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ê tenha uma necessidade contínua desses recursos. Alguns desses recursos podem demorar um pouco para criar, bem como para excluir.

az group delete --name $resourceGroup

Próximos passos

Neste tutorial, aprendeu a utilizar a CLI (interface de linha de comandos) do Azure e outros utilitários para:

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