Impacto da alteração do nível de compatibilidade do banco de dados para um banco de dados replicado publicado de 90 para 100


11

Eu tenho um servidor SQL Server 2008 R2 com vários bancos de dados publicados que estão atualmente operando no nível de compatibilidade 90 (2005).

Os bancos de dados de assinatura também são o SQL Server 2008 R2; no entanto, os bancos de dados de destino estão definidos no nível de compatibilidade 100 e a replicação está funcionando bem.

Se eu alterar o nível de compatibilidade dos bancos de dados publicados, isso afetará a replicação de alguma forma ou será apenas um caso de reinicializar todas as assinaturas e reiniciar a replicação?

Suspeito que alterar o nível de compatibilidade do banco de dados publicado possa alterar o funcionamento dos procedimentos armazenados de replicação, mas não tenho 100% de certeza.

É esse o caso?


Pergunta interessante, mas há algum motivo para que esses bancos de dados precisem ter seu nível de compatibilidade alterado? Se as coisas estão funcionando bem, eu provavelmente apenas deixá-lo sozinho ...
Jon Seigel

A principal razão pela qual gostaria de alterá-los é que o banco de dados e os servidores em que estão inseridos acabam de ser atualizados de uma caixa 2005 de nó único para um cluster 2008R2 de vários nós. Além disso, existem alguns outros bits de funcionalidade (como MERGE etc.) que eu gostaria de poder começar a usar.
Bob

1
Você pode querer ler esta pergunta a respeito do que o nível de compatibilidade faz: dba.stackexchange.com/questions/5166/...
Jon Seigel

O fim da civilização. Gatos e cachorros morando juntos. Histeria em massa. Devo também mencionar que isso pode causar um desligamento do governo. No entanto, você parece estar claro sobre isso.
swasheck

Respostas:


4

Você pode seguir as etapas abaixo:

  • Verifique se o Log Reader Agent está em execução no banco de dados. Por padrão, o agente é executado continuamente.
  • Interrompa a atividade do usuário em tabelas publicadas.
  • Reserve um tempo para o Log Reader Agent copiar transações para o banco de dados de distribuição e pare o agente.
  • Execute sp_replcmds para verificar se todas as transações foram processadas. O conjunto de resultados deste procedimento deve estar vazio.
  • Execute sp_replflush para fechar a conexão de sp_replcmds.
  • Altere o nível de compatibilidade do banco de dados .
  • Inicie o Log Reader Agent.

Eu tenho uma configuração muito semelhante e quero fazer a mesma coisa, mas meu banco de dados de distribuição também está no modo de compatibilidade 90. Pelo que entendi, o distribuidor não pode operar em um modo de menor compatibilidade como editor. Então, a ordem das operações seria simplesmente inserir "Alterar nível de compatibilidade do distribuidor" antes de "Alterar o nível de compatibilidade do banco de dados (publicado)" - após o desligamento do leitor de log?
Fila de Mann

@QueueMann "Change compatibility level of distributor" before "Change the compatibility level of the (published) database"está correto. O banco de dados de distribuição deve ter um nível de compatibilidade igual ou superior ao do Publisher. Um editor pode estar no mesmo nível ou em um nível mais baixo que um distribuidor.
Kin Shah

2

Fizemos isso, para garantir a segurança, paramos de replicar esse banco de dados, alteramos o nível de compatibilidade e reinicializamos. Não tivemos problemas. Era uma publicação bem pequena e havia apenas um banco de dados inscrito. Eu acho que poderia ser mais difícil, pois seus cenários de replicação ficam mais complexos. (ou seja, assinando o banco de dados, obtendo publicações de vários dbs etc.)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.