Replicação de dados

A replicação de dados tem o objetivo de alimentar bases de dados de homologação, desenvolvimento, manutenção ou consulta com os dados da base de produção. Resumidamente ela consiste em enviar as inserções, alterações e remoções de registros de chave positiva ocorridas na base de dados de origem para a bases de dados destino, salvo registros de controle interno e de classes de dados configuradas para serem ignoradas. Por ser uma replicação lógica parcial, esta ferramenta não pode ser utilizada como solução de migração ou construções de réplicas fiéis da base de dados de produção.

O processo irá utilizar os registros de logs transacionais da base de dados de origem para identificar os registros da base de dados de destino que devem ser atualizados. Ele não atualizará registros vinculados aos produtos do sistema (chave negativa), incluindo aqueles que podem ser editados por meio da configuração “Usuário altera chave negativa”. Para atualizar registros associados aos produtos, devem ser utilizados os processos de atualização do sistema.

Novos usuários na base de origem serão criados desativados pela replicação de dados e os usuários que tenham sido desativados na base destino jamais serão ativados durante o sincronismo de dados, independentemente das alterações realizadas na base de origem.

Para que não exista conflito de chaves positivas geradas entre a base de dados de origem e a base de dados de destino, o processo reserva uma faixa de chaves específica na base de origem, mantendo-a desativada. Apenas essa faixa de chaves reservada poderá estar ativa na base de dados de destino. O processo apresentará um erro caso uma faixa de chaves esteja habilitada simultaneamente nas bases de dados de origem e destino, ou se as definições das faixas de chaves forem divergentes.

Importante: a replicação de dados não impedirá a inclusão de registros com códigos únicos para a mesma classe de dados. Por exemplo, caso já exista um registro de chave 9999 (da faixa de chaves reservada e ativa na base de destino) e código ‘100’, o processo não irá impedir a inclusão do registro de chave 1111 (da faixa de chaves ativa na base de origem) e código ‘100’. A base de dados destino passará a ter dois registros com o mesmo código.

Configurações

Caminho: Admin > Replicação de dados > Configurações.

O processo de configuração é composto por duas grades: a grade Servidor de execução e a grade Configuração da replicação de dados. A Servidor de execução serve para exibir o servidor de execução configurado para execução dos agendamentos de replicação de dados, enquanto a grade Configuração da replicação de dados serve para configurar os parâmetros necessários para a replicação de dados, como as bases de dados que receberão a replicação de dados, o e-mail dos destinatários que receberão o resultado da replicação de dados e os agendamentos de execução.

Observação: a configuração para replicação de dados somente poderá ser realizada após a migração para chaves 64 bits ter sido concluída nas bases de dados de origem e destino. Mais detalhes sobre essa migração podem ser obtidos no manual Migração chaves 64 bits.

Interface padrão

Os campos listados aqui fazem parte da interface padrão deste processo, podendo ser estendidos de acordo com os módulos instalados em cada sistema. Para uma melhor explicação individual de cada campo, o usuário deve checar a ajuda do sistema pressionando F1 enquanto o campo desejado está selecionado.

Dados do servidor de execução

Servidor: Servidor atual de execução dos agendamentos de replicação de dados.

Dados da configuração de replicação de dados

Habilitada: indica se a configuração está habilitada para execução.

Nome: nome dado à configuração de replicação de dados.

Base de dados de origem: nome da base de dados de origem do cadastro da configuração.

Tempo de vida mínimo do log transacional (min): tempo em minutos que será aguardado após a criação de um registro na iLog, antes que esse registro possa ser sincronizado na base de destino. Por exemplo, ao configurar o valor for 24h (1440min), os logs da base de origem serão sincronizados na base de destino apenas no dia seguinte a sua criação. Importante: esse valor deverá ser inferior a duração da maior gravação observada na base de dados de origem, caso contrário essa gravação poderá não ser sincronizada.

Bases de dados: bases de dados que receberão a replicação de dados. Para mais detalhes sobre o cadastro de bases de dados, acesse o manual Cadastro de bases de dados.

Grupos ou usuários destinatários: usuários do sistema que receberão o email com o resultado da replicação de dados.

Outros destinatários: destinatários externos, que não existem no sistema, que receberão o email com o resultado da replicação de dados.

Agendamento: lista dos agendamentos criados para a configuração de replicação de dados.

Operações comuns

Adicionando o servidor de execução

Para habilitar a configuração dos agendamentos de replicação de dados, o administrador do sistema precisará eleger um servidor responsável pela execução da rotina. Este servidor deverá ser informado clicando no botão “Alterar” da grade Servidor de execução. É importante que este servidor esteja sempre ligado para que os agendamentos sejam executados no horário programado.

Antes de realizar essa configuração, o servidor deverá estar previamente cadastrado em “Admin > Servidores > Servidores”, com os campos “Endereços IP”, “Portas HTTP” e “Portas HTTPS” corretamente preenchidos.

A interface de configuração do Servidor indicará o servidor atual e solicitará um novo. Ao tentar alterar o novo servidor, você poderá receber um erro indicando que o servidor escolhido não possui uma conta de SMTP configurada no Manage para executar a rotina de replicação de dados. Esta configuração é requerida e deve ser realizada no manage, em “Configuration > General”. Os campos SMTP Server, SMTP Username, SMTP Secure Connection, SMTP Password e Confirm SMTP Password devem ser preenchidos de acordo com a configuração da conta de SMTP utilizada pela empresa.

Observação: a configuração do servidor é exclusiva para execução via agendamento de replicação de dados.

Adicionando uma configuração de replicação de dados

Para adicionar uma configuração, o administrador deve inserir um novo registro na grade Configuração da replicação de dados e preencher corretamente seus campos. É necessário informar o nome que identifica a configuração e se a configuração está habilitada para execução.

Após confirmar a edição do registro, o campo “Faixa de chaves reservada” será preenchido automaticamente pelo sistema.

Adicionando uma base de dados que receberá a replicação de dados

Para adicionar uma base de dados que receberá a replicação de dados, o administrador deve inserir um novo registro na grade Bases de dados e preencher corretamente seus campos.

Base de Dados: Informe a base de dados que receberá a replicação de dados.

Faixa de chaves reservada: faixa de chaves que será habilitada nas bases de dados de destino da replicação de dados. O processo irá realizar o preenchimento automático com a maior faixa de chaves desabilitada na base de dados de origem.

Após confirmar a edição do registro, será apresentado um formulário solicitando o nome e a senha do usuário para autenticação com a base de dados de destino.

Ao tentar confirmar as informações de autenticação, você poderá receber o erro indicando que o usuário informado não possui o escopo de autorização “security.externalAccess”. Esse escopo de autorização é requerido, pois o processo de replicação de dados realiza uma conexão remota com a base de dados de destino. Mais detalhes podem ser obtidos no manual Escopos de autorização.

Após a confirmação das informações de autenticação, o processo irá verificar se a base de destino foi migrada para chaves 64 bits, exibindo um erro caso não tenha sido. Caso já tenha sido migrada para chaves 64 bits, será habilitada a faixa de chaves que foi reservada e desabilitadas as demais faixas. Após isso, será verificado se a base de destino é uma cópia da base de origem com a finalidade de identificar a versão inicial para replicação de dados. Caso não seja possível a identificação, será apresentado um formulário solicitando a data de criação da base de destino, que será utilizada como data de início da replicação de dados.

Adicionando os destinatários para envio do resultado da replicação de dados

Para adicionar um destinatário para envio do resultado da replicação de dados, o administrador deve inserir um novo registro na grade Grupos ou usuários destinatários ou na grade Outros destinatários e preencher corretamente seus campos.

Na grade Grupos ou usuários destinatários informe um grupo ou usuário que receberá o email com o resultado da replicação de dados.

Na grade Outros destinatários informe o nome e o e-mail do destinatário que receberá o email com o resultado da replicação de dados.

Adicionando o agendamento da execução da replicação de dados

Para adicionar o agendamento da execução da replicação de dados, o administrador deve inserir um novo registro na grade Agendamentos e preencher corretamente seus campos.

Habilitado: informe se o agendamento está habilitado. Agendamentos não habilitados não serão executados.

Nome: informe um nome para o agendamento que permita que este possa ser identificado.

Período: informe a periodicidade de execução da replicação de dados. É recomendado que a execução seja diária, em um horário de pouca utilização da base de dados de origem.

Hora: informe a hora em que o agendamento deve ser executado. Caso a periodicidade seja um intervalo, informe a quantidade de horas e minutos entre cada execução.

Data: informe o dia em que o agendamento deve ser executado caso a periodicidade seja anual.

Dia do mês: informe o dia do mês em que o agendamento deve ser executado caso a periodicidade seja mensal. Caso a periodicidade seja um intervalo, informe a quantidade de dias entre cada execução.

Dia da Semana: informe o dia da semana em que o agendamento deve ser executado caso a periodicidade seja semanal.

Usuário: usuário que fez a última alteração do agendamento. É preenchido automaticamente pelo sistema.

Engine: Engine que irá executar o script agendado. É preenchido automaticamente pelo sistema com o servidor cadastrado para execução da replicação de dados.

Outra possibilidade seria comandar a execução a partir de outro sistema, utilizando as rotas POST /api/devops/v1/replication/configs/<key>/sync ou POST /api/devops/v1/replication/sync. Essa execução será realizada no servidor acessado pela API.

O usuário utilizado para criar o token de acesso para consumo da API precisa ter permissão ao escopo de autorização api.devops. Usuários do grupo “Administrators” possuem esse escopo por padrão.

Importante: ao alterar um agendamento existente, o usuário proprietário será alterado para o usuário que realizou a última alteração. A replicação de dados passará a ser executada em nome e com as permissões desse usuário. Este comportamento visa garantir que um usuário não possa executar a replicação de dados em nome de outro usuário.

Processos auxiliares

Registros ignorados

Caminho: Admin > Replicação de dados > Registros ignorados.

Este processo permite cadastrar as chaves ou classes que não deverão ser sincronizadas no processo de replicação de dados. Essa configuração pode ser realizada na base de dados de origem ou na base de dados de destino.

Ele deve ser utilizado quando o administrador do ambiente de produção não deseja enviar alterações específicas para as bases de destino, ou quando o desenvolvedor ou consultor que está utilizando uma base de desenvolvimento ou homologação quer garantir que o registro seja estável e não sofra mais modificações a partir da base de origem.

Por padrão, os registros das classes de dados abaixo não são sincronizados pelo processo de replicação de dados:

  • /Dados/Sistema/DevTools Resources/Scratchpads
  • /Dados/Sistema/DevTools Resources/Variáveis
  • /Dados/Sistema/Faixas de chaves
  • /Dados/Sistema/Relações/Relações entre Cadastros/Relações entre usuários e menu
  • /Dados/Sistema/Tabelas Auxiliares/Configurações de replicação de dados
  • /Dados/Sistema/Tabelas Auxiliares/Engines servidores
  • /Dados/Sistema/Tokens de autorização

Alternativamente, desenvolvedores podem configurar classes de dados para serem ignoradas como uma definição de um produto do sistema. Para isso, deve ser criado um arquivo “.config” em “/Configuração/Replicação de dados”, modificando a propriedade ignoredClasses. Exemplo:

this.ignoredClasses.push(IGNORED_CLASS_KEY);

Relatórios auxiliares

Histórico de replicação de dados

Caminho: Admin > Replicação de dados > Histórico de replicação de dados.

Este relatório permite consultar o resultado das rotinas de replicação de dados, exibindo as seguintes informações:

  • Data e hora da execução.
  • Nome da configuração de replicação de dados.
  • Nome das bases de dados de origem e destino.
  • Usuário vinculado à execução da rotina.
  • Tempo de execução.
  • Data e hora do último log sincronizado para a base de destino.
  • Estatísticas relacionadas a quantidade de inserções, alterações e deleções.
  • Estado da replicação, se realizada com sucesso ou falha.
  • Versões das alterações.
  • Mensagem de erro.