Partilhar via


Guia de início rápido: criar um banco de dados do Azure para o servidor flexível PostgreSQL

Azure Database para PostgreSQL é um serviço gerido que pode usar para executar, gerir e escalar bases de dados PostgreSQL altamente disponíveis na cloud.

Este início rápido mostra-lhe como criar uma instância de servidor flexível do Azure Database para PostgreSQL usando o portal Azure, Azure CLI ou modelos Azure Resource Manager (ARM).

Pré-requisitos

Antes de começar, certifique-se de que tem:

  • Uma assinatura do Azure. Se você não tiver uma, crie uma conta gratuita do Azure.
  • Permissões apropriadas para criar recursos na sua subscrição.

Compreenda o que está a criar

Uma instância de servidor flexível Azure Database for PostgreSQL inclui:

  • Um conjunto configurado de recursos de computação e armazenamento.
  • Implementação dentro de um grupo de recursos Azure.
  • Uma postgres base de dados criada por padrão.
  • Uma azure_maintenance base de dados para processos de serviços geridos.
  • Uma base de dados para funcionalidades de azure_sys armazenamento de consultas e ajuste de índices.

Observação

As ligações normalmente usam a porta 5432, ou a porta 6432 se estiverem ligadas através do pooler de ligação PgBouncer incorporado.

Criar servidor usando o portal Azure

  1. Inicie sessão no portal Azure.
  2. Selecione Criar um recurso no canto superior esquerdo.
  3. Em Categorias, selecione Bancos de dados.
  4. Encontre e selecione Azure Database para servidor flexível PostgreSQL.
  5. Selecione Criar.

Configurar as definições básicas

Detalhes do projeto

Configuração Valor sugerido Observações
Subscription A sua subscrição Escolha onde faturar o recurso
Grupo de recursos myresourcegroup Criar novos ou selecionar os existentes

Detalhes do servidor

Configuração Valor sugerido Description
Nome do servidor mydemoserver-pgsql Deve ser globalmente único. O domínio .postgres.database.azure.com é adicionado automaticamente
Região Região mais próxima de si Considere conformidade, residência de dados, preços e proximidade aos utilizadores
Versão do PostgreSQL Últimas novidades disponíveis Atualmente apoiados: 18, 17, 16, 15, 14, 13, 12, 11
Tipo de carga de trabalho Desenvolvimento O desenvolvimento utiliza SKUs Burstable. A produção utiliza Propósito Geral ou Memória Otimizada.
Zona de disponibilidade Sem preferência Útil para colocar na sua candidatura

Alta disponibilidade

Opção SLA Description
Disabled 99,9% Servidor único sem standby
Mesma zona 99,95% Em espera na mesma zona de disponibilidade
Zona redundante 99,99% Aguarde numa zona de disponibilidade diferente

Authentication

Configuração Description Recomendado
Método de autenticação Como os usuários se autenticam - Autenticação PostgreSQL apenas (para início rápido)
- Autenticação Microsoft Entra (para produção)
- Ambos (para flexibilidade)
Nome de utilizador de administrador adminuser - Deve ser de 1 a 63 caracteres
- Apenas números e letras
- Não é possível começar com pg_
- Não podem ser nomes reservados pelo sistema
Senha Palavra-passe complexa Caracteres 8-128 com maiúsculas, minúsculas, números e caracteres especiais

Configurar computação e armazenamento

Selecione Configurar servidor para personalizar:

Camada de computação

Escalão de serviço Caso de uso Description
Burstable Desenvolvimento Para cargas de trabalho que não precisam de CPU cheia contínua
Uso Geral Produção Cargas de trabalho de produção mais comuns
Memória otimizada Cargas de trabalho de alta memória Cargas de trabalho que requerem uma elevada relação memória-CPU

Definições de armazenamento

Configuração Pode mudar mais tarde Description
Tipo de armazenamento ❌ Não SSD Premium ou SSD Premium v2
Tamanho de armazenamento ✅ Sim (apenas aumento) Não é possível encolher após a criação
Nível de desempenho ✅ Sim Controla IOPS e rendimento
Crescimento automático do armazenamento ✅ Sim Expandir automaticamente ao aproximar-se dos limites

Definições de cópia de segurança

Configuração Pode mudar mais tarde Description
Retenção de reservas ✅ Sim 7-35 dias
Redundância de backup ❌ Não Localmente redundante, redundante de zona ou geo-redundante
Redundância geográfica ❌ Não Disponível apenas em regiões emparelhadas Azure

Configurar rede

Escolhe o teu método de conectividade (não pode ser alterado após a criação):

Acesso público (endereços IP permitidos)

Liga-te através de um endpoint público usando regras de firewall.

Configurações:

Configuração Description
Permitir o acesso público Permitir o acesso público para configurar regras de firewall
Permitir serviços do Azure Permitir conexões de todos os serviços Azure
Adicionar IP atual do cliente Adicione o seu endereço IP à lista de autorizações

Acesso privado (integração com rede virtual)

Liga-te através de um endpoint privado dentro de uma rede virtual. Para mais informações, veja Rede com acesso privado para Azure Database for PostgreSQL.

Configurar a segurança

Configuração Pode mudar mais tarde Opções
Chave de encriptação de dados ❌ Não Gestão de serviços ou gestão do cliente

Adicionar tags de recursos (opcional)

Organize recursos com pares nome-valor:

Nome Valor Propósito
Meio Ambiente Desenvolvimento Identificar o tipo de ambiente
CostCenter IT-Dept Acompanhar custos por departamento
Proprietário admin@contoso.com Identificar a parte responsável

Revisar e criar

  1. Selecione Verificar + criar.
  2. Revê todas as configurações.
  3. Selecione Criar para implementar.

O desdobramento normalmente demora entre 5 a 10 minutos. Quando estiver concluído, selecione Ir para recurso para aceder ao seu servidor.

Criar servidor usando o Azure CLI

Pré-requisitos para CLI

Para esse script, use a CLI do Azure localmente, pois leva muito tempo para ser executado no Cloud Shell.

Iniciar sessão no Azure

Use o script a seguir para entrar usando uma assinatura específica.

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

Se usares Azure Cloud Shell, já tens sessão iniciada.

Criar servidor com CLI

Crie um servidor com um comando:

az postgres flexible-server create \
  --resource-group myresourcegroup \
  --name mydemoserver-pgsql \
  --location eastus \
  --admin-user myadmin \
  --admin-password <password> \
  --sku-name Standard_D4ds_v5 \
  --tier GeneralPurpose \
  --public-access 0.0.0.0 \
  --storage-size 128 \
  --tags "Environment=Development"

Referência de parâmetros CLI

Parâmetro Description Example
--resource-group Nome do grupo de recursos myresourcegroup
--name Nome de servidor globalmente único mydemoserver-pgsql
--location região do Azure Eastus
--admin-user Nome de utilizador do administrador myadmin
--admin-password Palavra-passe de administrador YourPassword123!
--sku-name SKU de Processamento Standard_D4ds_v5
--tier Camada de computação Intermitente, Uso Geral, Otimizado para Memória
--storage-size Armazenamento em GB 128
--public-access Endereços IP permitidos 0.0.0.0 (todos os serviços Azure), endereço IP ou intervalo IP
--version Versão do PostgreSQL 16
--high-availability Modo HA Desativado, SameZone, ZoneRedundant
--backup-retention Dias de retenção de backup 7-35

Exemplo avançado de CLI

Crie um servidor altamente disponível, redundante entre zonas.

az postgres flexible-server create \
  --resource-group myresourcegroup \
  --name mydemoserver-pgsql-ha \
  --location eastus \
  --admin-user myadmin \
  --admin-password <password> \
  --sku-name Standard_D4ds_v5 \
  --tier GeneralPurpose \
  --storage-size 256 \
  --storage-type PremiumV2_LRS \
  --high-availability ZoneRedundant \
  --zone 1 \
  --standby-zone 2 \
  --backup-retention 14 \
  --public-access 0.0.0.0

Criar servidor usando o modelo ARM

Visão geral do modelo ARM

Os templates do Azure Resource Manager (ARM) permitem-lhe definir infraestrutura como código. Utilize modelos para implementações repetitivas.

Modelo ARM mínimo

Guarde este ficheiro como postgres-server-template.json:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "serverName": {
      "type": "string",
      "metadata": {
        "description": "Server name must be globally unique"
      }
    },
    "administratorLogin": {
      "type": "string",
      "minLength": 1,
      "maxLength": 63,
      "metadata": {
        "description": "Administrator username"
      }
    },
    "administratorLoginPassword": {
      "type": "securestring",
      "minLength": 8,
      "metadata": {
        "description": "Administrator password"
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Server location"
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.DBforPostgreSQL/flexibleServers",
      "apiVersion": "2024-08-01",
      "name": "[parameters('serverName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "Standard_D4ds_v5",
        "tier": "GeneralPurpose"
      },
      "properties": {
        "administratorLogin": "[parameters('administratorLogin')]",
        "administratorLoginPassword": "[parameters('administratorLoginPassword')]",
        "version": "16",
        "storage": {
          "storageSizeGB": 128,
          "type": "Premium_LRS",
          "autoGrow": "Enabled"
        },
        "backup": {
          "backupRetentionDays": 7,
          "geoRedundantBackup": "Disabled"
        },
        "network": {
          "publicNetworkAccess": "Enabled"
        },
        "highAvailability": {
          "mode": "Disabled"
        }
      }
    }
  ],
  "outputs": {
    "serverFQDN": {
      "type": "string",
      "value": "[reference(parameters('serverName')).fullyQualifiedDomainName]"
    }
  }
}

Implementar o modelo do Resource Manager

az group create --name myresourcegroup --location eastus

az deployment group create \
  --resource-group myresourcegroup \
  --template-file postgres-server-template.json \
  --parameters \
    serverName=mydemoserver-pgsql \
    administratorLogin=myadmin \
    administratorLoginPassword=<password>

Obter informações de conexão

Depois de criar o seu servidor, recupere os detalhes da ligação:

Usando o portal do Azure

  1. Vai ao teu servidor no portal Azure.
  2. Abra a página Descrição Geral.
  3. Copie estes valores:
    • Nome do servidor (Endpoint): mydemoserver-pgsql.postgres.database.azure.com
    • Login de administrador: myadmin

Utilizar a CLI do Azure

az postgres flexible-server show \
  --resource-group myresourcegroup \
  --name mydemoserver-pgsql \
  --query "{serverName:fullyQualifiedDomainName, adminUser:administratorLogin}" \
  --output table

Conecte-se usando psql

Instalar psql

Se não tiver ferramentas de cliente PostgreSQL, descarregue o PostgreSQL para a sua plataforma.

Liga-te ao teu servidor

psql "host=mydemoserver-pgsql.postgres.database.azure.com port=5432 dbname=postgres user=myadmin sslmode=require"

Quando solicitado, introduza a palavra-passe de administrador que definiu durante a criação do servidor.

Formato da cadeia de conexão

host=<server-name>.postgres.database.azure.com port=5432 dbname=<database-name> user=<admin-user> password=<password> sslmode=require

Verificar conexão

Depois de se conectarem, devem ver:

psql (14.13, server 16.4)
WARNING: psql major version 14, server major version 16.
         Some psql features might not work.
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
Type "help" for help.

postgres=>

Criar uma base de dados

CREATE DATABASE user_database;
\c user_database
\q

Solução de problemas de conexão

Firewall bloqueando a ligação

Se vires:

connection to server at "mydemoserver-pgsql.postgres.database.azure.com" (###.###.###.###), port 5432 failed: Connection timed out

Solução: Adicionar o seu endereço IP às regras do firewall:

az postgres flexible-server firewall-rule create \
  --resource-group myresourcegroup \
  --name mydemoserver-pgsql \
  --rule-name AllowMyIP \
  --start-ip-address <your-ip> \
  --end-ip-address <your-ip>

SSL necessário mas não configurado

Certifique-se de que a sua cadeia de ligação inclui sslmode=require.

Limpeza de recursos

Quando terminares o início rápido, apaga os recursos para evitar custos.

Eliminar todo o grupo de recursos

az group delete --name myresourcegroup --yes

Apague apenas o servidor

az postgres flexible-server delete \
  --resource-group myresourcegroup \
  --name mydemoserver-pgsql \
  --yes