Pergunta inteira editada para maior clareza.
Cenário: Ter 2 SQL Servers idênticos em servidores separados, processando transações de diferentes aplicativos simultaneamente enquanto são completamente sincronizados (exemplo: servidor 1 de aplicativos móveis e servidor 2 de aplicativos da web).
Vamos usar o Always On para fazer failover de um servidor para o outro para manutenção e vice-versa. No entanto, quando a manutenção for concluída, os dois servidores estarão novamente online processando transações de nossos vários aplicativos e sincronizados.
Tentar resolver uma solicitação de um cliente para estar online, mesmo durante a manutenção, com 2 servidores sincronizados, cada um processando transações de aplicativos diferentes.
Qual é a melhor abordagem para mantê-los sincronizados? Estava inclinado para a replicação de mesclagem.
Versão atual. SQL Server 2012 SP3-CU4
Obrigado
Você já considerou a replicação transacional ponto a ponto ?
Você pode encontrar mais comparações aqui .
De acordo com determinado cenário, se ambos os aplicativos usarem o mesmo conjunto de dados (banco de dados), o AlwaysOn é a melhor solução.
Ele oferece sincronização rápida e quase em tempo real no nó espelho com failover instantâneo em caso de qualquer imprevisto.
Para fazer uma conexão com o banco de dados, você tem um endereço IP/nome do ouvinte comum, portanto, não é necessário alterar o endereço IP caso ocorra um failover.
Como permite usar o banco de dados espelho para executar a operação de leitura, você pode usá-lo para relatórios redirecionando a solicitação de leitura (SELECT) para ele e obter o banco de dados completo e diferencial do espelho, o que reduz a sobrecarga de leitura do nó principal.
Ou seu aplicativo é OLAP ou OLTP, não se preocupe, ao contrário da replicação sempre ativa, não registra a transação de artigos e executa no banco de dados do parceiro. Em vez disso, sincronize a transação completa do buffer do banco de dados principal para o banco de dados espelho.
Para manutenções periódicas, é a melhor solução. Execute a atividade de manutenção do servidor no nó espelho e, quando ele ingressar no cluster após a conclusão, o banco de dados espelho será sincronizado com o principal.
A replicação de mesclagem é útil quando dois aplicativos diferentes manipulam algumas tabelas comuns disponíveis em bancos de dados diferentes em servidores diferentes. Por exemplo, em uma organização, RH e Contabilidade, ambos os departamentos precisam da tabela Employee para trabalhar, mas ambos não desejam compartilhar seus registros entre si. Portanto, se houver dois bancos de dados HR_DB e Account_DB, podemos configurar a replicação de mesclagem entre os dois bancos de dados para a tabela Employee.
A replicação registra as operações DML executadas em todos os artigos incluídos nela. é como um gatilho em um objeto para UPDATE, INSERT e DELETE que é criado para registrar cada solicitação DML;
Você está no caminho certo se todos os aplicativos usam o mesmo conjunto de dados (banco de dados), inclinar-se para a replicação de mesclagem não é uma boa ideia neste caso.
Obrigado