Atualizar completamente o banco de dados SQL

2

Temos um servidor SQL Server 2000 que estava sendo executado anteriormente no SQL Server 7, com o resultado de que o agrupamento padrão não é o que parece ser o padrão definido posteriormente para o SQL 2000 (é SQL_Latin1_General_CP1_CI_AS em vez de Latin1_General_CI_AS).

De qualquer forma, agora estamos planejando atualizar para o SQL Server 2008. Embora o orientador de atualização não apresente problemas além de uma manutenção sp referente a algumas tabelas de sistema legadas, fiquei me perguntando como fazer uma atualização 'completa' do banco de dados, em vez de simplesmente deixar o banco de dados em modo de compatibilidade, o que parece acontecer se faça uma atualização no local ou restaure / anexe o banco de dados SQL2000 a uma instância SQL2008.

Então eu tenho várias perguntas:

  1. Perdemos alguma funcionalidade deixando o DB no modo de compatibilidade para 2000?
  2. Se mudarmos o modo de compatibilidade para 2008, o que poderia quebrar? Haveria outras configurações que precisávamos mudar para torná-lo totalmente um banco de dados do SQL 2008?
  3. Existe alguma maneira de fazer o upgrade desconsiderar as referências de agrupamento existentes e usar o padrão do servidor por completo?
  4. Ou é melhor fazer o script do banco de dados novamente do zero e importar os dados depois?

Basicamente, queremos atualizar, mas certifique-se de que esse banco de dados / servidor herdado possa se beneficiar da funcionalidade das versões mais recentes do SQL Server.

    
por MartW 16.10.2009 / 15:16

2 respostas

2
  1. você perderá a capacidade de executar os comandos mais recentes, mas não perderá nenhuma funcionalidade, a menos que faça upgrade do aplicativo usando o banco de dados (que, no momento, não pode estar usando os recursos de 2008)

2.Consulte livros on-line sobre Alterações no nível de compatibilidade . Observe que essas são alterações de interpretação de idioma, portanto, você ainda obtém as melhorias no mecanismo de consulta, etc.

3.Não que eu saiba. Você pode alterá-lo através do agrupamento alter database. Você deve ver pouca diferença se o agrupamento for SQL_Latin1_General_CP1_CI_AS ou Latin1_General_CI_AS , mas ambos tiverem instâncias em que sejam mais rápidos ou mais lentos que o outro.

Latin1_General_CI_AS : - Latin1-Geral, insensibilidade a maiúsculas e minúsculas sensível, insensível ao tipo de letra, insensível à largura

SQL_Latin1_General_CP1_CI_AS : - Latin1-Geral, insensível a maiúsculas e minúsculas sensível ao acento, insensível ao tipo de letra, insensível à largura para Unicode Dados, ordem de classificação 52 do SQL Server na página de código 1252 para dados não-Unicode

Você pode obter mais ideias em fn_helpcollations.

4.você poderia fazer isso, mas por padrão seu nível de compatibilidade com o banco de dados será 100, o que pode não funcionar adequadamente com seu aplicativo legado. É melhor ver qual a versão mais recente do SQL Server que o aplicativo suporta e definir esse nível de compatibilidade.

    
por 16.10.2009 / 17:50
0
  1. Sim, você perderá todas as coisas de 2005/8 se deixar o DB no modo de compatibilidade 2000
  2. Há uma seção no Books Online que fala sobre recursos que foram descontinuados. Dê uma olhada.
  3. Não tanto quanto eu sei. Claro que você poderia fazer uma instalação limpa de 2008 e migrar os bancos de dados, mas isso teria que estar em uma instância nomeada.
  4. Eu voto para essa ideia. Você tem um plano completo de reversão.
por 16.10.2009 / 15:28