Parece que é possível. O SQL Server o chama de espelhamento de banco de dados e o ponto-chave é usar o modo de "alta segurança", que é síncrono. Isso significa que todas as transações confirmadas serão confirmadas em ambas as instâncias antes de serem concluídas como concluídas.
Observe que isso definitivamente terá impacto no desempenho. E provavelmente um grande impacto. Toda vez que você fizer uma atualização no banco de dados, ele será confirmado localmente, depois enviado para o servidor remoto (espelho), processado e confirmado lá, então o remoto retornará uma notificação de que concluiu a transação e somente então o servidor de banco de dados primário retornará ao cliente que a transação foi concluída. Essa viagem e processamento extra de ida e volta causará algum nível de aumento de latência.
Para mais informações, comece com estes artigos do MSDN:
- Visão geral do espelhamento de banco de dados
- Espelhamento de banco de dados síncrono (modo de alta segurança)
Nota: Eu não sou um DBA do SQL Server. A maior parte da minha experiência é com o PostgreSQL e o Oracle. Pode haver uma maneira melhor ou alternativa de fazer isso. Se assim for, espero que um DBA do SQL Server forneça ou corrija quaisquer erros que eu tenha cometido.