A atualização do meu banco de dados de 2005 - 2008 fará com que meus aplicativos falhem?

2

Temos alguns bancos de dados no nosso servidor.
Gostaríamos de atualizar esses bancos de dados para o sql 2008.
Existe alguma chance de que alguns recursos do aplicativo não funcionem em 2008 que funcionaram em 2005?
Foi-me dito que o sql 2008 era 100% compatível com 2005.

    
por user29964 18.02.2010 / 11:43

3 respostas

6

Nenhuma versão do SQL é 100% compatível com versões anteriores. A cada lançamento, há uma lista bem documentada de recursos reprovados e descontextualizados, e o SQL Server 2008 não é diferente. A lista está publicada em Compatibilidade com versões anteriores do Mecanismo de Banco de Dados do SQL Server . Contém uma lista de recursos que não são mais suportados no SQL 2008, como:

  • sp_addalias
  • instruções DUMP e LOAD
  • REGISTRO DE BACKUP COM LOG DO NOLOG / BACKUP COM TRUNCATEONLY
  • TRANSACÇÃO DE BACKUP
  • CONCURANCEVIOLATION DO DBCC
  • sp_addgroup / sp_dropgroup / sp_changegroup / sp_helpgroup
  • sp_makewebtask / sp_dropwebtask / sp_runwebtask
  • sp_enumcodepages

Além disso, nenhum recurso do SQL Server é descontinuado sem um amplo aviso de heads-up. Todos os recursos desconcentrados no SQL 2008 estavam na lista de recursos preteridos no SLQ 2005. Você pode usar o SQL Profiler para monitorar seu aplicativo SQL 2005 e observar os eventos:

O primeiro evento será disparado toda vez que seu aplicativo usar um recurso na lista 'endagered'. O segundo evento será acionado quando você usar um recurso que será descontinuado na próxima versão.

Finalmente, o contador de desempenho do SQL para recursos obsoletos, consulte O que foi preterido características que estou usando? :

select instance_name as [Deprecated Feature]
  , cntr_value as [Frequency Used]
from sys.dm_os_performance_counters
where object_name = 'SQLServer:Deprecated Features'
and cntr_value > 0
order by cntr_value desc

Entre toda a documentação e infraestrutura disponíveis para monitorar recursos preteridos, você tem vários meios de descobrir se seu aplicativo está usando recursos descontinuados.

Agora, o que foi dito, a menos que você use recursos da idade das trevas do SQL Server 6.0. seu aplicativo provavelmente não será afetado no SQL Server 2008. Há vários motivos para atualizar, principalmente eu cito compressão de página , que é literalmente um grande aumento de desempenho a custo livre (exagero para efeito dramático, mas apenas ligeiramente).

Você deve ir em frente e atualizar, mas seja inteligente:

  • Execute o orientador de atualização , leia o conselho
  • Tenha um ambiente de teste, implemente seu aplicativo no teste primeiro
  • Tenha uma bateria abrangente de testes funcionais para realizar, confirme que seu produto ainda funciona como anunciado. Se você puder medir a cobertura do código de teste, tente atingir uma cobertura de 85 a 90%
  • Ter uma saída reta se as coisas forem à falência. Lembre-se de que um banco de dados atualizado nunca pode ser rebaixado. Portanto, mantenha cópias seguras dos arquivos de banco de dados do SQL 2005, caso seja forçado a voltar. Tenha um plano de tecnologia para aplicar as transações pós-atualização de volta a 2005, se necessário, ou tenha um plano de negócios para explicar por que as transações foram perdidas (não estou brincando, pode ser uma solução perfeitamente aceitável).

Então, dependendo de quão pretensiosos são seus dados, você deseja aplicar todos, alguns ou nenhum dos itens acima. Posso dizer que se você estivesse no barco 'all', provavelmente não teria feito a pergunta para começar;) então provavelmente alguns dos conselhos acima se aplicam a você.

    
por 18.02.2010 / 19:14
3

Não há como dizer o que os aplicativos deles farão.

Acho que o melhor de sua ação é ter um segundo servidor que execute o SQL Server 2008, migrar os bancos de dados para ele (talvez um de cada vez, lentamente) e, se houver algum problema, voltar para o SQL Server 2005 servidor.

Isso requer dois servidores (físicos ou virtuais), mas oferece perfeita recuperação em ambos os casos.

    
por 18.02.2010 / 11:56
2

Um bom teste é executar o Supervisor de Atualização do Microsoft SQL Server 2008. O Supervisor de Atualização do Microsoft SQL Server 2008 analisa instâncias do SQL Server 2000 e do SQL Server 2005 em preparação para atualizar para o SQL Server 2008. O Supervisor de Atualização identifica alterações de recursos e configurações que podem afetar sua atualização e fornece links para a documentação que descreve cada problema identificado. como resolver isso.

Você pode baixá-lo gratuitamente aqui: link

Você pode executar isso em produção, mas, como foi dito acima, um ambiente de teste é sempre melhor.

    
por 18.02.2010 / 14:29