T2X Visão Geral das funcionalidades do Software • Possibilitar agendamento da atividade de replicação nas bases de tempo diária e horária; • Permitir seleção de esquemas, tabelas e campos que serão replicadas; • Permitir seleção de linhas que serão replicadas, baseado em regras comuns do banco de dados Oracle; • Permitir seleção de modo de replicação, entre linha completa e campo completo, por tabela; • Possibilitar a seleção de mais de um destino para a mesma informação; • Disponibilizar seleção de quais eventos serão replicados (INSERT, UPDATE e DELETE); • Permitir a desativação de código PL/SQL que esteja associado às tabelas alvo de replicação; • Disponibilizar ao usuário log com as atividades que foram executadas independentemente do sucesso ou falha; • Disponibilizar mecanismo de re-execução da replicação; • Possibilitar ao usuário vários programas diferentes de replicação, tornando possível atualizações de parte dos dados em determinados momentos do dia, e outra parte em outro momento; • Conceder ao usuário a possibilidade de ser notificado, por meio eletrônico, quanto ao sucesso ou falha das operações de replicação; • Compactação e criptografia das informações que trafegam entre as bases de dados Oracle; • Suportar falhas no meio de transferência (rede); • Suportar indisponibilidade no banco de dados destino; • Suportar falhas de execução do módulo 2XServer; O sistema funciona em duas partes: 2XSender e 2XReceiver. O módulo 2XServer é o responsável por acompanhar a agenda no ponto de origem dos dados e monitorar o funcionamento do banco de dados Oracle, quanto à quais dados estão sendo inseridos, modificados e excluídos das tabelas que são alvo da replicação dos dados, bem como é o responsável por empacotar os dados na origem para envio para o(s) destino(s). No momento definido para replicação dos dados, o módulo 2XServer coleta as informações sobre os dados que necessitam ser replicados, empacota os dados em um único bloco, e envia ao(s) destino(s) usando conexão UDP. Os dados são particionados em blocos menores, para permitir o trânsito das informações em redes que sejam compartilhadas com outros recursos. Cada bloco de informação contém um identificador único, e o envio para o(s) destino(s) ocorre por canais diferentes, otimizando ao máximo o aproveitamento da rede, tanto na origem como no destino. As informações trafegam compactadas e criptografadas, possibilitando rápida transferência de volumes de dados maiores e, ao mesmo tempo, evitando leitura dos dados por pessoas não autorizadas. A combinação da chave de criptografia entre a origem e o destino é variável, combinada eletronicamente a cada conexão para replicação, de 128 bits, e que não tem interferência humana. Desta forma, nem o usuário responsável pela configuração do sistema consegue desmontar os dados que estão sendo transmitidos. O módulo 2XReceiver é o responsável por receber as informações enviadas pelo módulo 2XSender, reconstruir a informação a partir dos blocos enviados, descriptografar e descompactar os dados, e executar as instruções de equalização das bases de dados. Após o processo, o módulo envia mensagem ao módulo 2XSender sinalizando que a informação foi recebida e processada com sucesso. O módulo 2XServer volta ao trabalho para identificar as linhas das tabelas que foram processadas, de forma que a próxima replicação será executada apenas com as linhas que foram modificadas após as operações enviadas para replicação. Resolução de conflitos O sistema possibilita ao usuário definir, em caso de conflitos, qual informação tem precedência, considerando conflito apenas por campo ou por linha. Na replicação por linha, a linha da origem é totalmente atualizada no destino. Na replicação por coluna, as colunas que foram inseridas e/ou modificadas são igualmente inseridas e/ou modificadas no(s) destino(s). Sendo assim, na replicação por linha, o operador poderá definir qual a informação tem precedência sobre a outra. Na replicação por coluna, o operador tem a mesma possibilidade, porém a ocorrência de conflitos neste cenário é drasticamente reduzida, dependendo da aplicação. Problemas de rede Caso a conexão de rede entre os dois módulos seja interrompida durante a transferência das informações, nenhuma das atividades de replicação será executada. Desta forma, quando a conexão for re-estabelecida, os servidores se sincronizarão automaticamente, sem a necessidade de intervenção manual. File Option: Caso a conexão de rede esteja indisponível, o operador poderá gerar o pacote de exportação em arquivo, enviar para o destino por meios alternativos (DVD, CD, HD Externo, conexão discada, etc...), e o módulo 2XReceiver poderá processar o pacote de dados. Este procedimento poderá ser usado sempre que necessário, sem prejuízos ao processo de replicação. Quando a conexão de rede for re-estabelecida entre os servidores, o sistema fará a conexão e o processo de replicação prosseguirá normalmente. Para que este mecanismo funcione concorrentemente ao processo de replicação via rede, o sistema utiliza serializadores de pacotes, o que possibilita o não processamento de um pacote fora da ordem. Desta forma, caso seja executada uma exportação dos dados para arquivo, e não houver a importação dos dados no destino, a replicação não será executada. Problemas de banco de dados Se o banco de dados na origem esteja indisponível temporariamente, o sistema de replicação irá congelar. Quando o banco de dados tornar-se disponível novamente, o sistema remota automaticamente seu funcionamento. Caso o banco de dados de destino esteja indisponível, o sistema irá prosseguir o seu funcionamento normalmente, de forma que quando o banco de dados ficar disponível novamente, o sistema passa a receber as informações e processa-las normalmente. Caso ocorra de o banco de dados de destino, ficar indisponível de forma determinante onde a recuperação dos dados seja impossível, o operador poderá solicitar um Image Copy do banco de dados, no modelo de replicação, considerando os filtros de dados normais. Desta forma, será possível re-exportar todos os dados replicados anteriormente, possibilitando recuperação do banco de dados a partir do zero.