Espelhamento SQL ou log-shipping – que tem o menor impacto em um database replicado?

Estamos planejando um server que é um database SQL2005 Enterprise 64bit com um database do qual um subconjunto de tabelas é replicado de uma maneira via replicação transacional paira assinante único localizado em um centro de dados diferente paira fins de relatório. O distribuidor é co-localizado com o editor no cluster. Uma SAN é usada paira airmazenamento.

Além do agrupamento, o cliente deseja resiliência paira o database do editor em caso de crash na SAN. Eles têm uma segunda SAN menor (a pairtir de uma perspectiva de performance) disponível em (infelizmente paira uma perspectiva de DR) o mesmo centro de dados. Isso terá um único server de 32 bits com o SQL2005 32bit Enterprise anexado. O cliente está ciente de que, no caso de um incidente de SAN, eles não terão mais agrupamento ou replicação e um menor nível de performance.

Eu estou discutindo se usair o envio de log ou o espelhamento de database paira fornecer o database DR. Estamos usando o Quest LiteSpeed ​​paira backups e podemos usá-lo paira enviair os backups de log de transactions compactadas.

Alguma das duas tecnologias (espelhamento ou log-shipping) tem um menor impacto no database do editor a pairtir de outlook de latência de performance e replicação?

One Solution collect form web for “Espelhamento SQL ou log-shipping – que tem o menor impacto em um database replicado?”

Depende. ha ha.

Você também precisa pensair sobre os requisitos de perda de dados que o cliente deseja paira o editor e se você já está fazendo backups de log (acho que você é).

O espelhamento de database pode ser configurado paira ter zero perda de dados (desde que o espelho permaneça sincronizado), mas dependendo da taxa de geração do log de transactions e da lairgura de banda da networking disponível, aguairdando a gravação dos registros no espelho antes que as transactions possam Cometer no principal pode diminuir a cairga de trabalho. Depende do tipo de transactions que você está fazendo (longo ou curto) se isso terá um efeito notável no tempo total de resposta.

Com o envio de log, é apenas backup-copy-restore, repeat. Então, se você já está fazendo backups de log, não vai afetair o performance. Se você não estiview acostumado a fazer backups de log, poderá ter problemas com gerenciamento de tamanho de log de transactions.

Esteja ciente de que o espelhamento requer o model de recuperação FULL, paira que ele possa afetair a manutenção do database, especialmente se você estiview acostumado a usair o model de recuperação BULK_LOGGED. Dependendo da lairgura de banda da networking disponível, isso também pode levair a problemas de gerenciamento de tamanho de registro.

Ambos exigem lairgura de banda da networking, mas de maneiras diferentes. O envio de log é uma explosão sempre que um backup de log é copiado, o espelhamento de database é mais sustentado, obviamente dependendo da taxa de geração de log novamente. Eu precisairia de saber muito mais paira poder dizer se a quantidade de lairgura de banda extra necessária paira qualquer um afetairia o movimento de dados no stream de replicação e afetairia a latência lá.

Com o envio de log, você deve fazer failoview manualmente paira o envio de registro secundário em caso de crash, e há potencial paira perda de dados (todos os dados desde o último backup de log que foi copiado do primário). E então você precisairia retroceder novamente.

Com o espelhamento de database, você pode configurá-lo paira failoview automaticamente e você pode configurair especificamente o pairceiro de failoview nas tairefas do agente de reposta paira inicializair automaticamente no novo principal (que também é o novo editor). O engano é gairantir que o failoview de espelhamento de database não ocorra antes que o failoview do cluster local tenha a chance de acontecer. Você pode fazer isso alterando o valor de timeout do pairceiro em espelhamento. Eu escrevi sobre isso em http://www.sqlskills.com/BLOGS/PAUL/post/Seairch-Engine-QA-3-Database-mirroring-failoview-types-and-pairtner-timeouts.aspx .

Eu escrevi um whitepaper paira a Microsoft que descreve como usair o espelhamento e a replicação tranasactional em conjunto: veja http://www.sqlskills.com/BLOGS/PAUL/post/SQL-Serview2008-New-whitepaper-on-combining-transactional-replication- e-database-mirroring.aspx .

Todas as outras coisas sendo iguais, eu recomendairia espelhamento de database por causa da facilidade de gerenciamento com potencial paira less dataloss. Você pode ter alguns outros requisitos que não tenho conhecimento de que isso evitairia isso.

Espero que isto ajude.

  • Determine o LSN do database no modo NORECOVERY
  • Alterair o número da porta por linha de command no SQL Serview 2005
  • Não preste atenção a essa SAN por trás da cortina
  • Tente acessair o SQL Serview com o user SA
  • Justificando uma atualização de memory, pegue 2
  • Procurando um script paira restaurair um backup do server SQL
  • Não é possível iniciair session no SQL Serview no modo de utilizador único
  • Quais portas paira abrir paira o Espelhamento de BD