Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Migração MSSQL7 para MSSQL2000

13 views
Skip to first unread message

Adalberto Andrade

unread,
Dec 13, 2005, 7:32:02 AM12/13/05
to
Fiz o restore (só do Banco) SQL7 no SQL2000 sem qq problema. A parte
triste da história foi quando fui rodar uma sp que acusou erro de conflito
de collation.

Detalhando : O SQL7 tinha o collation SQL_Latin1_General_CP1_CI_AS, já
o SQL2000 tem o collation Latin1_General_CI_AS. Então achei razoável
criar o Banco no SQL2000 com o seu default(Latin1_General_CI_AS). O
restore funcionou, mas acusou o erro acima. A segunda tentativa foi
excluir o Banco criado e criá-lo com o mesmo collation do SQL7,ou seja,
o SQL_Latin1_General_CP1_CI_AS. Após restore, o resultado da execu-
ção da sp foi o mesmo.

Obs.: Sei que se criar uma instância no SQL2000 com o collation do SQL7
o problema estará resolvido, mas não podemos alterar o ambiente.

Agradeceria se pudessem me ajudar,
Adalberto Andrade

Marcelo Colla

unread,
Dec 13, 2005, 7:36:39 AM12/13/05
to
o erro por acaso nao esta relacionado com a sua tempdb ?, se for altere o
collate do msdb de um start stop no servidor deve funcionar assim,

Abs.
"Adalberto Andrade" <Adalbert...@discussions.microsoft.com> escreveu na
mensagem news:887C3C2C-97E5-4FDD...@microsoft.com...

Nilton Pinheiro

unread,
Dec 13, 2005, 7:59:02 AM12/13/05
to
Olá Adalberto,

Para evitar este tipo de problema vc deveria ter instalado o SQL Server 2000
utilizando o mesmo collate do SQL Server 7. O fato de vc ter criado o banco
com o collate do 2000 não resolveu porque ao voltar o restore do 7, o collate
mantido será o que está no banco restaurado. O problema é que mesmo que vc
altere o colalte para o banco (usando o ALTER DATABASE) o collate das colunas
do tipo char, vachar, etc... não serão alterados e vc cairá no mesmo problema
quando estiver fazendo JOINS entre colunas com collate diferente.

Bom, para resolver este problema de forma simples, o que vc pode estar
fazendo é instalar um SQL Server 2000 em qualquer máquina com o mesmo collate
já utilizado no SQL 7, restaurar sua base 7 para este SQL e depois executar o
procedimento do link abaixo para alterar o colalte default do servidor. Neste
caso altere o collate para o mesmo usado em produção do 2000.

http://www.mcdbabrasil.com.br/modules.php?name=News&file=article&sid=244

Depois faça um novo backup da base com o collate já convertido e restaure na
base de produção.

OBS: Utilizo este processo com bastante frequencia e é confiável !!

Qualquer coisa retorne.

PS: FOI ÚTIL PRA VOCÊ? Então ajude outras pessoas, marque-a como útil.

abraços
Nilton Pinheiro
www.mcdbabrasil.com.br

SQL 2005 Virtual Lab
http://msdn.microsoft.com/vstudio/tryit/hosted/sql


"Adalberto Andrade" escreveu:

Adalberto Andrade

unread,
Dec 13, 2005, 12:22:03 PM12/13/05
to
Olá Marcello,

Por acaso eu não sei te dizer se o erro é no tempdb, pois nenhuma
mensagem de erro apareceu no event viewer ou no log do SQL. Você po-
deria me dizer como identifico esse erro ?

Não sei se consegui ser suficientemente claro, como gostaria, mas
o cenário apresentado é a migração de um Database (SQL7) que está em
uma máquina "A" para uma instância (SQL2000) da máquina "B" que
já tem vários outros Bancos. Ambiente este que não posso mudar o
collation.
Então a pergunta é : Quando vc fala em alterar o collation do
msdb vc se refere a instância do SQL7 ? Para depois fazer um backup e
tornar a fazer o restore no SQL2000 ?

OBS.: Não sei se estou correto, mas o backup do SQL7 parece estar
herdando o collation da base, e aí na hora do restore no SQL2000 (que
tem outro collation) "mascara" a questão e sequer envia um warning.
Onde o problema só aparece qdo se roda alguma coisa que lê o Banco.
Infelizmente, o restore (do SQL2000) não tem nenhuma opção para
baixar um Banco com outro collation - diferente do original.


Obrigado pela ajuda,
Adalberto

OSs Banco
"Marcelo Colla" escreveu:

Adalberto Andrade

unread,
Dec 13, 2005, 12:49:02 PM12/13/05
to
Olá Nilton,

Compreendi. Pergunta : Um bcp (out) no SQL7 como extração e
um bcp (in) no SQL2000 como carga seria uma saída ? O que pensa ?
O inconveniente seria a execução de tais bcp's para todas as tabelas.


Obrigado pela ajuda,
Adalberto


"Nilton Pinheiro" escreveu:

Nilton Pinheiro

unread,
Dec 13, 2005, 1:29:02 PM12/13/05
to
O BCP também rola normalmente, assim como o DTS mas eu particularmente acho
mais trabalhoso.

Tanto o BCP quanto o DTS ou o processo que lhe passei resolvem seu problema.

0 new messages