O SQL Server 2005 Replicação unidirecional
-
09-06-2019 - |
Pergunta
Na empresa que eu trabalho para nós discussão de métodos para reduzir a carga de leitura em nosso banco de dados primário.
Uma opção que tem sido sugerida é a replicação unidirecional de nosso banco de dados primário para um escravo de banco de dados.Aplicativos, em seguida, leia o escravo de banco de dados de e escrever diretamente para o banco de dados primário.Então...
- Aplicativo Lê A Partir De Escravo
- Aplicativo Grava Principal
- Principal Actualizações De Escravo Automaticamente
Quais são os principais prós e contras para este método?
Solução
Alguns contras:
- 2 pontos de falha
- A lógica do aplicativo terá de levar em conta o atraso entre a escrita de alguma coisa, e depois de lê-lo, pois não estar imediatamente disponível a partir do banco de dados secundário
Uma estratégia que eu tenho usado é a tecla enviar dados do relatório para um banco de dados secundário noturno, de normalização-lo no caminho, para que musculoso consultas podem executar no banco de dados em vez de bloqueio de tabelas e roubar os recursos do servidor OLTP.Eu não estou usando formal de armazenamento de dados ou ferramentas de replicação, ao invés de eu identificar o problema consultas que são Ok, sem up-to-the-minute de dados e criar as estruturas de dados no servidor secundário especificamente para essas consultas.
Definitivamente, existem prós para o "replicar tudo" abordagem:
- Você pode executar qualquer consulta ad-hoc sobre o secundário, pois tem todos os seus dados
- Se o servidor primário não morre, você pode re-objetivo secundário rapidamente para assumir
Outras dicas
Estamos usando uma forma de replicações, mas não a partir da mesma aplicação.Nossas aplicações são de leitura-escrita para o mestre de banco de dados, os dados são sincronizados para o replca banco de dados e as ferramentas de relatório estiver usando esta réplica.
Não queremos que a nossa aplicação para ler a partir de um banco de dados diferente, portanto, neste cenário gostaria de sugerir o uso de grupos de arquivos e criação de partições no banco de dados mestre.Usando o arquivo de grupos (especialmente em unidades diferentes) e particionamento de arquivos e índices podem ajudar no desempenho de um monte.