Quando um sistema de distribuição de alimentos e bebidas do CDC falha, o instinto é automático: fazê-lo funcionar novamente. Rapidamente.
Entretanto, a fonte pode ainda estar processando transações. O acúmulo de solicitações pode continuar crescendo. Relatórios, aplicativos e processos subsequentes podem já estar trabalhando com dados desatualizados.
E, mais cedo ou mais tarde, alguém pergunta: Podemos simplesmente reiniciar?
Geralmente é nesse momento que a recuperação fica mais difícil.
Porque o verdadeiro problema muitas vezes não é a falha em si, mas sim tudo o que aconteceu enquanto a replicação não estava em execução.
Uma reinicialização bem-sucedida prova apenas uma coisa: a replicação está funcionando novamente.
Isso não comprova que o alvo esteja completo, atualizado ou correto.
As falhas mais perigosas do CDC nem sempre são aquelas em que a replicação para. São aquelas em que a replicação recomeça e ninguém consegue explicar o que aconteceu durante a interrupção ou provar que os dados recuperados são confiáveis.
O objetivo não é simplesmente reiniciar o mais rápido possível. É evitar que uma falha se transforme em uma recuperação mais difícil. Uma tarefa de replicação interrompida não significa automaticamente que as transações foram perdidas. E uma reinicialização bem-sucedida não significa automaticamente que o destino esteja correto.
O primeiro passo não é clicar em Reiniciar.
As diretrizes atuais do NIST para resposta a incidentes separam detecção, resposta, recuperação e melhoria contínua. Essa disciplina mais ampla apoia o estabelecimento do que aconteceu e a preservação de contexto suficiente para tomar uma decisão de recuperação defensável antes de alterar o ambiente.*
Serve para estabelecer onde o processamento parou, o que continuou acontecendo na origem, qual o estado atual para a recuperação e quais evidências serão necessárias posteriormente.
Consideradas em ordem, as sete perguntas abaixo ajudarão você a percorrer esse processo.
"Replicação interrompida" não é específico o suficiente para escolher um caminho de recuperação.
Primeiro, determine onde ocorreu o problema. Foi replicação?
Em seguida, estabeleça a cronologia. O momento em que alguém percebeu o problema pode não ser o momento em que o problema começou.
Verificar
Uma falha de captura, uma falha de aplicação, um acúmulo crescente de tarefas e uma interrupção do sistema de destino são problemas diferentes. Eles podem exigir equipes diferentes e ações de recuperação diferentes. Você estará pronto para prosseguir quando puder dizer: "Foi aqui que o processamento parou, foi aqui que aconteceu e isto é o que foi afetado". Não simplesmente: "A replicação está interrompida em algum lugar".
Essa é uma das questões mais importantes na recuperação. As plataformas de replicação podem armazenar o estado do processo ou de reinicialização, o que ajuda a determinar de onde o processamento pode ser retomado após uma interrupção.
Dependendo da fonte e da plataforma, você poderá encontrar termos como:
Não assuma que esses termos signifiquem exatamente a mesma coisa em todas as plataformas. A questão importante é se você consegue identificar onde o processamento foi interrompido e se essa informação é confiável o suficiente para permitir a recuperação.
Dependendo da origem e da plataforma de replicação, as equipes podem encontrar diferentes marcadores de recuperação e terminologia de posição de processamento. Para ambientes Db2 para z/OS, esses conceitos podem incluir RBA ou LRSN.
A questão importante é se existem informações de recuperação salvas válidas e se a equipe entende o que essas informações representam. Para processos de Captura de Dados de Alteração (CDC) do RDRS compatíveis, as informações de status salvas permitem que o processamento continue na posição correta específica da origem após a reinicialização. A posição e a terminologia dependem da tecnologia de origem.
Verificar
Ter uma posição conhecida no processo é muito diferente de reconstruir onde você acha que o pipeline parou durante um incidente. Você está pronto para prosseguir quando a equipe tem um estado de reinicialização/processo identificável e entende o que isso significa para essa origem e destino.
Se a origem continuasse em execução, as transações poderiam ter prosseguido enquanto o destino parava de receber alterações. Isso significa que a equipe precisa entender tanto a lacuna de replicação quanto o impacto subsequente.
Verifique a lacuna
Para CDC baseado em logs, verifique a retenção de logs de origem e o histórico arquivado. Em alguns ambientes de CDC baseado em logs, os logs de origem retidos ou arquivados podem ser relevantes para processar alterações acumuladas durante uma interrupção. Os pré-requisitos exatos variam de acordo com:
Não assuma que a existência de logs arquivados significa automaticamente que todos os caminhos de recuperação permanecem disponíveis. Confirme o que a plataforma suporta para o ambiente específico. Verifique quem já está usando o destino:
Um pipeline ainda pode ser tecnicamente recuperável, mesmo que dados desatualizados a jusante já estejam se tornando um problema para o negócio. Você estará pronto para seguir em frente quando entender o que aconteceu durante a lacuna, o quanto você está atrasado e quem já pode ter sido afetado.
É aqui que as equipes frequentemente sentem a pressão de tomar uma decisão rápida. Dependendo da plataforma, o estado de recuperação salvo pode ser chamado de ponto de verificação, marcador, estado de reinicialização, posição de processamento ou algo semelhante.
O que importa é se existe um caminho de recuperação compatível com o cenário de falha em questão. Às vezes, a replicação pode ser retomada a partir de um estado salvo e recuperar o atraso. Outras vezes, é necessária uma comparação ou ressincronização mais direcionada. E, em alguns casos, uma reinicialização mais abrangente é apropriada.
Dependendo da origem, do destino, da configuração, do histórico retido e do cenário de falha, os caminhos disponíveis podem incluir:
Em alguns ambientes, uma carga inicial completa pode não ser necessária. A possibilidade de recuperação sem carga depende de condições como:
O objetivo não é evitar uma reinicialização a todo custo. É determinar se uma reinicialização suportada ou um caminho de recuperação é apropriado para este incidente.
Verificar
Os profissionais descrevem a alternativa dolorosa de forma muito clara: "recarregamento completo" ou até mesmo "ressincronização do zero". A questão a ser respondida é: quando podemos nos recuperar sem recomeçar do zero e quando não podemos? Você estará pronto para prosseguir quando a equipe puder explicar por que o caminho de recuperação selecionado se adequa a este incidente específico.
Uma reinicialização bem-sucedida não prova, por si só, que o objetivo está correto. Dependendo dos dados e da arquitetura, as equipes devem procurar por:
Um problema particularmente fácil de passar despercebido é a exclusão. Um pipeline pode parecer íntegro enquanto um registro que foi excluído na origem ainda permanece no destino.
Verificar
A frase “Tudo está funcionando novamente” não indica se algo passou despercebido no processo. Você estará pronto para seguir em frente quando souber quais modos de falha são relevantes em seu ambiente e quais evidências podem expô-los.
Não espere até a recuperação para decidir como validá-la. Antes de reiniciar, defina quais evidências serão necessárias para que as equipes subsequentes sejam informadas de que o sistema está pronto para uso novamente. Dependendo do ambiente, a validação pode envolver:
Nenhum método isolado prova tudo. A questão importante em qualquer verificação de validação é:
O que isso prova — e o que isso não prova?
Perguntar
O erro que as equipes de recuperação frequentemente cometem é presumir que "A replicação está funcionando novamente" e "O destino pode ser confiável novamente" são a mesma conclusão.
Não são.
Uma delas diz respeito à saúde do sistema. A outra, à integridade dos dados. A recuperação só estará completa quando houver evidências para ambas. Você estará pronto para prosseguir quando a equipe tiver uma abordagem de validação adequada à origem, ao destino, ao incidente e ao risco para o negócio.
Um pipeline pode estar em execução enquanto ainda há pendências. Pode estar sendo processado enquanto os dados subsequentes permanecem desatualizados. E pode apresentar um estado de processo saudável enquanto questões sobre os dados recuperados permanecem sem resposta. Antes de encerrar o incidente, verifique tanto o processo quanto o resultado.
Verificar
Encerrar um incidente prematuramente pode deixar questões não resolvidas sobre dados, validação ou impactos subsequentes, ocultas por trás de um status de processo aparentemente saudável. O incidente deve ser encerrado quando a equipe puder afirmar que a replicação está estável, os dados relevantes foram validados, as equipes subsequentes compreendem o estado atual e podemos explicar o que aconteceu.
As sete perguntas deste artigo ajudam a identificar o que poderia ter dado errado e do que depende a recuperação. Elas não comprovam que o alvo recuperado esteja correto. Após a recuperação, o próximo passo é determinar se algum desses riscos realmente ocorreu e se o alvo é confiável.
Recurso relacionado: O pipeline está funcionando novamente. Você pode confiar nos dados?
Estas sete perguntas não são sobre se você pode apertar o botão Reiniciar. Elas são sobre se você consegue responder: Onde podemos retomar? O que aconteceu durante a interrupção? Podemos nos recuperar sem recomeçar do zero? E como vamos provar que nada foi perdido?
Essa é a diferença entre colocar o oleoduto em funcionamento novamente e recuperá-lo para um estado em que você possa confiar.
| Pergunta | Você fica em uma posição mais forte quando… | Bandeira vermelha |
| O que falhou? | Você sabe onde e quando o processamento parou. | A equipe está alterando o ambiente antes de estabelecer o que aconteceu. |
| Onde podemos retomar as atividades? | O estado de reinicialização/processo salvo está disponível e é compreendido. | A posição resumida é assumida ou reconstruída durante o incidente. |
| O que aconteceu durante esse intervalo? | Você entende o backlog, o histórico de código-fonte disponível e o impacto subsequente. | Ninguém sabe quão distante está o alvo ou quem o está utilizando. |
| Reiniciar ponto de verificação ou ressincronizar? | O caminho de recuperação é baseado na origem, no destino, no estado, no histórico e no cenário de falha reais. | Reiniciar ou recarregar completamente é simplesmente a resposta habitual. |
| O que poderia estar errado? | Foram consideradas alterações ausentes, duplicatas, exclusões, valores obsoletos e riscos relevantes de ordenação/esquema. | Uma reinicialização bem-sucedida é considerada como prova de que o alvo está correto. |
| Como vamos provar isso? | A validação foi definida para os dados afetados e para o período de recuperação. | "O processo é sustentável" é a prova disso. |
| Estamos realmente recuperados? | Atraso, validação de dados, prontidão para processamento posterior e exceções restantes são compreendidos. | O incidente será encerrado assim que os registros voltarem a circular. |
Todas as plataformas do CDC eventualmente sofrerão falhas, interrupções ou eventos de recuperação.
A questão não é se os incidentes acontecem. A questão é o esforço, a incerteza e o risco envolvidos quando eles acontecem.
Um incidente negativo isolado não significa automaticamente que você precise de uma plataforma diferente do CDC. Mas a dor recorrente da recuperação exige uma conversa diferente.
Pergunte se você está vendo repetidamente:
Para ambientes mainframe onde Db2 para z/OS, VSAM, IMS ou ADABAS são sistemas de registro, o comportamento de recuperação deve ser avaliado para a fonte específica — e não presumido a partir de uma alegação genérica de "suporte a mainframe".
Nesse ponto, a pergunta muda de "Como resolvemos esse incidente?" para "Nossa abordagem atual de replicação está nos dando a capacidade de recuperação e a visibilidade de que realmente precisamos?"
A recuperação é uma das capacidades mais importantes a serem avaliadas em qualquer plataforma do CDC.
O Rocket Data Replicate & Sync (RDRS) gerencia a replicação corporativa entre ambientes mainframe e plataformas modernas distribuídas e em nuvem.
Se você estiver avaliando o RDRS para um ambiente como o descrito acima, aplique o mesmo padrão que aplicaria a qualquer plataforma de replicação.
As sete perguntas deste artigo: o que falhou, onde podemos retomar, o que aconteceu durante a interrupção, qual caminho de recuperação se aplica, o que pode estar errado, como vamos provar isso e como saberemos que terminamos, são as mesmas perguntas que devem ser respondidas sobre qualquer plataforma, incluindo o RDRS, antes de confiar em um alvo recuperado.
Solicite uma demonstração de como a recuperação funciona na sua configuração específica de origem e destino:
A possibilidade de recuperar uma falha específica sem uma resincronização mais ampla ou uma reinicialização completa depende da origem, do destino, da topologia, do histórico retido, da configuração e da natureza da falha.
A pergunta mais útil não é: "A plataforma suporta recuperação?"
É o seguinte: "Mostre-nos como a recuperação funciona nos cenários de falha que nosso ambiente realmente enfrenta."
*NIST SP 800-61 Rev. 3: Recomendações e Considerações para Resposta a Incidentes
Retomar a replicação é apenas parte do trabalho. A próxima questão é:
Como podemos provar que os dados recuperados estão completos?
Aprenda como definir a janela de recuperação, determinar quais evidências estão disponíveis, investigar discrepâncias e estabelecer quando o alvo está pronto para uso posterior.
Seu sistema de distribuição de medicamentos do CDC não está inoperante. Você tem certeza de que está funcionando corretamente?
Antes de reiniciar, você sabe o que foi afetado pela falha?
O pipeline está funcionando novamente. Você pode confiar nos dados?
Quando um problema de recuperação do CDC se torna um problema de plataforma?
Como saber se as alegações de recuperação de um fornecedor do CDC serão verdadeiras?
Como elaborar um plano de negócios para o investimento de recuperação do CDC
