none
Interpretação dos erros apresentados no Update Advisor do SQL2008R2 RRS feed

  • Pergunta

  • Primeiramente gostaria de esclarecer que não quero fazer desse post um suporte 0800 do SQL2008R2.  Gostaria apenas de um horizonte para buscar as soluções necessárias na migração de dados.

    Ao executar o Update Advisor do SQL2008 R2 Standard para verificar os possíveis erros/conflitos de migração de uma base de dados do SQL2000 Enterprise (atualmente com 1,8gb) foi apresentada a lista abaixo.  Ao término estão minhas 3 dúvidas:

     

    Database Server,"PreUpgrade","Referência de objeto não definida para uma instância de um objeto.","SVCACCTREQ",
    Database Server,"PreUpgrade","Método não encontrado: 'System.Collections.Generic.IEnumerable`1<Microsoft.SqlServer.Management.SqlParser.Parser.Error> Microsoft.SqlServer.Management.SqlParser.SqlCodeDom.SqlCodeObject.get_Errors()'.","DROPSYSOBJ",
    Database Server,"PreUpgrade","Método não encontrado: 'System.Collections.Generic.IEnumerable`1<Microsoft.SqlServer.Management.SqlParser.Parser.Error> Microsoft.SqlServer.Management.SqlParser.SqlCodeDom.SqlCodeObject.get_Errors()'.","OLDSYSTEMTABLES",
    Database Server,"PreUpgrade","Método não encontrado: 'System.Collections.Generic.IEnumerable`1<Microsoft.SqlServer.Management.SqlParser.Parser.Error> Microsoft.SqlServer.Management.SqlParser.SqlCodeDom.SqlCodeObject.get_Errors()'.","ORDERBYORDINALS",
    Database Server,"PreUpgrade","Método não encontrado: 'System.Collections.Generic.IEnumerable`1<Microsoft.SqlServer.Management.SqlParser.Parser.Error> Microsoft.SqlServer.Management.SqlParser.SqlCodeDom.SqlCodeObject.get_Errors()'.","VIEWFORBROWSE",
    Database Server,"PreUpgrade","Método não encontrado: 'System.Collections.Generic.IEnumerable`1<Microsoft.SqlServer.Management.SqlParser.Parser.Error> Microsoft.SqlServer.Management.SqlParser.SqlCodeDom.SqlCodeObject.get_Errors()'.","FTPROPS",
    Database Server,"PreUpgrade","Método não encontrado: 'System.Collections.Generic.IEnumerable`1<Microsoft.SqlServer.Management.SqlParser.Parser.Error> Microsoft.SqlServer.Management.SqlParser.SqlCodeDom.SqlCodeObject.get_Errors()'.","DUMPLOAD",
    Database Server,"PreUpgrade","Método não encontrado: 'System.Collections.Generic.IEnumerable`1<Microsoft.SqlServer.Management.SqlParser.Parser.Error> Microsoft.SqlServer.Management.SqlParser.SqlCodeDom.SqlCodeObject.get_Errors()'.","FTCATALOGNAMERESTRICTION",
    Database Server,"PreUpgrade","Método não encontrado: 'System.Collections.Generic.IEnumerable`1<Microsoft.SqlServer.Management.SqlParser.Parser.Error> Microsoft.SqlServer.Management.SqlParser.SqlCodeDom.SqlCodeObject.get_Errors()'.","INVALIDCHAR",
    Database Server,"PreUpgrade","Método não encontrado: 'System.Collections.Generic.IEnumerable`1<Microsoft.SqlServer.Management.SqlParser.Parser.Error> Microsoft.SqlServer.Management.SqlParser.SqlCodeDom.SqlCodeObject.get_Errors()'.","MERGE",
    Database Server,"PreUpgrade","Método não encontrado: 'System.Collections.Generic.IEnumerable`1<Microsoft.SqlServer.Management.SqlParser.Parser.Error> Microsoft.SqlServer.Management.SqlParser.SqlCodeDom.SqlCodeObject.get_Errors()'.","SYSPERFINFO",
    Database Server,"PreUpgrade","Método não encontrado: 'System.Collections.Generic.IEnumerable`1<Microsoft.SqlServer.Management.SqlParser.Parser.Error> Microsoft.SqlServer.Management.SqlParser.SqlCodeDom.SqlCodeObject.get_Errors()'.","SPCONFIGURE",
    Database Server,"PreUpgrade","Método não encontrado: 'System.Collections.Generic.IEnumerable`1<Microsoft.SqlServer.Management.SqlParser.Parser.Error> Microsoft.SqlServer.Management.SqlParser.SqlCodeDom.SqlCodeObject.get_Errors()'.","SPHELPTRIGGERNEWCOL",
    Database Server,"PreUpgrade","Método não encontrado: 'System.Collections.Generic.IEnumerable`1<Microsoft.SqlServer.Management.SqlParser.Parser.Error> Microsoft.SqlServer.Management.SqlParser.SqlCodeDom.SqlCodeObject.get_Errors()'.","NONANSIOUTER",
    Database Server,"PreUpgrade","Método não encontrado: 'System.Collections.Generic.IEnumerable`1<Microsoft.SqlServer.Management.SqlParser.Parser.Error> Microsoft.SqlServer.Management.SqlParser.SqlCodeDom.SqlCodeObject.get_Errors()'.","XPAGENTPROXY",
    Database Server,"PreUpgrade","Método não encontrado: 'System.Collections.Generic.IEnumerable`1<Microsoft.SqlServer.Management.SqlParser.Parser.Error> Microsoft.SqlServer.Management.SqlParser.SqlCodeDom.SqlCodeObject.get_Errors()'.","DEPRECATEDSP",
    Database Server,"PreUpgrade","Método não encontrado: 'System.Collections.Generic.IEnumerable`1<Microsoft.SqlServer.Management.SqlParser.Parser.Error> Microsoft.SqlServer.Management.SqlParser.SqlCodeDom.SqlCodeObject.get_Errors()'.","OLDDBCC",
    Database Server,"PreUpgrade","Método não encontrado: 'System.Collections.Generic.IEnumerable`1<Microsoft.SqlServer.Management.SqlParser.Parser.Error> Microsoft.SqlServer.Management.SqlParser.SqlCodeDom.SqlCodeObject.get_Errors()'.","ORDERBYALIAS",
    Database Server,"PreUpgrade","Método não encontrado: 'System.Collections.Generic.IEnumerable`1<Microsoft.SqlServer.Management.SqlParser.Parser.Error> Microsoft.SqlServer.Management.SqlParser.SqlCodeDom.SqlCodeObject.get_Errors()'.","DBCCCONCURRENCYVIOLATION",
    Database Server,"PreUpgrade","Método não encontrado: 'System.Collections.Generic.IEnumerable`1<Microsoft.SqlServer.Management.SqlParser.Parser.Error> Microsoft.SqlServer.Management.SqlParser.SqlCodeDom.SqlCodeObject.get_Errors()'.","INFOSCHEMATA",
    Database Server,"PreUpgrade","Método não encontrado: 'System.Collections.Generic.IEnumerable`1<Microsoft.SqlServer.Management.SqlParser.Parser.Error> Microsoft.SqlServer.Management.SqlParser.SqlCodeDom.SqlCodeObject.get_Errors()'.","TRACEFLAGS",
    Database Server,"PreUpgrade","Método não encontrado: 'System.Collections.Generic.IEnumerable`1<Microsoft.SqlServer.Management.SqlParser.Parser.Error> Microsoft.SqlServer.Management.SqlParser.SqlCodeDom.SqlCodeObject.get_Errors()'.","BACKUPRESTORETRANSACTION",
    Database Server,"PreUpgrade","Método não encontrado: 'System.Collections.Generic.IEnumerable`1<Microsoft.SqlServer.Management.SqlParser.Parser.Error> Microsoft.SqlServer.Management.SqlParser.SqlCodeDom.SqlCodeObject.get_Errors()'.","SYSLOCKINFO",
    Database Server,"PreUpgrade","Método não encontrado: 'System.Collections.Generic.IEnumerable`1<Microsoft.SqlServer.Management.SqlParser.Parser.Error> Microsoft.SqlServer.Management.SqlParser.SqlCodeDom.SqlCodeObject.get_Errors()'.","BACKUPLOG",
    Database Server,"PreUpgrade","Método não encontrado: 'System.Collections.Generic.IEnumerable`1<Microsoft.SqlServer.Management.SqlParser.Parser.Error> Microsoft.SqlServer.Management.SqlParser.SqlCodeDom.SqlCodeObject.get_Errors()'.","LARGECONSTTYPE",
    Database Server,"PreUpgrade","Método não encontrado: 'System.Collections.Generic.IEnumerable`1<Microsoft.SqlServer.Management.SqlParser.Parser.Error> Microsoft.SqlServer.Management.SqlParser.SqlCodeDom.SqlCodeObject.get_Errors()'.","HOSTIDRETURN",
    Database Server,"PreUpgrade","Método não encontrado: 'System.Collections.Generic.IEnumerable`1<Microsoft.SqlServer.Management.SqlParser.Parser.Error> Microsoft.SqlServer.Management.SqlParser.SqlCodeDom.SqlCodeObject.get_Errors()'.","DBCOMPTLEVEL",
    Database Server,"PreUpgrade","Método não encontrado: 'System.Collections.Generic.IEnumerable`1<Microsoft.SqlServer.Management.SqlParser.Parser.Error> Microsoft.SqlServer.Management.SqlParser.SqlCodeDom.SqlCodeObject.get_Errors()'.","FORXMLAUTO",
    Database Server,"PreUpgrade","Método não encontrado: 'System.Collections.Generic.IEnumerable`1<Microsoft.SqlServer.Management.SqlParser.Parser.Error> Microsoft.SqlServer.Management.SqlParser.SqlCodeDom.SqlCodeObject.get_Errors()'.","VIEWCHECKOPT",
    Database Server,"Advisory","Outros problemas de atualização do Mecanismo de Banco de Dados","Vários problemas de atualização não podem ser detectados pelo Supervisor de Atualização. Para exibir problemas não detectáveis, clique em ""Mais informações sobre este problema e como resolve-lo"".",

     

    -Qual o significado da primeira mensagem ?

     

    -Qual o significado da última mensagem ?  (clico no "Mais informações..." mas não aparece nada)

    -Excetuando-se a 1a. e a última mensagem, todas as demais referem-se a objetos incompatíveis do 2000 para o 2008 ?

     

    Levando em consideração meu desconhecimento dos erros, da premissa que hoje usamos o SQL2000 apenas para armazenar dados, isto é, as SP´s, views, triggers que estão lá não são usadas para nada, e que inicialmente no SQL2008 manteremos o mesmo perfil de uso atual (somente armazenamento de dados), há riscos na migração de uma base de 1,5gb do 2000 para o 2008 ?  

    Muito obrigado pela atenção dispensada.

    Márcio.

     

    OBS:

    Posteriormente, direto no SQL2008, refaremos as SP´s, Views, etc...

     


    terça-feira, 20 de dezembro de 2011 14:06

Respostas

  • Marcio;

    No meu ponto de vista a regra de negócio na aplicação como no seu caso, traz mais riscos a migração, uma vez que queries não suportadas no SQL 2008 podem ser executadas.

    Vi seu outro post sobre este assunto e definitivamente eu faria duas migrações uma para homologar (muito bem homologado) outra para a produção.

    O processo de Homologação poderia ser feito em 2 etapas:

    -Homologar tudo usando modo de compatibilidade 80, se tudo der certo...

    -Subir o modo de compatibilidade para 100 e homologar novamente tudo.

    Se houver problemas no modo de compatibilidade 80 é hora de parar e avaliar, entender e resolver os problemas (ou abortar a migração)

    Se no modo de compatibilidade 80 não houver problemas, mas no modo de compatibilidade 100 houver, você poderá optar por manter em modo 80 e não alterar a aplicação (pedendo assim as ótimas melhorias de desenvolvimento das novas versões do SQL) ou avaliar, entender e resolver os problemas nas queries e subir a compatibilidade em 100.

    Eu tenho vários databases em modo de compatibilidade 80 rodando em SQL 2008 R2, funciona na boa. Teoricamente não há impactos.

    Avalie as feactures avançadas do Enterprise muitas delas não são suportadas na versão Standard, neste caso estamos falando de feactures administrativas, não me recordo se o 2000 já suportava mas fica o exemplo (tabelas particionadas só são aplicáveis em versões enterprise).

    DESCARTE COMPLETAMENTE a opção de migração IN Place.

    *Só para lembrar que a compatibilidade 80 não será suportada na versão 2012, são sempre 2 níveis suportados, por exemplo a compatibilidade 90 é suportada no SQL 2012.

    Veja se seus databases atuais estão todos em compatibilidade 80 (se tiver alguma em 70 você precisará migrar primeiro para SQL 2005 e depois migrar novamente só que para SQL 2008)


    View Ricardo Muramatsu's profile on LinkedIn
    sexta-feira, 23 de dezembro de 2011 10:33

Todas as Respostas

  • Marcio;

    No meu ponto de vista a regra de negócio na aplicação como no seu caso, traz mais riscos a migração, uma vez que queries não suportadas no SQL 2008 podem ser executadas.

    Vi seu outro post sobre este assunto e definitivamente eu faria duas migrações uma para homologar (muito bem homologado) outra para a produção.

    O processo de Homologação poderia ser feito em 2 etapas:

    -Homologar tudo usando modo de compatibilidade 80, se tudo der certo...

    -Subir o modo de compatibilidade para 100 e homologar novamente tudo.

    Se houver problemas no modo de compatibilidade 80 é hora de parar e avaliar, entender e resolver os problemas (ou abortar a migração)

    Se no modo de compatibilidade 80 não houver problemas, mas no modo de compatibilidade 100 houver, você poderá optar por manter em modo 80 e não alterar a aplicação (pedendo assim as ótimas melhorias de desenvolvimento das novas versões do SQL) ou avaliar, entender e resolver os problemas nas queries e subir a compatibilidade em 100.

    Eu tenho vários databases em modo de compatibilidade 80 rodando em SQL 2008 R2, funciona na boa. Teoricamente não há impactos.

    Avalie as feactures avançadas do Enterprise muitas delas não são suportadas na versão Standard, neste caso estamos falando de feactures administrativas, não me recordo se o 2000 já suportava mas fica o exemplo (tabelas particionadas só são aplicáveis em versões enterprise).

    DESCARTE COMPLETAMENTE a opção de migração IN Place.

    *Só para lembrar que a compatibilidade 80 não será suportada na versão 2012, são sempre 2 níveis suportados, por exemplo a compatibilidade 90 é suportada no SQL 2012.

    Veja se seus databases atuais estão todos em compatibilidade 80 (se tiver alguma em 70 você precisará migrar primeiro para SQL 2005 e depois migrar novamente só que para SQL 2008)


    View Ricardo Muramatsu's profile on LinkedIn
    sexta-feira, 23 de dezembro de 2011 10:33
  • Olá Márcio, acredito que esta tua situação seja continuidade da tua migração do SQL Server 2000 para 2008.

    Faça o restore do teu backup no novo SQL Server e depois recrie tuas SP's, views, etc...

    Porque te recomendo fazer isso, pois diversos recursos novos estão disponíveis a partir das novas versões do SQL Server, isto pode inclusive tornar tuas SP's ou triggers obsoletas, podendo ser melhoradas com novos recursos que te favorecerão futuramente.

    Se tu recriá-las talvez possa verificar cada uma delas se existe uma nova forma de realizar o mesmo procedimento, dessa otimizando teu banco de dados.

    Veja se esta opção é válida e possível tendo em vista o retrabalho de recriá-las, mas em muitas situações pode valer a pena além de lhe dar um know-how maior sobre tua base de dados.

    Espero que ajude.

    Vlew.

    terça-feira, 27 de dezembro de 2011 11:14
  • Márcio,

    Faça um teste, ao invês de Migrar direto do 2000 para o 2008 R2, Migre para o 2005, faça todas as validações e depois Migre para o 2008 ou R2.

    Outra possibilidade, ao invês de Migrar direto do 2005 para o R2, migre para o 2008 e faça as validações, depois migre para o R2.

    Claro que é um caminho bem maior, mas assim você estará validando o seu ambiente em todas as demais versões do SQL Server até chegar no R2.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
    quarta-feira, 28 de dezembro de 2011 12:33
    Moderador