Faça a gestão de bases de dados

A GDC Sandbox fornece o serviço de base de dados para testar e gerir clusters de bases de dados.

Criar base de dados

Para criar e gerir um cluster de base de dados, consulte o artigo Crie e faça a gestão de um cluster de base de dados.

Motores de base de dados disponíveis

A área de testes do GDC suporta apenas o PostgreSQL e o AlloyDB.

Use a consola do GDC ou a CLI do Distributed Cloud para criar clusters de base de dados:

Consola

  1. No menu principal, escolha Serviço de base de dados.
  2. Clique em Criar cluster de base de dados.
  3. Na caixa de diálogo Escolha um motor de base de dados, escolha um motor de base de dados.

  4. Na caixa de diálogo Configure o cluster, especifique o ID do cluster, a palavra-passe e a versão da base de dados. Pode ativar as cópias de segurança e configurar o período de retenção das cópias de segurança.

  5. Na caixa de diálogo Configure a sua instância principal, especifique a CPU, a memória e a capacidade de armazenamento do cluster da base de dados. Recomendamos que escolha memória suficiente para armazenar a sua maior tabela.

  6. Clique em Criar. A criação do cluster de base de dados pode demorar alguns minutos. Verifique o estado do cluster na página Vista geral do cluster. O estado é alterado de A criar para Pronto quando o cluster está pronto.

gdcloud

  1. Antes de usar a Distributed Cloud CLI, instale-a e inicialize-a. Em seguida, faça a autenticação com a sua organização.

  2. Execute o seguinte comando para criar um cluster de base de dados:

    gdcloud database clusters create CLUSTER_NAME \
        --database-version DB_VERSION \
        --admin-password ADMIN_PASSWORD
    

    Substitua as seguintes variáveis:

    • CLUSTER_NAME com o nome do novo cluster.
    • DB_VERSION com a string da versão do novo cluster. Por exemplo, POSTGRESQL_13 ou ALLOYDBOMNI_15
    • ADMIN_PASSWORD com a palavra-passe de administrador para o novo cluster.
  3. Para mais informações sobre a configuração dos recursos de CPU, memória e armazenamento para o cluster de base de dados, a configuração da cópia de segurança, a ativação da elevada disponibilidade e outras opções disponíveis, execute o seguinte comando:

    gdcloud database clusters create --help
    

API

  1. Crie um ficheiro db-cluster-create.yaml com conteúdo

    apiVersion: v1
    kind: Secret
    metadata:
      name: db-pw-DBCLUSTER_NAME
      namespace: USER_PROJECT
    type: Opaque
    data:
      DBCLUSTER_NAME: "BASE64_PASSWORD"
    ---
    apiVersion: DBENGINE_NAME.dbadmin.gdc.goog/v1
    kind: DBCluster
    metadata:
      name: DBCLUSTER_NAME
      namespace: USER_PROJECT
    spec:
      primarySpec:
        adminUser:
          passwordRef:
            name: db-pw-DBCLUSTER_NAME
        version: "DB_VERSION"
        resources:
          memory: DB_MEMORY
          cpu: DB_CPU
          disks:
          - name: DataDisk
            size: DB_DATA_DISK
    

    Substitua as seguintes variáveis:

    • DBCLUSTER_NAME, o nome do cluster da base de dados.
    • USER_PROJECT, o nome do projeto do utilizador onde o cluster da base de dados vai ser criado.
    • BASE64_PASSWORD, a codificação base64 da palavra-passe do administrador da base de dados.
    • DBENGINE_NAME, o nome do motor da base de dados. Esta é uma das opções alloydbomni ou postgresql.
    • DB_VERSION, a versão do motor da base de dados.
    • DB_MEMORY, a quantidade de memória alocada ao cluster de BD, por exemplo, 5Gi.
    • DB_CPU, a quantidade de CPUs atribuídas ao cluster de BD, por exemplo, 2.
    • DB_DATA_DISK, quantidade de espaço atribuído ao cluster de BD, por exemplo, 10 Gi.
  2. kubectl --kubeconfig MANAGEMENT_API apply -f db-cluster-create.yaml
    

Associe à base de dados

Por predefinição, um cluster de base de dados só permite a ligação a partir do cluster de utilizadores e do mesmo projeto.

Para ativar ligações a todos os clusters de bases de dados no seu projeto a partir de outro projeto, consulte o artigo Ative ligações entre projetos.

Para estabelecer ligação à base de dados a partir de endereços IP fora da sua organização do GDC Sandbox, siga as instruções em Estabeleça ligação a um cluster de base de dados para ativar as ligações externas.

Pode usar o sshuttle para se ligar à sua base de dados com um cliente de base de dados local, como o psql:

  1. Navegue para a secção Conetividade da página Serviço de base de dados para o cluster de base de dados. Esta página inclui:

    • A palavra-passe da conta de administrador (o nome de utilizador é dbsadmin)
    • Nome do anfitrião e número da porta do ponto final principal do cluster da base de dados
    • Um comando psql para estabelecer ligação ao cluster (para clusters de base de dados do PostgreSQL e do AlloyDB Omni)
    • Um link para transferir o certificado da autoridade de certificação (AC) do cluster de base de dados
  2. Transfira o certificado da AC a partir da consola do GDC na secção Conetividade da página Serviço de base de dados para o seu cluster de base de dados.

  3. Configure o cliente para usar o certificado da AC para validar a base de dados. Para clientes psql, defina a variável de ambiente PGSSLROOTCERT para o caminho do ficheiro de certificado e a variável de ambiente PGSSLMODE para a sua preferência:

        export PGSSLROOTCERT=path/to/accounts_cert.pem
        export PGSSLMODE="verify-full"
    
  4. Inicie um túnel seguro. Se tiver uma instância do sshuttle em execução, conforme descrito em Estabeleça ligação à sua instância, termine esse processo.

        sshuttle -r zone1-org-1-data@GDC_SANDBOX_INSTANCE_NAME --no-latency-control \
        --ssh-cmd 'gcloud compute ssh --project PROJECT_NAME --zone ZONE --tunnel-through-iap' \
        10.200.0.0/16 --dns
    

    Substitua o seguinte pelos valores que lhe foram fornecidos pela equipa da área de testes do GDC:

    • GDC_SANDBOX_INSTANCE_NAME: o nome da sua instância do GDC Sandbox.
    • PROJECT_NAME: o projeto que contém o seu ambiente de sandbox da GDC.
    • ZONE: a zona que contém o seu ambiente de sandbox do GDC.
  5. Enquanto o túnel estiver ativo, execute o comando com psql num terminal diferente

        PGPASSWORD=DB_PASSWORD psql -h DB_HOSTNAME -p PORT -U USERNAME -d postgres
    

    Substitua as seguintes variáveis:

    • DB_PASSWORD: a palavra-passe da IU da consola.
    • DB_HOSTNAME: o nome do anfitrião da base de dados a partir da consola.
    • DB_PORT: o número da porta da base de dados da consola.
    • DB_USERNAME: o nome de utilizador da base de dados da consola.