Perguntas frequentes do Cloud SQL para PostgreSQL

Sobre

O que é o Cloud SQL?
O Cloud SQL é um serviço que oferece bancos de dados SQL totalmente gerenciados na nuvem. Ele fornece bancos de dados do PostgreSQL, SQL Server e MySQL.
Quais são os benefícios de usar o Cloud SQL?
O Cloud SQL permite delegar ao Google tarefas rotineiras, mas necessárias e muitas vezes demoradas (como aplicar patches e atualizações, gerenciar backups e configurar replicações), para você se concentrar na criação de aplicativos incríveis. Como usamos protocolos padrão de transferência, é possível se conectar de praticamente qualquer aplicativo, em qualquer lugar.
Quais versões do banco de dados estão disponíveis com o Cloud SQL? Como as atualizações são gerenciadas?

O Cloud SQL para PostgreSQL é compatível com o PostgreSQL 9.6, 10, 11, 12 e 13 (padrão). As atualizações de versão secundárias são implantadas logo após o lançamento, sem que você precise fazer nada. Para mais informações sobre atualizações, consulte Visão geral da manutenção em instâncias do Cloud SQL.

Para saber a versão atual da instância, acesse o Console do Google Cloud e clique no nome dela para abrir a página Detalhes da instância. Se preferir, use o comando gcloud sql instances describe.

O Cloud SQL é compatível com todos os recursos de banco de dados?
O Cloud SQL é compatível com os recursos mais comuns do PostgreSQL. Para uma lista de todas as diferenças entre o PostgreSQL padrão e a funcionalidade oferecida pelo Cloud SQL, consulte Diferenças entre as funcionalidades do Cloud SQL e do PostgreSQL padrão.
Há limite de tamanho ou QPS?
Não há limite de consultas por segundo (QPS) para instâncias do Cloud SQL. Para informações sobre conexão, tamanho e limites específicos do App Engine, consulte Cotas e limites.
Como posso receber notificações quando houver alterações no Cloud SQL?
Inscreva-se no fórum google-cloud-sql-announce (em inglês), onde postamos anúncios e notícias sobre o Cloud SQL.
Como informo um bug, solicito um recurso ou faço uma pergunta?
Relate bugs e solicite recursos no grupo google-cloud-sql-discuss. Também é possível fazer perguntas no Stack Overflow (em inglês). Para outras opções de suporte, consulte a página Suporte do Cloud SQL.
Voltar ao início

Primeiros passos

Por que minha nova instância sem dados mostra espaço usado em disco?
O Cloud SQL e o banco de dados usam algum espaço para arquivos de sistema e metadados quando a instância é criada.
Voltar ao início

Armazenamento e replicação de dados

Onde meus dados são armazenados?

Instâncias do PostgreSQL: os dados da instância são armazenados na região em que a instância reside. Se um local de armazenamento não for especificado, seus backups serão armazenados na multirregião geograficamente mais próxima do local da sua instância do Cloud SQL. Por exemplo, se a sua instância do Cloud SQL estiver em us-central1, seus backups serão armazenados na multirregião us por padrão. No entanto, um local padrão, como australia-southeast1, estará fora de uma multirregião. A multirregião mais próxima é asia.

O que é uma zona?

Uma zona é uma entidade independente em uma localização geográfica específica em que você pode executar seus recursos. Por exemplo, uma zona chamada us-central1-a indica um local na região central dos Estados Unidos.

Para mais informações sobre zonas, consulte Recursos da zona na documentação do Compute Engine.

Quais os limites de armazenamento?
Para informações sobre limites de armazenamento, consulte Cotas e limites.
Como meus dados são replicados?

As instâncias do PostgreSQL oferecem uma configuração de alta disponibilidade e réplicas de leitura.

Como funciona o failover do Cloud SQL?

Para ver informações sobre failover, consulte Visão geral da configuração de alta disponibilidade.

Meus dados são criptografados?
Os dados dos clientes do Cloud SQL são criptografados quando armazenados em tabelas de banco de dados, arquivos temporários e backups. É possível criptografar conexões externas usando SSL ou o proxy do Cloud SQL Auth.
Como a criptografia é gerenciada para dados em repouso?

Os dados são criptografados com o uso do padrão avançado de criptografia de 256 bits (AES-256, na sigla em inglês) ou superior, com chaves simétricas. Ou seja, a mesma chave é usada para criptografar os dados quando armazenados e para descriptografá-los quando usados. Essas chaves de dados também são criptografadas usando uma chave armazenada em um keystore seguro e alteradas regularmente.

Para mais detalhes, consulte Criptografia em repouso no Google Cloud.

Como a criptografia é gerenciada para dados em trânsito?

O Google criptografa e autentica todos os dados em trânsito em uma ou mais camadas de rede quando transferidos para outros limites físicos não controlados pelo Google ou em nome dele. Os dados em trânsito dentro de um limite físico controlado pelo Google ou em nome dele costumam ser autenticados, mas não necessariamente criptografados por padrão. Se você estiver se conectando a uma instância usando o endereço IP público dela, utilize os certificados SSL/TLS para proteger os dados durante a transmissão. Escolha quais medidas de segurança adicionais serão aplicadas com base no seu modelo de ameaça. Por exemplo, configure o SSL para conexões entre zonas ao Cloud SQL.

Para mais detalhes, consulte Criptografia em trânsito no Google Cloud.

Que tipo de réplicas de leitura posso criar?

Para mais informações sobre réplicas de leitura, inclusive casos de uso para cada tipo, consulte Opções de replicação.

Voltar ao início

Backup e recuperação

Como recupero uma instância?

Para restaurar um backup, use o Console do Google Cloud ou a ferramenta de linha de comando gcloud. Para mais detalhes, consulte Como restaurar uma instância.

Quanto custam os backups?

Os backups são cobrados de acordo com a taxa de armazenamento da instância.

Para mais informações sobre os preços de armazenamento e as taxas da instância, consulte Preços.

Posso acessar backups automatizados com mais de sete dias?

Os backups automáticos ocorrem todos os dias e, por padrão, são mantidos por sete dias. É possível configurar o valor de retenção de backup de um para 365 backups. No final do período de armazenamento, o backup mais antigo é excluído. Os backups automatizados são incrementais. Eles contêm apenas dados que foram alterados após o backup anterior. O backup mais antigo tem tamanho semelhante ao do banco de dados. Ao excluir o backup mais antigo, o tamanho do segundo mais antigo aumenta para que você ainda tenha um backup completo.

Os backups sob demanda não serão excluídos até que você os remova manualmente.

Quando usar a replicação externa e quando usar a replicação entre regiões para proteção regional contra falhas?
Replicação externa Replicação entre regiões
Autogerenciada pelo cliente Réplica entre regiões gerenciada pelo Cloud SQL
Pode realizar a replicação entre instâncias que são do GCP e entre as que não são Pode realizar replicação apenas entre instâncias do Cloud SQL do GCP
Visa realizar migração proveniente ou destinada ao GCP para minimizar o tempo de inatividade ou proteger dados híbridos/em várias nuvens Visa migrar dados entre regiões do GCP para minimizar a inatividade
Compatível com replicação de versão principal Incompatível com replicação de versão principal
Voltar ao início

Como gerenciar instâncias

Quais ações podem causar o reinício de instâncias do Cloud SQL?
As instâncias do Cloud SQL podem ser reiniciadas quando você ou o Cloud SQL realiza as seguintes ações:
  • Atualização
  • Criação
  • Promoção de réplica
  • Manutenção
  • Recriação de réplica
  • Failover
  • Reinicialização
  • Restauração da instância a partir do backup
  • Ativação da alta disponibilidade em uma instância atual (esta é uma atualização da instância)
  • Adição de uma sinalização de banco de dados que requer uma reinicialização

A reinicialização de uma instância não altera os endereços IP públicos ou privados da instância.

Consulte Por quanto tempo as instâncias são desligadas durante a reinicialização?

Por quanto tempo as instâncias são desligadas durante a reinicialização?

Quando as instâncias são reiniciadas, a maioria delas é desligada por um ou dois minutos. Antes do desligamento da instância, todas as conexões são eliminadas e o trabalho atual é apagado do disco. Para instâncias com uma carga grande, esse processo leva mais tempo e pode parecer que a instância está paralisada. Nesses casos, pode levar até uma hora para que a instância seja desligada e reiniciada.

Posso aumentar ou diminuir meu banco de dados?

Você pode aumentar a quantidade de armazenamento disponível ra sua instância a qualquer momento sem incorrer em tempo de inatividade. Não é possível diminuir o tamanho do armazenamento da instância. Também é possível configurar sua instância para aumentar automaticamente a capacidade de armazenamento dela quando estiver com pouco espaço. Saiba mais.

Posso fazer upgrade e downgrade de vCPUs?

Sim, é possível alterar o número de vCPUs usadas na instância. É possível aumentar ou diminuir o número de núcleos que você usa quantas vezes quiser. Normalmente, leva menos de cinco minutos de inatividade para alterar o número de vCPUs.

Preciso usar o Console do Google Cloud para gerenciar o Cloud SQL?
Não. Todas as tarefas de gerenciamento que podem ser realizadas usando o Console também podem ser realizadas de maneira programática, usando a API Cloud SQL Admin, ou com script, usando a ferramenta de linha de comando gcloud.
Como recuperar o espaço usado por arquivos temporários?
Os arquivos temporários podem aumentar quando as consultas SQL criam muitas tabelas temporárias. Para recuperar o espaço usado por tabelas temporárias, você precisa reiniciar o banco de dados. A reinicialização do banco de dados não reduz o espaço em disco provisionado resultante do crescimento de arquivos temporários.
Posso importar ou exportar um banco de dados específico?
Sim. Apenas um banco de dados específico pode ser importado ou exportado. Não é possível exportar mais de um banco de dados por vez. Para mais informações, consulte Como importar dados ou Como exportar dados.
Posso importar ou exportar um arquivo CSV?
Sim, é possível importar ou exportar um arquivo CSV. Para mais informações, consulte Como criar um arquivo CSV.
Preciso de uma conta do Cloud Storage para importar ou exportar dados para uma instância?
O Cloud SQL faz importação e exportação de bancos de dados (arquivos dump SQL compactados ou não) usando um bucket do Cloud Storage. Para importar ou exportar usando um bucket do Cloud Storage, inscreva-se em uma conta do Google Cloud e crie um bucket ou consiga acesso a um bucket do Cloud Storage em outra conta. Para mais informações, consulte Como importar dados ou Como exportar dados.
Se eu excluir minha instância, poderei reutilizar o nome dela?
Sim, mas não imediatamente. O nome da instância fica indisponível por até uma semana antes de poder ser reutilizado.
Quem é o usuário de banco de dados cloudsqladmin?
Cada instância do Cloud SQL inclui um usuário de banco de dados denominado cloudsqladmin. Talvez você perceba esse usuário ao executar SHOW GRANTS FOR cloudsqladmin@localhost. Em algumas instâncias, ele também será exibido na tabela de usuários do sistema. Essa conta de usuário é usada por processos automatizados que precisam acessar os dados na instância. Por exemplo, para fazer o backup da instância ou realizar uma importação/exportação.
Que nível de isolamento de transação o Cloud SQL oferece?

Instâncias do PostgreSQL: o Cloud SQL oferece isolamento da transação Read committed. É possível alterar o nível de isolamento de uma transação específica, mas, em geral, o valor padrão é preferível. Para mais informações, consulte Isolamento da transação (em inglês) na documentação do PostgreSQL.

Por que não consigo encontrar o plano de consulta de amostra no Insights?
Temos consultas de amostra apenas para conseguir o plano de consultas. Fazemos as coisas dessa forma por causa do impacto que o plano pode ter sobre a consulta. Como resultado, às vezes os planos de consultas de amostra não aparecem.
Voltar ao início

Preços e faturamento

Como posso testar o Cloud SQL?
A menor instância é a db-f1-micro. É possível usá-la para testar o serviço. Observe que o SLA não cobre as instâncias de núcleo compartilhado.
Quantas instâncias posso criar em um projeto?
Para informações sobre o limite de instâncias, consulte Cotas e limites..
Preciso de que tamanho de instância de banco de dados? De quanta memória RAM eu preciso?
Em geral, é possível melhorar o desempenho do banco de dados escolhendo uma instância maior com mais RAM e CPU. Isso melhora o desempenho de muitas consultas com uso intensivo de computação, como as que envolvem mesclagens, classificações ou agrupamentos, embora o desempenho das atualizações que influenciam linhas individuais não seja muito afetado. Para mais informações sobre tamanhos e preços de instâncias, consulte a página de preços.
Como o uso da minha instância é calculado?

A cobrança é feita por minuto enquanto a instância está ativa.

Como o armazenamento é calculado?
O armazenamento é calculado com base no volume de armazenamento que você provisionou para sua instância. O armazenamento de backups é cobrado pelo espaço utilizado por eles. O armazenamento é cobrado com a instância ativa ou inativa.
Como posso saber o valor da cobrança?
Na guia Faturamento do Console do Google Cloud, são mostradas as cobranças das instâncias desde a emissão da última fatura.
O que acontece quando minha instância atinge o tamanho permitido?

Se a instância atingir o tamanho de armazenamento provisionado e o aumento automático de armazenamento não estiver ativado, ou o limite de aumento configurado foi atingido, as futuras gravações no banco de dados serão bloqueadas até você aumentar o tamanho do armazenamento. Esse aumento não requer reinicialização da instância ou inatividade.

Por que minha instância foi suspensa?
Isso provavelmente ocorre devido a um problema na conta do Google Cloud. Envie uma solicitação à equipe de suporte de faturamento para determinar o status de faturamento. Depois que o problema de faturamento for resolvido, a instância retornará ao status executável dentro de algumas horas. As instâncias suspensas do MySQL são excluídas após 90 dias.
Por que minha instância foi excluída?
Instâncias suspensas por 90 dias são excluídas. Isso ocorre com instâncias no estado SUSPENDED. As instâncias interrompidas, com estado RUNNABLE, não são excluídas.
Como cancelar minha conta do Cloud SQL?
Se você quiser desativar o Cloud SQL em um projeto, acesse o Console do Google Cloud e selecione o projeto e o serviço da API para abrir o Painel de APIs. Encontre a API Cloud SQL e clique em Desativar para essa API.
Como desativar o faturamento?
Para desativar o faturamento em um projeto, clique em Desativar faturamento no painel Faturamento e configurações do Console do Google Cloud. Se desativar o faturamento, você também desativará o serviço Cloud SQL. Certifique-se de que realmente quer desativar o serviço Cloud SQL antes de desativar o faturamento.

Depois de desativar o faturamento, você receberá uma última fatura referente às cobranças realizadas entre o início do ciclo de faturamento e o momento do cancelamento.

Voltar ao início

Como usar o Cloud SQL com o App Engine

Posso me conectar a uma instância do PostgreSQL pelo App Engine?
É possível se conectar a uma instância do PostgreSQL por um aplicativo do App Engine dependendo do ambiente e da linguagem que estiver usando. Para mais informações, consulte Como se conectar pelo ambiente padrão do App Engine ou Como se conectar pelo ambiente flexível do App Engine.
O App Engine nos EUA pode acessar uma instância do Cloud SQL na Europa (e vice-versa)?

Seu aplicativo do App Engine não precisa estar na mesma região para que você se conecte a uma instância do PostgreSQL. No entanto, uma distância maior entre a instância do Cloud SQL e o aplicativo do App Engine causa latência maior em conexões com o banco de dados.

Qual serviço de banco de dados do Google Cloud é ideal para mim?
Depende dos requisitos do aplicativo. O Google Cloud oferece vários serviços para armazenar e recuperar dados. Para mais informações, consulte Opções de armazenamento.
Preciso instalar um servidor de banco de dados local para usar o servidor de desenvolvimento do App Engine?
Não. Configure o App Engine para usar o Cloud SQL ou um servidor de banco de dados instalado localmente durante a execução no servidor de desenvolvimento.
Que linguagens posso usar para acessar minha instância?
O App Engine aceita várias linguagens usadas para se conectar às instâncias. Para mais informações, consulte Como se conectar pelo ambiente padrão do App Engine ou Como se conectar pelo ambiente flexível do App Engine.

Se você não estiver usando o App Engine, poderá usar qualquer linguagem que tenha uma API ou conector associado.

Posso usar o Django com o Cloud SQL?
Sim, o Cloud SQL é compatível com o Django. Consulte Primeiros passos com o Django.
Quais marcadores posso usar na string de consulta do Python?
Os usuários do Python só podem usar o código de formato %s na substituição de parâmetro. Portanto, a seguinte instrução é inválida: cursor.execute('INSERT INTO entries (guestAge) VALUES (%d)', (age)).
Como faço para gerenciar as conexões?

Gerenciar suas conexões de banco de dados com eficiência é um aspecto importante do desenvolvimento de aplicativos de banco de dados, incluindo o uso de pool de conexões e a espera exponencial. Para exemplos de como empregar essas técnicas em várias linguagens e estruturas, consulte Como gerenciar conexões com o banco de dados.

Para saber mais sobre limites de conexão de instâncias, consulte Cotas e limites.

O que significa SQLException com a mensagem "ID de conexão inválido"?
Isso significa que a conexão não está mais aberta no servidor e foi descartada pelo cliente.  Você não precisa chamar o fechamento ("close") nessas conexões. Elas já estão fechadas.
Posso acessar minha instância do Cloud SQL de maneira programática fora do App Engine?
Sim. Você pode acessar instâncias do Cloud SQL de maneira programática em aplicativos externos usando qualquer linguagem compatível. Consulte Visão geral da conexão.
Voltar ao início