Recuperar uma transmissão

É possível recuperar uma transmissão que falhou permanentemente sem precisar criar uma nova. Para fazer isso, especifique a posição em que o Datastream tenta retomar a leitura das alterações na origem.

Visão geral da recuperação de stream

Um stream em execução pode encontrar alguns erros irrecuperáveis e mudar o estado para FAILED_PERMANENTLY. Esses erros impedem que o stream continue em execução e podem causar perda de dados.

É possível recuperar um stream com falha permanente configurando-o para ignorar o erro e continuar lendo os eventos em andamento em vez de recriar o stream e preencher os dados históricos. Para recuperar um stream com falha permanente, redefina a replicação para que ela comece a ler em uma posição de replicação diferente. Cada tipo de origem compatível tem a própria definição do que é uma posição de replicação:

  • Para origens Oracle, uma posição de replicação é um arquivo de registros redo no banco de dados e o número de alteração do sistema (SCN, na sigla em inglês) nesse arquivo.
  • Para origens do MySQL, uma posição de replicação é o arquivo de registro binário do banco de dados (binlog) e a posição nesse arquivo.
  • Para fontes PostgreSQL (incluindo AlloyDB para PostgreSQL), uma posição de replicação é o número de sequência de registro (LSN, na sigla em inglês) no slot de replicação. Durante a recuperação, o stream começa a ler a partir do primeiro LSN no slot de replicação.

Recuperar um stream de uma origem MySQL ou Oracle

Para recuperar um stream de uma origem MySQL ou Oracle, você tem as seguintes opções:

  • Tentar novamente na posição atual (recomendado): selecione esta opção para tentar fazer o streaming na posição atual, em que houve falha na última vez. Primeiro, corrija o arquivo de registro ou recupere-o do backup. Essa é a opção recomendada.

  • Pular a posição atual e fazer streaming da próxima posição disponível: se um ou mais arquivos de registro estiverem ausentes, selecione essa opção para pular esses arquivos e retomar o streaming da primeira posição no arquivo seguinte disponível. As alterações dos arquivos de registro ausentes são perdidas, mas é possível recuperá-las executando um preenchimento.

  • Ignorar a posição atual e o stream a partir da posição mais recente: se um ou mais arquivos de registro estiverem ausentes, selecione essa opção para ignorar esses arquivos e retomar o streaming na posição mais recente no arquivo de registro mais atualizado. As alterações dos arquivos de registro ausentes são perdidas, mas é possível recuperá-las executando um preenchimento.

  • Retomar na posição e no arquivo de streaming de sua preferência: selecione essa opção para retomar o stream em um arquivo de registro e em uma posição de registro específicos. Algumas alterações poderão ser perdidas se a posição de registro especificada não se sobrepuser ou seguir imediatamente a posição de registro perdida. É possível recuperar essas alterações realizando um preenchimento.

Para recuperar um stream com falha permanente para uma fonte MySQL ou Oracle, siga estas etapas:

  1. Acesse a página Streams no Google Cloud.

    Acessar a página "Fluxos"

  2. Marque a caixa de seleção à esquerda da transmissão que você quer recuperar.

  3. Clique em Recuperar.

  4. O painel Escolha uma estratégia de recuperação será aberto. Selecione uma opção. Se você selecionar Retomar na posição e no arquivo de streaming de sua preferência, insira o seguinte:

    • Para uma origem do MySQL: o nome do arquivo do registro no campo Nome do arquivo e a posição do registro no campo Posição. Se você não especificar a posição, o stream será retomado a partir da primeira posição no arquivo de registro indicado.
    • Para uma origem Oracle: o número de alteração do sistema (SCN, na sigla em inglês) no campo Número de alteração do sistema (SCN, na sigla em inglês). Este campo é obrigatório.
  5. Clique em Aplicar.

  6. Quando o stream é recuperado, um carimbo de data/hora aparece na coluna Recuperado na página Streams.

Recuperar um stream de uma origem do PostgreSQL

Para recuperar um stream de uma origem do PostgreSQL, é preciso fornecer o nome do slot de replicação. O servidor usa esse slot de replicação para enviar eventos ao Datastream. O nome do slot de replicação pode ser igual ou diferente do slot usado para o stream com falha:

Todos os eventos de alteração na origem que ocorreram entre a perda de posição do registro e o primeiro LSN no novo slot de replicação são perdidos. É possível recuperar essas alterações realizando um preenchimento.

Para recuperar um stream com falha permanente para uma origem do PostgreSQL, siga estas etapas:

  1. Acesse a página Streams no Google Cloud.

    Acessar a página "Fluxos"

  2. Marque a caixa de seleção à esquerda da transmissão que você quer recuperar.

  3. Clique em Recuperar.

  4. O painel Definir um novo slot de replicação será aberto.

  5. No campo Nome do slot de replicação, forneça o nome de um novo slot de replicação do qual o stream vai tentar se recuperar. Se você tiver recriado o slot de replicação com o mesmo nome ou se quiser reutilizar o slot especificado ao configurar a origem, deixe esse campo em branco.

  6. Clique em Aplicar.

  7. Quando o stream é recuperado, um carimbo de data/hora aparece na coluna Recuperado na página Streams.

Também é possível recuperar streams com falha permanente na página Detalhes do stream. Para fazer isso, clique em Recuperar stream ao visualizar informações detalhadas sobre ele.

Usar a recuperação de stream para uma origem MySQL em um cenário de failover manual

É possível executar um failover manual e usar a recuperação de stream para evitar recriar seus streams do zero durante a manutenção ou falha na instância principal. Geralmente, o Datastream não é compatível com failovers para réplicas porque elas interrompem a continuidade do binlog, mas é possível seguir estas etapas para recuperar o stream e garantir que seus dados de alteração sejam capturados:

  1. Interrompa todas as gravações na instância principal.
  2. Verifique se a métrica de atualização de dados está definida como 0. Isso significa que o Datastream capturou todas as alterações e não há novos eventos para ler da origem. Para mais informações, consulte Monitorar um stream.
  3. Faça o failover para a nova instância do banco de dados.
  4. Se necessário, atualize o perfil de conexão do stream para a nova instância do banco de dados. Por exemplo, talvez seja necessário alterar o nome do host ou o endereço IP do banco de dados. Para mais informações, consulte Modificar perfis de conexão.
  5. Recupere o stream de uma posição específica na instância de failover para garantir a continuidade da CDC.