Depois de otimizar o esquema do Spanner e migrar a aplicação, pode mover os dados para uma base de dados do Spanner vazia com o tamanho de produção e, em seguida, mudar a aplicação para usar a base de dados do Spanner.
Consoante o seu exemplo de utilização, pode conseguir fazer uma migração de dados em direto com um tempo de inatividade mínimo ou pode precisar de um tempo de inatividade prolongado para fazer a migração de dados.
Se a sua aplicação não puder ter muito tempo de inatividade, pondere fazer uma migração de dados em direto. Se a sua aplicação conseguir processar o tempo de inatividade, pode considerar migrar com tempo de inatividade.
Numa migração de dados em direto, tem de configurar a infraestrutura de rede necessária para que os dados fluam entre a base de dados de origem, a base de dados do Spanner de destino e as ferramentas que está a usar para realizar a migração de dados. Tem de decidir se quer conectividade de rede privada ou pública, consoante os requisitos de conformidade da sua organização. Pode ter de pedir ao administrador de rede da sua organização que configure a infraestrutura.
Migração de dados em direto
Uma migração de dados em direto é composta por dois componentes:
- Migrar os dados num instantâneo consistente da base de dados de origem.
- Migrar o fluxo de alterações (inserções, atualizações e eliminações) desde esse resumo, denominado captura de dados de alterações (CDC).
Embora as migrações de dados em direto ajudem a proteger os seus dados, o processo envolve desafios, incluindo os seguintes:
- Armazenamento de dados de CDC enquanto a cópia instantânea está a ser migrada.
- Escrever os dados de CDC no Spanner enquanto captura o fluxo de CDC recebido.
- Garantir que a migração de dados de CDC para o Spanner é mais rápida do que a stream de CDC recebida.
Migração com tempo de inatividade
Se a sua base de dados de origem puder exportar para CSV ou Avro, pode migrar para o Spanner com tempo de inatividade. Para mais informações, consulte o artigo Vista geral da importação e exportação do Spanner.
As migrações com tempo de inatividade podem ser usadas para ambientes de teste ou aplicações que podem processar algumas horas de tempo de inatividade. Numa base de dados em direto, uma migração com tempo de inatividade pode resultar na perda de dados.
Para fazer uma migração com tempo de inatividade, considere a seguinte abordagem de alto nível:
- Pare a aplicação e gere um ficheiro de despejo dos dados da base de dados de origem.
- Carregue o ficheiro de despejo para o Cloud Storage num formato de despejo MySQL, PostgreSQL, Avro ou CSV.
- Carregue o ficheiro de despejo no Spanner através do Dataflow ou da ferramenta de migração do Spanner.
A geração de vários ficheiros de despejo pequenos torna a escrita no Spanner mais rápida, uma vez que o Spanner pode ler vários ficheiros de despejo em paralelo.
Quando gerar um ficheiro de despejo a partir da base de dados de origem, tenha em atenção o seguinte para gerar um instantâneo consistente dos dados:
- Antes de executar o despejo, aplique um bloqueio de leitura na base de dados de origem para impedir que os dados sejam alterados durante a geração do ficheiro de despejo.
- Em alternativa, gere o ficheiro de despejo através de uma réplica de leitura da base de dados de origem com a replicação desativada.