Práticas recomendadas para importação e exportação
Seguem-se as práticas recomendadas a considerar quando importa e exporta dados:
- Não use contentores do Cloud Storage Requester Pays
- Minimize o impacto no desempenho das exportações
- Use as flags corretas quando criar um ficheiro de despejo SQL
- Comprima os dados para reduzir os custos.
- Reduza os processos de importação e exportação de longa duração
- Valide a base de dados importada
Não use contentores do Cloud Storage Requester Pays
Não pode usar um contentor do Cloud Storage com a opção O requerente paga ativada para importações e exportações do Cloud SQL.
Minimize o impacto no desempenho das exportações
Para uma exportação padrão do Cloud SQL, a exportação é executada enquanto a base de dados está online. Quando os dados exportados são mais pequenos, é provável que o impacto seja mínimo. No entanto, quando existem bases de dados grandes ou objetos grandes, como BLOBs na base de dados, existe a possibilidade de a exportação degradar o desempenho da base de dados. Isto pode afetar o tempo necessário para executar consultas e operações na base de dados. Depois de iniciar uma exportação, não é possível pará-la se a base de dados começar a responder lentamente.
Para evitar respostas lentas durante uma exportação, pode:
Fazer a exportação a partir de uma réplica de leitura. Esta pode ser uma boa opção se fizer exportações com frequência (diariamente ou mais vezes), mas a quantidade de dados exportados for pequena. Para fazer uma exportação a partir de uma réplica de leitura, use as funções de exportação da Google Cloud consola
gcloud
ou da API REST na instância da réplica de leitura. Consulte o artigo Crie réplicas de leitura para mais informações sobre como criar e gerir 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. A descarga da operação de exportação permite que as bases de dados na instância principal continuem a servir consultas e realizar operações à taxa de desempenho habitual. Quando a exportação de dados estiver concluída, a instância temporária é eliminada automaticamente. Esta pode ser uma boa opção se estiver a fazer uma exportação única de uma grande base de dados. Use a Google Cloud consola
gcloud
ou as funções de exportação da API REST, com a flagoffload
, para executar uma operação de exportação sem servidor.Durante uma operação de exportação sem servidor, pode executar outras operações, como a edição, a importação e a comutação por falha de instâncias. No entanto, se selecionar
Consulte a tabela seguinte para saber mais sobre as operações que podem ser bloqueadas enquanto uma operação de exportação sem servidor está em execução:delete
, a operação de exportação é interrompida algum tempo depois de eliminar a instância e não exporta dados.Operação atual Nova operação Bloqueado? Qualquer operação Exportação sem servidor Sim Exportação sem servidor Qualquer operação, exceto a exportação sem servidor Não Qualquer operação, exceto a exportação sem servidor Qualquer operação, exceto a exportação sem servidor Sim Uma exportação sem servidor demora mais tempo do que uma exportação padrão, porque demora tempo a criar a instância temporária. No mínimo, demora mais de cinco minutos, mas pode demorar mais tempo para bases de dados maiores. Considere o impacto no tempo, no desempenho e no custo antes de determinar que tipo de exportação usar.
Use as flags corretas quando criar um ficheiro de captura SQL
Se não usar o procedimento correto quando exporta dados para um ficheiro de despejo SQL, a importação pode não ser bem-sucedida. Para obter informações sobre como criar um ficheiro de despejo de SQL para importação para o Cloud SQL, consulte o artigo Exportar dados.
Comprima os dados para reduzir os custos
O Cloud SQL suporta a importação e a exportação de ficheiros comprimidos e não comprimidos. A compressão pode poupar um espaço de armazenamento significativo no Cloud Storage e reduzir os custos de armazenamento, especialmente quando exporta instâncias grandes.
Quando exporta um despejo SQL ou um ficheiro CSV, use uma.gz
extensão de ficheiro para comprimir os dados. Quando importa um ficheiro com uma extensão .gz
, este é descomprimido automaticamente.
Reduza os processos de importação e exportação de longa duração
As importações para o Cloud SQL e as exportações do Cloud SQL podem demorar muito tempo a serem concluídas, dependendo do tamanho dos dados que estão a ser processados. Isto pode ter os seguintes impactos:
- Não pode parar uma operação de instância do Cloud SQL de execução prolongada.
- Só pode realizar uma operação de importação ou exportação de cada vez para cada instância, e uma importação ou exportação de longa duração bloqueia outras operações, como as cópias de segurança automáticas diárias. As exportações sem servidor permitem-lhe executar outras operações, incluindo a edição de instâncias, a importação, a comutação por falha e o desbloqueio de cópias de segurança automáticas diárias.
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 de dados mais pequenos.
Para exportações, pode efetuá-las a partir de uma réplica de leitura ou usar a exportação sem servidor para minimizar o impacto no desempenho da base de dados e permitir que outras operações sejam executadas na sua instância enquanto uma exportação está em execução.
Para mais sugestões, consulte o artigo Diagnosticar problemas com instâncias do Cloud SQL.Valide a base de dados importada
Após a conclusão de uma operação de importação, estabeleça ligação à sua base de dados e execute os comandos de base de dados adequados para se certificar de que o conteúdo está correto. Por exemplo, associe e liste as bases de dados, as tabelas e as entradas específicas.
Limitações conhecidas
Para ver uma lista de limitações conhecidas, consulte o artigo Problemas com a importação e exportação de dados.
Automatizar operações de exportação
Embora o Cloud SQL não ofereça uma forma integrada de automatizar as exportações da base de dados, pode criar a sua própria ferramenta de automatização com vários Google Cloud componentes. Para saber mais, consulte este tutorial.
Resolução de problemas
Resolução de problemas de operações de importação
Problema | Resolução de problemas |
---|---|
Mensagem de erro: permission denied for schema public |
Para as versões 15 e posteriores do PostgreSQL, se a base de dados de destino for criada a partir do template0 , a importação de dados pode falhar. Para resolver este problema, conceda privilégios de esquema público ao utilizador 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 a sua instância. Só é permitida uma operação de cada vez. Experimente fazer o pedido depois de a operação atual estar concluída. |
A operação de importação está a demorar demasiado tempo. | Demasiadas associações ativas podem interferir com as operações de importação.
Feche operações não usadas. Verifique a utilização de memória e CPU da sua instância do Cloud SQL para se certificar de que existem muitos recursos disponíveis. A melhor forma de garantir o máximo de recursos para a importação é reiniciar a instância antes de começar a operação. Um reinício:
|
Uma operação de importação pode falhar quando um ou mais utilizadores referenciados no ficheiro de captura não existem. | Antes de importar um ficheiro de captura, todos os utilizadores de bases de dados que tenham objetos, ou aos quais foram concedidas autorizações relativamente a objetos na base de dados capturada, têm de existir na base de dados de destino. Caso contrário, a operação de importação não consegue recriar os objetos com a propriedade ou as autorizações originais.
Crie os utilizadores da base de dados antes da importação. |
Após a importação de dados, o tamanho da utilização do disco de dados é muito superior. | Pode haver uma utilização inesperada do disco após a importação de dados. Esta utilização pode dever-se à utilização da recuperação num determinado momento. Para resolver este problema, depois de importar dados, desative a recuperação num determinado momento se quiser eliminar registos e recuperar armazenamento. Tenha em atenção que a diminuição do armazenamento usado não reduz o tamanho do armazenamento aprovisionado para a instância. |
Mensagem de erro: GRANT stderr: ERROR: must be member of role ROLE_NAME |
Esta mensagem de erro é apresentada se tentar importar um ficheiro de despejo SQL carregado no Cloud Storage para uma base de dados do Cloud SQL e a tarefa de importação tiver sido executada durante cerca de quatro dias. ROLE_NAME é uma função de base de dados personalizada definida na base de dados PostgreSQL de origem. O utilizador Para resolver este problema, conclua os seguintes passos:
|
Resolução de problemas de operações de exportação
Problema | Resolução de problemas |
---|---|
HTTP Error 409: Operation failed because another operation was
already in progress. |
Já existe uma operação pendente para a sua instância. Só é permitida uma operação de cada vez. Experimente fazer o pedido depois de a operação atual estar concluída. |
HTTP Error 403: The service account does not have the required
permissions for the bucket. |
Certifique-se de que o contentor existe e que a conta de serviço da instância do Cloud SQL (que está a fazer a exportação) tem a função Storage Object Creator (roles/storage.objectCreator ) para permitir a exportação para o contentor. Consulte as
funções de IAM para o Cloud Storage. |
A exportação de CSV funcionou, mas a exportação de SQL falhou. | Os formatos CSV e SQL são exportados de forma diferente. O formato SQL exporta toda a base de dados e, provavelmente, demora mais tempo a ser concluído. O formato CSV permite-lhe definir que elementos da base de dados incluir na exportação.
Use exportações de CSV para exportar apenas o que precisa. |
A exportação está a demorar demasiado tempo. | O Cloud SQL não suporta operações síncronas simultâneas.
Use a transferência de exportação. A um nível elevado, na descarga de exportação, em vez de emitir uma exportação na instância de origem, o Cloud SQL inicia uma instância de descarga para realizar a exportação. A transferência da exportação tem várias vantagens, incluindo um aumento do desempenho na instância de origem e o desbloqueio de operações administrativas enquanto a exportação está em execução. Com a transferência da exportação, a latência total pode aumentar pela quantidade de tempo que demora a apresentar a instância de transferência. Geralmente, para exportações de tamanho razoável, a latência não é significativa. No entanto, se a exportação for suficientemente pequena, pode notar o aumento na latência. |
Erro ao criar extensão. | O ficheiro de despejo contém referências a extensões não suportadas. |
Erro ao usar pg_dumpall . |
A utilização do utilitário pg_dumpall com a flag --global requer a função de superutilizador, mas esta função não é suportada no Cloud SQL para PostgreSQL. Para evitar que ocorram erros ao realizar operações de exportação que incluam nomes de utilizadores, use também a flag --no-role-passwords .
|
A operação de exportação excede o limite de tempo antes de exportar qualquer conteúdo e é apresentada a mensagem de erro Could not receive data from client: Connection reset
by peer. |
Se o Cloud Storage não receber dados num determinado período, normalmente cerca de sete minutos, a ligação é reposta. É possível que a consulta de exportação inicial esteja a demorar demasiado tempo a ser executada.
Faça uma exportação manual através da ferramenta
|
Quer que as exportações sejam automáticas. | O Cloud SQL não oferece uma forma de automatizar as exportações.
Pode criar o seu próprio sistema de exportação automatizado usando produtos como o Cloud Scheduler, o Pub/Sub e as funções do Cloud Run, semelhantes a este artigo sobre a automatização de cópias de segurança. Google Cloud |
O que se segue?
- Saiba como importar e exportar dados através de ficheiros PG dump.
- Saiba como importar e exportar dados através de ficheiros CSV.
- Saiba como ativar as cópias de segurança automáticas.
- Saiba como restaurar a partir de cópias de segurança.