locked
SQLServer Error: 446 RRS feed

  • Pergunta

  • Olá, recentemente estou tendo problemas com o SQL 2000.
    Alguem pode me ajudar a solucionar esse problema?

    apareceu isso no log:

    2009-08-09 06:04:51 - ! [298] SQLServer Error: 446, Cannot resolve collation conflict for equal to operation. [SQLSTATE 42000]
    Se possivel explicar-me por que isso corre tbm...
    Já procurei e até agora num achei nada.
    Quando acontece esse erro, o banco de dados para, deixando a loja inativa.
    Basta reiniciar os serviços e volta ao normal, mas isso já está me incomodando.
    Desde já agradeço.
    segunda-feira, 10 de agosto de 2009 20:05

Respostas

  • Olá Anderson,

    Dá uma olhada neste post que acredito que possa lhe ajudar.

    http://social.msdn.microsoft.com/Forums/pt-BR/infrageral/thread/4f9d1e61-b94c-45ac-bd06-5822d6826429

    Abraços
    Demétrio Silva
    quarta-feira, 12 de agosto de 2009 14:12

Todas as Respostas

  • Anderson,

    Este erro esta ocorrendo em qual momento?
    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    segunda-feira, 10 de agosto de 2009 23:59
    Moderador
  • Ola Junior,
    Olha só, esse erro vem acontecendo frequentemente, assim, do nada.
    Ontem por volta das 16:00, e já aconteceu hoje por volta das 07:00am tbm.
    Agora são 11:30 e tornou a acontecer.
    terça-feira, 11 de agosto de 2009 10:31
  • Anderson,

    Foi realizada alguma atualização ou manutenção neste SQL Server?

    Existe alguma transação que pode esta gerando este erro?

    Você já pensou em monitorar este servidor através do SQL Server Profiler?
    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    quarta-feira, 12 de agosto de 2009 02:53
    Moderador
  • Junior,

    Olha só, tinha usado o Profiler, no entanto não consegui capturar nehum erro, tornei a fazer agora capturando um monte de eventos, na verdade criei duas trace, uma filtrando apenas uma  maquina suspeita, e o outro sem filtros.
    Bom,  quanto a atualização, foi feita sim, uma atualização no mês 6, ou seja, em Junho, e eu soh vim me preocupar com isso agora, não visualisava os logs de erros antigamente.
    Agora uma coisa ingraçada: Em um dos Caixa da loja, tem um pc com umas 3 versoes,  do aplicativo usado aqui(a maquina suspeita citada acima), o que poderia a me levar a crer que esta fosse a causa do problema.Porem, esse erro aconteceu hoje durante toda a madrugada, até que o servidor foi desligado, em seguida, quando ligado por volta das 06:00 o problema tornou se repeti.Ou seja, a maquina suspeita não estava em uso durante esse horario.

    olha só o inicio do arquivo de log:

    Nome do arquivo de log: SQLAGENT.1

    (inicio do log)...
    2009-08-11 11:19:17 - ? [393] Waiting for SQL Server to recover databases...
    2009-08-11 11:20:18 - ? [100] Microsoft SQLServerAgent version 8.00.194 (x86 unicode retail build) : Process ID 1948
    2009-08-11 11:20:18 - ? [101] SQL Server BROTAS version 8.00.194 (0 connection limit)
    2009-08-11 11:20:18 - ? [102] SQL Server ODBC driver version 3.85.1022
    2009-08-11 11:20:18 - ? [103] NetLib being used by driver is DBMSSHRN.DLL; Local host server is (local)
    2009-08-11 11:20:18 - ? [310] 1 processor(s) and 2048 MB RAM detected
    2009-08-11 11:20:18 - ? [339] Local computer is BROTAS running Windows NT 5.2 (3790)
    2009-08-11 11:20:19 - ! [364] The Messenger service has not been started - NetSend notifications will not be sent
    2009-08-11 11:20:19 - ? [129] SQLSERVERAGENT starting under Windows NT service control
    2009-08-11 11:20:19 - + [260] Unable to start mail session (reason: No mail profile defined)
    2009-08-11 11:20:19 - + [396] An idle CPU condition has not been defined - OnIdle job schedules will have no effect
    2009-08-11 11:20:39 - ! [298] SQLServer Error: 446, Cannot resolve collation conflict for equal to operation. [SQLSTATE 42000].......................................................


    (final do log)...
    2009-08-12 02:00:24 - ! [298] SQLServer Error: 446, Cannot resolve collation conflict for equal to operation. [SQLSTATE 42000]
    2009-08-12 02:00:32 - ? [130] SQLSERVERAGENT stopping because of Windows shutdown...
    2009-08-12 02:00:45 - ! [298] SQLServer Error: 18452, Login failed for user '(null)'. Reason: Not associated with a trusted SQL Server connection. [SQLSTATE 28000]
    2009-08-12 02:00:45 - ! [382] Logon to server '(local)' failed (SaveAllSchedules)
    2009-08-12 02:00:47 - ? [098] SQLServerAgent terminated (normally)


    Em seguida temos esse outro log
    Nome do arquivo de log: SQLAGENT.OUT
    (inicio do log)....
    2009-08-12 06:02:35 - ? [393] Waiting for SQL Server to recover databases...
    2009-08-12 06:02:54 - ? [100] Microsoft SQLServerAgent version 8.00.194 (x86 unicode retail build) : Process ID 1908
    2009-08-12 06:02:54 - ? [101] SQL Server BROTAS version 8.00.194 (0 connection limit)
    2009-08-12 06:02:54 - ? [102] SQL Server ODBC driver version 3.85.1022
    2009-08-12 06:02:54 - ? [103] NetLib being used by driver is DBMSSHRN.DLL; Local host server is (local)
    2009-08-12 06:02:54 - ? [310] 1 processor(s) and 2048 MB RAM detected
    2009-08-12 06:02:54 - ? [339] Local computer is BROTAS running Windows NT 5.2 (3790)
    2009-08-12 06:02:54 - ! [364] The Messenger service has not been started - NetSend notifications will not be sent
    2009-08-12 06:02:54 - ? [129] SQLSERVERAGENT starting under Windows NT service control
    2009-08-12 06:02:54 - + [260] Unable to start mail session (reason: No mail profile defined)
    2009-08-12 06:02:54 - + [396] An idle CPU condition has not been defined - OnIdle job schedules will have no effect
    2009-08-12 06:03:16 - ! [298] SQLServer Error: 446, Cannot resolve collation conflict for equal to operation. [SQLSTATE 42000] ........( a ultima linha prosegue até este exato momento (08:50am)

    Bom, o Servidor não travou até aqui...

    Obrigado.



    quarta-feira, 12 de agosto de 2009 11:55
  • Anderson, Aparentemente o log não esta apresentando informações inconsistentes. Mas precisamos fazer uma análise melhor para identificar algumas situações. Agora deixa eu te perguntar uma coisa, por uma máquina esta apresentando 3 versões deste aplicativo.
    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    quarta-feira, 12 de agosto de 2009 13:14
    Moderador
  • A maquina que está com 3 versões, são na verdade apenas o aplicativo atualizado, ou seja, dois atalhos desatualiazado e um atualizado, e vez enquando o usuario usa o antigo.
    Não entendo muito a respeito disso, mas o que me consta é que tipo, na atualização o aplicativo cria e/ou remove tabelas insere ou deleta dados e por ai vai.
    Dei uma olhadinha tbm no books online, e no site MSDN mas infelizmente não consegui interpretar o assunto referete a COLLATION.
    quarta-feira, 12 de agosto de 2009 13:22
  • Anderson,

    O Collation(coleção de dados) representa a configuração que esta sendo utilizada no SQL Server e seus objetos para armazenar os dados de acordo com um padrão.

    Através do Collation o SQL Server vai armazenar os dados seguintes padrões de idioma, sobre os campos de data e hora, money, respeitar as acentuações.


    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    quarta-feira, 12 de agosto de 2009 13:56
    Moderador
  • Olá Anderson,

    Dá uma olhada neste post que acredito que possa lhe ajudar.

    http://social.msdn.microsoft.com/Forums/pt-BR/infrageral/thread/4f9d1e61-b94c-45ac-bd06-5822d6826429

    Abraços
    Demétrio Silva
    quarta-feira, 12 de agosto de 2009 14:12
  • Então por que vem ocorrendo esse erro?
    quarta-feira, 12 de agosto de 2009 14:15
  • Anderson,

    Dá uma olhada nos links que postei que eles explicam o que é collation, e suas dúvidas.

    Pesquise por collation ou collate no fórum que você vai encontrar muita coisa.

    Abraços
    Demétrio Silva
    quarta-feira, 12 de agosto de 2009 14:20
  • vlw, num tinha visto o link antes de postar...
    quarta-feira, 12 de agosto de 2009 14:21
  • Olá Demetrio e Junior,
    Pelo que entendi, Collation é mais ou menos,  a maneira como são armazenadas, comparados e ordernados os caracteres.
    E no caso de uma comparação entre colunas com collate diferentes gera um conflito, causando erros.
    Bom, seguindo o link postado por voces, cheguei até este outro link:

    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!183.entry?ccr=4891#comment

    O qual tem um tutorial para alterar o collate do Banco de Dados e das colunas, no entanto, o autor adverte quanto a alguns cuidados, por exemplo, em relação aos indeces das tabelas, etc.

    Também encontrei este outro: http://www.mcdbabrasil.com.br/modules.php?name=News&file=article&sid=244
    onde explica como auterar a collate da Instance e, consequentemente, das bases, das tabelas e respectivas colunas, de forma diferente.

    Verificando as bases aqui constatei o seguinte:
     
    A collate do Servidor está definida como:  Latin1-General, case-insensitive, accent-sensitive, kanatype-insensitive, width-insensitive(o que se não mim engano, é o mesmo que Latin1_General_CI_AI

    Já o Banco de Dados está definada como: Latin1_General_CI_AS

    E as colunas das tabelas estão algumas com a mesma definição do banco de dados, outras como NULL, e ainda outras como
    SQL_Latin1_General_CP1_CI_AS( este ultimo em tabelas praticamente inuteis)

    No caso do collate do servidor, o que seria Kanatype-insensitive, width-insesitive?
    Outra duvida é?
    Devo alterar o collate do Servidor e, consequentemente das bases, tabelas e respectivas colunas, seguindo o segundo link?
    Isso resolveria meu problema??
    Mas uma vez obrigado pela força ai pessoal



    • Editado Anderson Profeta segunda-feira, 17 de agosto de 2009 13:15 Lhe um pouquinho mas a repesto
    sábado, 15 de agosto de 2009 14:56
  • Anderson,

    O Kanatype é um collate relacionado ao idioma Japonês.

    Provavelmente a alteração do collate vai resolver o seu problema.
    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    terça-feira, 18 de agosto de 2009 02:55
    Moderador
  • Certo Junior,


    Talvez resolva meu problema, mas.... qual collate usar?

    poderia ser: Latin1_General_CI_AI???
    E seria atráves da alteração em um todo? desde a instance até as colunas? ou apenas do Banco de dados e colunas?

    Mas uma vez, obrigado pela atenção
    terça-feira, 18 de agosto de 2009 10:42