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 de mudanças da 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.

Para recuperar um stream com falha permanente, configure-o para ignorar o erro e continue lendo os eventos em andamento em vez de recriar o fluxo e preencher os dados históricos. Para recuperar um stream com falha permanente, redefina a replicação para começar a ler de 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 redo log no banco de dados e o número de alterações 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 origens do PostgreSQL, incluindo o 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 o primeiro LSN no slot de replicação.

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

  • Tentar transmitir de novo na posição atual (recomendado): selecione essa opção para tentar fazer streaming da posição atual, em que o stream falhou pela última vez. Primeiro você precisa corrigir o arquivo de registro ou recuperá-lo do backup. Essa é a opção recomendada.

  • Ignorar 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 ignorar esses arquivos e retomar o streaming na primeira posição no arquivo seguinte disponível. As alterações nos arquivos de registro ausentes são perdidas, mas é possível recuperá-las com um preenchimento.

  • Ignorar a posição atual e o streaming 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 nos arquivos de registro ausentes são perdidas, mas é possível recuperá-las com um preenchimento.

  • Retomar a partir da posição e do 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 imediatamente seguir a posição de registro perdida. Você pode recuperar essas alterações realizando um preenchimento.

Para recuperar um stream de uma origem do PostgreSQL, informe 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 o mesmo do slot usado para o stream com falha ou diferente:

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. Você pode recuperar essas alterações executando um preenchimento.

Recuperar um stream para uma origem MySQL ou Oracle

Para recuperar um stream com falha permanente, 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 do stream 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 fonte do MySQL: o nome do arquivo de registro no campo File name e a posição do registro no campo Position. Se você não especificar a posição, o stream será retomado da primeira posição no arquivo de registros 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). Este campo é obrigatório.
  5. Clique em Aplicar.

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

Recuperar um stream para uma origem do PostgreSQL

Para recuperar um stream com falha permanente, 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 do stream que você quer recuperar.

  3. Clique em Recuperar.

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

  5. No campo Nome do slot de replicação, forneça o nome de um novo slot de replicação a partir do qual o stream tentará se recuperar. Se você recriou o slot de replicação usando o mesmo nome ou se quer 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 é exibido na coluna Recuperado na página Streams.

Também é possível recuperar transmissões que apresentaram falha permanentemente na página Detalhes da transmissão. Para fazer isso, clique em Recuperar transmissão ao conferir informações detalhadas sobre ela.

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

É possível executar um failover manual e usar a recuperação de stream para evitar recriar os fluxos do zero durante a manutenção ou falha na instância principal. Geralmente, o Datastream não oferece suporte a failovers para réplicas porque eles interrompem a continuidade do binlog, mas é possível seguir estas etapas para recuperar o stream e garantir que os dados alterados 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 captura todas as alterações, e não há novos eventos para ler na 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 do CDC.