É possível recuperar um stream com falha permanente sem precisar criar um novo. Para fazer isso, especifique a posição em que o Datastream tenta retomar a leitura das mudanças da origem.
Visão geral da recuperação de stream
Um stream em execução pode encontrar alguns erros irreversíveis e mudar o estado para
FAILED_PERMANENTLY
. Esses erros impedem que o stream continue sendo executado e
podem causar perda de dados.
É possível recuperar um stream com falha permanente definindo-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 fluxo com falha permanente, redefina a replicação para começar a leitura em uma posição diferente. Cada tipo de origem com suporte tem uma definição própria de posição de replicação:
- Para origens do Oracle, uma posição de replicação é um arquivo de registro redo no banco de dados e o número de alteração do sistema (SCN) nesse arquivo.
- Para origens do MySQL, uma posição de replicação é o arquivo de registro binário (binlog) do banco de dados e a posição nesse arquivo.
- Para origens do SQL Server, uma posição de replicação é o número da sequência do registro (LSN, na sigla em inglês) nos registros de transação ou nas tabelas de mudança.
- Para origens do PostgreSQL (incluindo o AlloyDB para PostgreSQL), uma posição de replicação é o número da sequência de registros (LSN, na sigla em inglês) no slot de replicação. Durante a recuperação, o fluxo 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 fluxo de uma origem MySQL ou Oracle, você tem as seguintes opções:
Tentar novamente na posição atual (recomendado): selecione essa opção para tentar fazer streaming na posição atual, onde o streaming falhou pela última vez. Primeiro, você precisa corrigir o arquivo de registro ou recuperá-lo do backup. Essa é a opção recomendada.
Pular a posição atual e fazer streaming na próxima posição disponível: se um ou mais arquivos de registro estiverem ausentes, selecione essa opção para ignorá-los e retomar o streaming na primeira posição no arquivo seguinte disponível. As mudanças dos arquivos de registro ausentes são perdidas, mas podem ser recuperadas com a execução de um preenchimento.
Pular a posição atual e fazer streaming na posição mais recente: se um ou mais arquivos de registro estiverem ausentes, selecione essa opção para ignorá-los e retomar o streaming na posição mais recente no arquivo de registro mais atualizado. As mudanças dos arquivos de registro ausentes são perdidas, mas podem ser recuperadas com a execução de um preenchimento.
Retomar na posição e no arquivo de streaming de sua preferência: selecione essa opção para retomar o fluxo em um arquivo de registro e em uma posição de registro específicos. Algumas mudanças podem ser perdidas se a posição do registro especificada não se sobrepuser ou não seguir imediatamente a posição perdida. É possível recuperar essas mudanças com um preenchimento.
Para recuperar uma transmissão com falha permanente de uma origem do MySQL ou do Oracle, siga estas etapas:
Acesse a página Streams no Google Cloud.
Clique em Recuperar na linha com o nome do stream que você quer recuperar.
O painel Escolher uma estratégia de recuperação é 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 de 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 fluxo será retomado na primeira posição do arquivo de registro indicado.
- Para uma origem do Oracle: o número de alteração do sistema (SCN) no campo Número de alteração do sistema (SCN). Este campo é obrigatório.
Clique em Aplicar.
Quando a transmissão é recuperada, um carimbo de data/hora aparece na coluna Recuperado na página Transmissões.
Recuperar um stream de uma origem do PostgreSQL
Para recuperar um stream de uma origem do PostgreSQL, é necessário 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 ao slot usado para o fluxo com falha ou diferente:
- Se o novo slot de replicação tiver um nome diferente, informe o novo nome do slot de replicação ao Datastream.
Se você não fornecer um nome de slot de replicação, o Datastream vai usar o nome de slot de replicação especificado na configuração de origem.
Para mais informações sobre slots de replicação, consulte Configurar um banco de dados PostgreSQL de origem.
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 serão perdidos. É possível recuperar essas mudanças fazendo um preenchimento.
Para recuperar um fluxo permanentemente com falha de uma origem do PostgreSQL, siga estas etapas:
Acesse a página Streams no Google Cloud.
Clique em Recuperar na linha com o nome do stream que você quer recuperar.
O painel Definir um novo slot de replicação é aberto.
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ê recriou o slot de replicação usando o mesmo nome ou quer reutilizar o slot especificado ao configurar a origem, deixe esse campo em branco.
Clique em Aplicar.
Quando a transmissão é recuperada, um carimbo de data/hora aparece na coluna Recuperado na página Transmissões.
Também é possível recuperar transmissões permanentemente com falha na página Detalhes do stream. Para fazer isso, clique em Recuperar transmissão ao conferir informações detalhadas sobre a transmissão.
Recuperar uma transmissão de uma origem do SQL Server
Para recuperar um fluxo de uma origem do SQL Server, você tem as seguintes opções:
Retomar da primeira posição disponível: selecione essa opção se o registro foi truncado ou se há registros faltando nas tabelas de alteração e você quer retomar do primeiro evento disponível. Os eventos ausentes são perdidos, mas você pode recuperá-los fazendo um preenchimento.
Retomar do seu número de sequência de registro (LSN) preferido: selecione essa opção para retomar o fluxo de um LSN específico nos registros de transação ou nas tabelas de alterações. Alguns eventos podem ser perdidos se o LSN especificado não se sobrepuser ou seguir imediatamente o último LSN que o Datastream conseguiu recuperar. É possível recuperar esses eventos com um preenchimento.
O LSN nos registros de transação e nas tabelas de mudança contém 20 caracteres hexadecimais, mas, para registros de transação, ele é separado por um delimitador. Exemplo:
- LSN nos registros de transações:
0000123C:0000BA78:0004
- LSN em tabelas de mudança:
0000123C0000BA780004
- LSN nos registros de transações:
Para recuperar uma transmissão com falha permanente de uma origem do SQL Server, siga estas etapas:
Acesse a página Streams no Google Cloud.
Clique em Recuperar na linha com o nome do stream que você quer recuperar.
O painel Escolher uma estratégia de recuperação é aberto. Selecione uma opção.
Clique em Aplicar.
Quando a transmissão é recuperada, um carimbo de data/hora aparece na coluna Recuperado na página Transmissões.
Usar a recuperação de stream para uma origem do MySQL em um cenário de failover manual
É possível realizar um failover manual e usar a recuperação de fluxo para evitar a recriação dos fluxos do zero durante a manutenção ou falha da instância principal. Em geral, o Datastream não oferece suporte a failovers para réplicas porque eles interrompem a continuidade do binlog. No entanto, você pode seguir estas etapas para recuperar o fluxo e garantir que os dados de mudança sejam capturados:
- Interrompa todas as gravações na instância principal.
- Verifique se a métrica de atualização de dados está definida como 0. Isso significa que o Datastream capturou todas as mudanças e não há novos eventos para ler da origem. Para mais informações, consulte Monitorar uma transmissão.
- Falha na nova instância do banco de dados.
- Se necessário, atualize o perfil de conexão do fluxo para a nova instância do banco de dados. Por exemplo, talvez seja necessário mudar o nome do host ou o endereço IP do banco de dados. Para mais informações, consulte Modificar perfis de conexão.
- Recupere o fluxo de uma posição específica na instância de failover para garantir a continuidade da CDC.
A seguir
- Para saber mais sobre os estados de transmissão, consulte Ciclo de vida da transmissão.
- Para saber como conferir informações sobre o stream, consulte Conferir um stream.
- Para saber como monitorar um stream, consulte Monitorar um stream.
- Para saber como gerenciar o preenchimento de um stream, consulte Gerenciar o preenchimento dos objetos de um stream.
- Para saber como excluir uma transmissão, consulte Excluir uma transmissão.