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, 13, 14 e 15 (padrão).

As atualizações de versão secundária são implantadas como parte da manutenção programada, 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 a funcionalidade 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, replicação e autenticação de dados

Onde meus dados são armazenados?

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, os backups serão armazenados na multirregião geograficamente mais próxima do local da 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 no centro 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.

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.

Como funciona o failover do Cloud SQL?

Para mais 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.

Voltar ao início

Migração de dados

Como os dados e as restrições são migrados para o Cloud SQL?
Durante o processo de migração, os dados são migrados primeiro e as restrições (por exemplo, chaves primárias, chaves estrangeiras e índices) são recriadas na instância posteriormente.
Como posso migrar meus dados mais rápido?
Agora é possível migrar dados nas tabelas do seu banco de dados em paralelo. Há uma melhoria de desempenho porque o Cloud SQL pode transferir os dados com processos paralelos dentro de um banco de dados. É possível definir a velocidade com que o Cloud SQL transfere esses dados para min, optimal ou max. Para mais informações, consulte Usar uma importação gerenciada para configurar a replicação de bancos de dados externos.
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 gcloud linha de comando. Para mais detalhes, consulte Como restaurar uma instância.

Para restaurar uma instância em um momento específico, use uma recuperação pontual. Para mais informações, consulte Usar a recuperação pontual.

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 replicar entre instâncias que não são do Google Cloud e do Google Cloud Pode replicar apenas entre instâncias do Cloud SQL
Migrar de/para o Google Cloud a fim de minimizar o tempo de inatividade ou proteger dados híbridos/em várias nuvens. Migrar dados entre regiões do Google Cloud 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

Gerenciamento das 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 a seção a seguir: 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. Os motivos para as instâncias levarem muito tempo para serem encerradas e reiniciadas podem ser os seguintes: quando o usuário tem muitas transações de gravação ou quando elas são executadas por muito tempo.

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. Se você estiver aumentando o número de vCPUs na instância principal do Cloud SQL Enterprise Plus, a alteração entrará em vigor com inatividade quase zero.

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?
É possível importar ou exportar um arquivo CSV para MySQL ou PostgreSQL. Para mais informações, consulte Como criar um arquivo CSV.

No momento, o CSV não é compatível com o Cloud SQL para SQL Server.

Preciso de uma conta do Cloud Storage para importar ou exportar dados para uma instância?
O Cloud SQL é compatível com importação e exportação de bancos de dados com arquivos CSV ou pg_dump. Para mais informações, consulte Como exportar e importar usando pg_dump e pg_restore ou Como exportar e importar usando arquivos CSV.
Se eu excluir minha instância, posso reutilizar o nome dela?
Sim.
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.

Como posso proteger minha instância contra exclusão acidental?
É possível ativar a proteção contra exclusão ao criar uma instância ou depois. Se essa configuração estiver ativada, será necessário desativá-la antes de excluir a instância. Consulte Impedir a exclusão de uma instância.
Voltar ao início

Insights

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. No entanto, quanto maior o tamanho da instância, maior a latência operacional. 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 se você tiver atingido o limite configurado, as futuras gravações no banco de dados serão desativadas até que você aumente 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 à equipe de Suporte de faturamento uma solicitação 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 aplicativo do 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 Cloud SQL. 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árias opções para armazenar, gerenciar e recuperar dados. Para mais informações, consulte Bancos de dados do Google Cloud.
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 ambiente padrão do App Engine é compatível com 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. É possível 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