Melhores práticas para importação e exportação
A seguir estão algumas práticas recomendadas a serem consideradas ao importar e exportar dados:
- Não use os buckets do Cloud Storage Requester Pays
- Minimize o impacto do desempenho das exportações
- Use os sinalizadores corretos ao criar um arquivo de despejo SQL
- Compacte dados para reduzir custos .
- Reduza os processos de importação e exportação demorados
- Verifique o banco de dados importado
Não use os buckets do Cloud Storage Requester Pays
Não é possível usar um bucket do Cloud Storage que tenha o Requester Pays habilitado para importações e exportações do Cloud SQL.
Minimize o impacto do desempenho das exportações
Para uma exportação padrão do Cloud SQL, a exportação é executada enquanto o banco de dados está online. Quando os dados exportados são menores, o impacto provavelmente é mínimo. No entanto, quando há bancos de dados grandes ou objetos grandes, como BLOBs, no banco de dados, existe a possibilidade de a exportação prejudicar o desempenho do banco de dados. Isso pode afetar o tempo necessário para executar consultas e operações no banco de dados. Após iniciar uma exportação, não será possível interrompê-la se o banco de dados começar a responder lentamente.
Para evitar respostas lentas durante uma exportação, você pode:
Exporte a partir de uma réplica de leitura. Esta pode ser uma boa opção se você exporta com frequência (diariamente ou com mais frequência), mas a quantidade de dados exportados é pequena. Para exportar a partir de uma réplica de leitura, use o comando Google Cloud Funções de exportação de console,
gcloud
ou API REST na sua instância de réplica de leitura. Consulte Criar réplicas de leitura para obter mais informações sobre como criar e gerenciar réplicas de leitura.Use a exportação sem servidor. Com a exportação sem servidor, o Cloud SQL cria uma instância temporária separada para descarregar a operação de exportação. Descarregar a operação de exportação permite que os bancos de dados na instância primária continuem a atender consultas e executar operações na taxa de desempenho normal. Quando a exportação de dados for concluída, a instância temporária será excluída automaticamente. Esta pode ser uma boa opção se você estiver exportando um banco de dados grande apenas uma vez. Use o Google Cloud Funções de exportação de console,
gcloud
ou REST API, com o sinalizadoroffload
, para executar uma operação de exportação sem servidor.Durante uma operação de exportação sem servidor, você pode executar outras operações, como edição de instância, importação e failover. No entanto, se você selecionar
Consulte a tabela a seguir para saber mais sobre as operações que podem ser bloqueadas enquanto uma operação de exportação sem servidor estiver em execução:delete
, a operação de exportação será interrompida algum tempo após a exclusão da instância e não exportará nenhum dado.Operação atual Nova operação Bloqueado? Qualquer operação Exportação sem servidor Sim Exportação sem servidor Qualquer operação, exceto exportação sem servidor Não Qualquer operação, exceto exportação sem servidor Qualquer operação, exceto exportação sem servidor Sim Uma exportação sem servidor leva mais tempo do que uma exportação padrão, pois leva tempo para criar a instância temporária. No mínimo, leva mais de cinco minutos, mas para bancos de dados maiores, pode levar mais tempo. Considere o impacto no tempo, no desempenho e no custo antes de determinar qual tipo de exportação usar.
Use os sinalizadores corretos ao criar um arquivo de despejo SQL
Se você não usar o procedimento correto ao exportar dados para um arquivo de despejo SQL, a importação poderá não ser bem-sucedida. Para obter informações sobre como criar um arquivo de despejo SQL para importação para o Cloud SQL, consulte Exportação de dados .
Compactar dados para reduzir custos
O Cloud SQL oferece suporte à importação e exportação de arquivos compactados e descompactados. A compactação pode economizar espaço de armazenamento significativo no Cloud Storage e reduzir seus custos de armazenamento, especialmente ao exportar instâncias grandes.
Ao exportar um dump SQL ou um arquivo CSV, use a extensão.gz
para compactar os dados. Ao importar um arquivo com a extensão .gz
, ele será descompactado automaticamente. Reduza os processos de importação e exportação demorados
Importações para o Cloud SQL e exportações a partir do Cloud SQL podem levar muito tempo para serem concluídas, dependendo do tamanho dos dados processados. Isso pode ter os seguintes impactos:
- Não é possível interromper uma operação de instância de longa execução do Cloud SQL.
- Você pode executar apenas uma operação de importação ou exportação por vez para cada instância, e uma importação ou exportação de longa duração bloqueia outras operações, como backups diários automatizados. Exportações sem servidor permitem que você execute outras operações, incluindo edição de instâncias, importação, failover e desbloqueio de backups diários automatizados.
Você pode diminuir o tempo necessário para concluir cada operação usando a funcionalidade de importação ou exportação do Cloud SQL com lotes menores de dados.
Para exportações, você pode executar a exportação de uma réplica de leitura ou usar a exportação sem servidor para minimizar o impacto no desempenho do banco de dados e permitir que outras operações sejam executadas na sua instância enquanto uma exportação estiver em execução.
Para obter mais dicas, consulte Diagnosticando problemas com instâncias do Cloud SQL .Verifique o banco de dados importado
Após a conclusão da operação de importação, conecte-se ao seu banco de dados e execute os comandos apropriados para garantir que o conteúdo esteja correto. Por exemplo, conecte e liste os bancos de dados, tabelas e entradas específicas.
Limitações conhecidas
Para obter uma lista de limitações conhecidas, consulte Problemas com importação e exportação de dados .
Automatizando operações de exportação
Embora o Cloud SQL não forneça uma maneira integrada de automatizar exportações de banco de dados, você pode criar sua própria ferramenta de automação usando vários Google Cloudcomponentes. Para saber mais, consulte este tutorial .
Solução de problemas
Solução de problemas de operações de importação
Emitir | Solução de problemas |
---|---|
Mensagem de erro: permission denied for schema public | Para as versões 15 e posteriores do PostgreSQL, se o banco de dados de destino for criado a partir do template0 , a importação de dados poderá falhar. Para resolver esse problema, conceda privilégios de esquema público ao usuário cloudsqlsuperuser executando o comando SQL GRANT ALL ON SCHEMA public TO cloudsqlsuperuser . |
HTTP Error 409: Operation failed because another operation was already in progress . | Já existe uma operação pendente para sua instância. Apenas uma operação é permitida por vez. Tente sua solicitação após a conclusão da operação atual. |
A operação de importação está demorando muito. | Muitas conexões ativas podem interferir nas operações de importação. Feche as operações não utilizadas. Verifique o uso de CPU e memória da sua instância do Cloud SQL para garantir que haja recursos suficientes disponíveis. A melhor maneira de garantir o máximo de recursos para a importação é reiniciar a instância antes de iniciar a operação. Um reinício:
|
Uma operação de importação pode falhar quando um ou mais usuários referenciados no arquivo de despejo não existem. | Antes de importar um arquivo de despejo, todos os usuários do banco de dados que possuem objetos ou receberam permissões sobre objetos no banco de dados de despejo devem existir no banco de dados de destino. Caso contrário, a operação de importação não conseguirá recriar os objetos com a propriedade ou as permissões originais. Crie os usuários do banco de dados antes de importar. |
Após importar os dados, o tamanho do uso do disco de dados é muito maior. | Pode haver um uso inesperado do disco após a importação de dados. Esse uso pode ser devido ao uso da recuperação pontual . Para resolver isso, após importar os dados, desative a recuperação pontual se desejar excluir logs e recuperar o armazenamento. Lembre-se de que diminuir o armazenamento usado não reduz o tamanho do armazenamento provisionado para a instância. |
Mensagem de erro: GRANT stderr: ERROR: must be member of role ROLE_NAME | Essa mensagem de erro aparece se você tentar importar um arquivo de despejo SQL carregado no Cloud Storage para um banco de dados Cloud SQL e o trabalho de importação tiver sido executado por cerca de quatro dias. ROLE_NAME é uma função de banco de dados personalizada definida no banco de dados PostgreSQL de origem. O usuário padrão Para resolver esse problema, siga estas etapas:
|
Solução de problemas em operações de exportação
Emitir | Solução de problemas |
---|---|
HTTP Error 409: Operation failed because another operation was already in progress. | Já existe uma operação pendente para sua instância. Apenas uma operação é permitida por vez. Tente sua solicitação após a conclusão da operação atual. |
HTTP Error 403: The service account does not have the required permissions for the bucket. | Verifique se o bucket existe e se a conta de serviço da instância do Cloud SQL (que está realizando a exportação) tem a função Storage Object Creator ( roles/storage.objectCreator ) para permitir a exportação para o bucket. Consulte Funções do IAM para o Cloud Storage . |
A exportação CSV funcionou, mas a exportação SQL falhou. | Os formatos CSV e SQL exportam de forma diferente. O formato SQL exporta o banco de dados inteiro e provavelmente leva mais tempo para ser concluído. O formato CSV permite definir quais elementos do banco de dados serão incluídos na exportação. Use exportações CSV para exportar apenas o que você precisa. |
A exportação está demorando muito. | O Cloud SQL não oferece suporte a operações síncronas simultâneas. Use o descarregamento de exportação . Em um nível mais alto, no descarregamento de exportação, em vez de emitir uma exportação na instância de origem, o Cloud SQL inicia uma instância de descarregamento para executar a exportação. O descarregamento de exportação tem várias vantagens, incluindo maior desempenho na instância de origem e o desbloqueio de operações administrativas enquanto a exportação está em execução. Com o descarregamento de exportação, a latência total pode aumentar de acordo com o tempo necessário para ativar a instância de descarregamento. Geralmente, para exportações de tamanho razoável, a latência não é significativa. No entanto, se a sua exportação for pequena o suficiente, você poderá notar um aumento na latência. |
Erro ao criar extensão. | O arquivo de despejo contém referências a uma extensão não suportada. |
Erro ao usar pg_dumpall . | O uso do utilitário pg_dumpall com o sinalizador --global requer a função de superusuário, mas essa função não é compatível com o Cloud SQL para PostgreSQL. Para evitar erros ao executar operações de exportação que incluem nomes de usuário, use também o sinalizador --no-role-passwords . |
A operação de exportação expira antes de exportar qualquer coisa, e você vê a mensagem de erro Could not receive data from client: Connection reset by peer. | Se o Cloud Storage não receber dados dentro de um determinado período, normalmente em torno de sete minutos, a conexão será redefinida. É possível que a consulta de exportação inicial esteja demorando muito para ser executada. Faça uma exportação manual usando a ferramenta |
Você quer que as exportações sejam automatizadas. | O Cloud SQL não fornece uma maneira de automatizar exportações. Você pode construir seu próprio sistema de exportação automatizado usando Google Cloudprodutos como Cloud Scheduler, Pub/Sub e funções do Cloud Run, semelhantes a este artigo sobre automação de backups . |
O que vem a seguir
- Aprenda como importar e exportar dados usando arquivos de despejo PG .
- Aprenda como importar e exportar dados usando arquivos CSV .
- Aprenda como habilitar backups automáticos .
- Aprenda como restaurar a partir de backups .