Tem como restaurar um BKP do sql 2008 no sql 2000?
- Bom dia galera!
Estou precisando de uma ajuda qui, Tenho um SQl 2000 instalado em um servidor e fiz um BKP de uma base com nome (X), Restaurei esse BKP em um SQL que tenho em outro servidor com SQL 2008 e atualizei alguns dados nessa base de dados, mas agora eu peciso restaurar a base do SQL 200 encima do BKP feito no SQL 2008 e isso não está sendo possível.
Ele está me exibindo uma mensagem de incompatibilidade.
Alguem te uma solução pra esse prblema ai?
Obrigado pela atenção.- ModifiéRogério Silva mercredi 18 novembre 2009 16:21
Toutes les réponses
- Olá Rogério,Nesse caso, você só irá conseguir exportando os dados. Não será possível fazer esse restore.Você poderá usar o Import/Export wizard (botão direito sobre a database/Tasks) por exemplo, para realizar essa transferência dos dados.Abraço!!
Classifiquem as respostas. O Fórum agradece!! This posting is provided "AS IS" with no warranties, and confers no rights. - Rogério,
Como você realizou alterações na base de dados no SQL Server 2008, não é possível restaurar este backup no 2000.
A não ser que você não tenha alterado o nível de compatibilidade do banco de dados.
Você alterou o nível de compatibilidade para a versão 100?
Se você não realizou isso, e as alterações que você fez foram somente de dados, mantendo a estrutura do banco de dados do SQL Server 2000, poderíamos fazer esse processo.
Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA - Junior,Mesmo não alterando o nível de compatibilidade, uma vez restaurada a database no 2008, não tem como voltar!! Nesse processo de restore são feitas alterações estruturais, que não permitem o "downgrade".Só Exportando os dados mesmo.Abraço!!!!
Classifiquem as respostas. O Fórum agradece!! This posting is provided "AS IS" with no warranties, and confers no rights. - Só que não está aceitando nem exportar os dados, eu tento exportar e não aceita me exibindo uma mensagem assim
Execute the transfer with the TransferProvider. (Error)
Messages
ERROR : errorCode=-1073548784 description=Executing the query "CREATE TABLE [Newcon_Teste].[dbo].[Acompanhamento_Cobranca] (
[CODIGO_GRUPO] smallint NOT NULL,
[CODIGO_COTA] smallint NOT NULL,
[VERSAO] smallint NOT NULL,
[CGC_CPF_CLIENTE] VARCHAR(14) NOT NULL,
[TIPO] smallint,
[CODIGO_COBRADOR] int,
[CODIGO_SITUACAO] CHAR(3),
[CODIGO_BEM] smallint NOT NULL,
[DATA_CONTEMPLACAO] datetime,
[TIPO_CONTEMPLACAO] CHAR(1),
[PLANO_COTA] smallint,
[DATA_ENTREGA_BEM] datetime,
[DATA_SITUACAO] datetime,
[CODIGO_FILIAL_COMERCIAL] smallint NOT NULL,
[Percentual_Ideal] money,
[Percentual_Amortizado] money,
[Nome_Cli] VARCHAR(80) NOT NULL,
[Descr_Sit] VARCHAR(15) NOT NULL,
[Descr_Bem] VARCHAR(30) NOT NULL,
[BLOQUEIA_COBRANCA] CHAR(1) NOT NULL,
[Nome_Cob] VARCHAR(40) NOT NULL,
[Data_Congelamento_Bem] datetime
)
" failed with the following error: "There is already an object named 'Acompanhamento_Cobranca' in the database.". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.
helpFile= helpContext=0 idofInterfaceWithError={8BDFE893-E9D8-4D23-9739-DA807BCDC2AC}
For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&LinkId=20476ERROR : errorCode=-1073548784 description=Executing the query "CREATE TABLE [Newcon_Teste].[dbo].[Acompanhamento_Cobranca] (
[CODIGO_GRUPO] smallint NOT NULL,
[CODIGO_COTA] smallint NOT NULL,
[VERSAO] smallint NOT NULL,
[CGC_CPF_CLIENTE] VARCHAR(14) NOT NULL,
[TIPO] smallint,
[CODIGO_COBRADOR] int,
[CODIGO_SITUACAO] CHAR(3),
[CODIGO_BEM] smallint NOT NULL,
[DATA_CONTEMPLACAO] datetime,
[TIPO_CONTEMPLACAO] CHAR(1),
[PLANO_COTA] smallint,
[DATA_ENTREGA_BEM] datetime,
[DATA_SITUACAO] datetime,
[CODIGO_FILIAL_COMERCIAL] smallint NOT NULL,
[Percentual_Ideal] money,
[Percentual_Amortizado] money,
[Nome_Cli] VARCHAR(80) NOT NULL,
[Descr_Sit] VARCHAR(15) NOT NULL,
[Descr_Bem] VARCHAR(30) NOT NULL,
[BLOQUEIA_COBRANCA] CHAR(1) NOT NULL,
[Nome_Cob] VARCHAR(40) NOT NULL,
[Data_Congelamento_Bem] datetime
)
" failed with the following error: "There is already an object named 'Acompanhamento_Cobranca' in the database.". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.
helpFile= helpContext=0 idofInterfaceWithError={8BDFE893-E9D8-4D23-9739-DA807BCDC2AC} (Microsoft.SqlServer.DtsTransferProvider)
For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&LinkId=20476
se quizer por favor me mande um e-mail para rogerio.sistemas@homail.com que eu vou mandar um rint da tela que está dando aqui. No forum não cnssegui postar imagem.
Obrigado.- Create a temporary table transfer package for (Stopped)
- Execute transfer package for (Stopped)
Copying to (Stopped)
no momento que executo a importação dos dados ou exportação ele exibe estas mensagens ai.
Eu seleciono o servidor e a base de origem, depois seleciono o servidor e a base de destino, ele selecion tudo normalmnte mas quando mando executar ele me dá essa mensagem. - Rogério,Você está mandando gravar sobre a database antiga do 2000. Faz o seguinte, crie uma nova database para receber os dados. O erro está acontecendo pois já existem lá os objetos que está tentando transferir.Abraço!!
Classifiquem as respostas. O Fórum agradece!! This posting is provided "AS IS" with no warranties, and confers no rights. - Boa Tarde,
Se sua base for relativamente pequena, você pode utilizar o Database Publishing Wizard para gerar os scripts de insert e aplicá-los na base SQL Server 2000. O Database Publishing Wizard é uma ferramenta a parte disponível gratuitamente no site da Microsoft.
Se não for possível utilizá-la, recomendo criar uma base vazia no SQL Server 2000 e exportar os dados. A mensagem de erro diz que as tabelas já existem.
[ ]s,
Gustavo Maia Aguiar
http://gustavomaiaaguiar.spaces.live.com
A Impedância, o Mapeamento Objeto Relacional e Implementações – Parte II
http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!814.entry
Classifique as respostas. O seu feedback é imprescindível - Alexandre,
Eu sei disso, mas queria entender o que o nosso amigo e de que forma o backup foi restaurado!!!!
Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA - Rogério,
Eu já realizei este tipo de procedimento várias vezes, mas sempre exportando os dados para uma base de dados nova, evitando qualquer tipo de conflito e mantendo a atual funcionando.
Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA - o problema éque quando e etou criando abae vazia,ela até cria, mas dá erro.
Depois vou lá e importo os dados e aparentemente ele importa, nem da erros mas porem as informações não vão para a base.
Nunca vi isso em minha vida.
Estou criando a base com o mesmo nome, será que isso tem problema? - Agora pra piorar, quando acabo de importar os dados, as informações vierão distorcidas.
Por exemplo: O meu usuário no Sistema é o 41, Quando eu digito o usuário 41 no sistema el está puxando o usuário 12.
A importção não preencheu os campos igual no banco antigo não.
Acho que vou desistir desse banco.
Vou alterar o sistema, acho que vai me dar menos trobalho, pois já perdi 4 dias nessa novela.
de qualquer forma agradeço vocês pela atnção.
Deus abençoe a todos. - Rogério,
Criar base de dados com o nome de uma base já existente não vai dar certo, crie com outro nome.
Em relação a importação dos dados qual o collation que você esta utilizando no SQL Server 2008?
Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA - Criei uma nova base com nome de new, a base antiga tinha o nome de Newcon_Teste, Sendo assim a base foi exportada com sucsso, depois renomeei a base new para Newcon_teste novamente, mas os dados vierão distorcidos, da mesma forma que citei anteriormente.
- Rogério,
Então, distorcidos como?
O que esta de diferente?
Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA - Rogério,Está parecendo que a "distorção" está sendo causada pelos IDs com autoincremento. Uma idéia seria tirar os autoincrementos dos IDs e fazer novamente a transferência.É uma tentativa.Abraço!!
Classifiquem as respostas. O Fórum agradece!! This posting is provided "AS IS" with no warranties, and confers no rights. Por exemplo: Qundo vou entrar no sistema, tenho que digitar o número de meu usuário que é 41, se eu der um F8, aparece uma lista de usuários e seus respectivos números, quando seleciono, e digito 41 que é meu usuário e dou um enter para digitar a senha.
O sistema me traz outro usuário e dá um erro de violação de tabela.
Parece que o banco está sendo restaurado com os dados fora da ordem.
O usuário 11 passou para o usuário 10 e assim é com todas informações de todas tabelas.
muito estranho isso, nunca vi nada igual.- Mas como vou tirar o autoincremento, tem como tirar do banco já proto?
Pode me explicar como? - Rogério,
O autoincremente é uma opção configurada sobre suas tabelas e determinadas colunas, o que você deve fazer é verificar quais são as tabelas que possuem autoincremento e remover esta propriedade na coluna.
Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA - Rogério,Olha, esse é um processo meio complicado de fazer... mas tive DUAS idéias, uma pode dar certo.Primeiro:Abra o Management Studio no 2008, clique com o botão direito sobre a database, selecione Tasks > Generate Scripts...Na tela que abrir:- Next na primeira tela- Certifique-se de ter selecionado a database na próxima e clique Next- Na tela Choose Script Options, altere:- "Script for Server Version" para "SQL Server 2000"- "Script USE DATABASE" para FALSE- "Script Data" para TRUE, e clique Next.- Selecione "Tables" e Next- Select All, Next- Script to File, indique onde gravar o arquivo, e depois Next e Finish* Pode demorar um pouco pra gerar esse arquivo, depende do tamanho da sua databaseLeve este arquivo para o servidor 2000, abra o prompt (DOS) e execute:OSQL -E -i "arquivo gerado no 2008.sql" -d "nome da nova database"Ele vai rodar o script gerado no 2008.Minha outra idéia é um pouco mais complexa, mas pode funcionar, conforme segue:- Gerar um script dos objetos da database (somente objetos)- Criar uma nova database no SQL Server 2000- Criar os objetos com o script gerado- Criar um linked server no 2000 apontando para o 2008 (pode fazer pelo Enterprise Manager/Security/Linked Servers, ou por script: http://msdn.microsoft.com/en-us/library/aa259589(SQL.80).aspx e http://msdn.microsoft.com/en-us/library/aa259581(SQL.80).aspx)- Conectar nesta database nova e executar o script abaixo, que irá gerar um script de INSERT/SELECT, desativando o identity nas tabelas que tem ele:
DECLARE @LS VARCHAR (100), -- SERVIDOR REMOTO @DB VARCHAR (100), -- DATABASE REMOTA @CLIST VARCHAR (4000), -- LISTA DE COLUNAS @MIN INT, -- CONTADOR AUXILIAR @MAX INT, -- CONTADOR AUXILIAR @TBL VARCHAR (100) -- TABELA SET @LS = 'NOME DO LINKED SERVER' -- EX: SERVERREMOTO SET @DB = 'NOME DA DATABASE REMOTA' -- EX:DBREMOTA SET @LS = 'LS' -- EX: SERVERREMOTO SET @DB = 'DB' -- EX:DBREMOTA CREATE TABLE #TBLIST(ID INT IDENTITY (1,1), TBL VARCHAR (100)) INSERT INTO #TBLIST (TBL) SELECT NAME FROM SYSOBJECTS WHERE XTYPE = 'U' SELECT @MIN = MIN(ID), @MAX = MAX (ID) FROM #TBLIST WHILE @MIN <= @MAX BEGIN SELECT @TBL = '[' + TBL + ']' FROM #TBLIST WHERE ID = @MIN IF IDENT_SEED(@TBL) IS NOT NULL BEGIN PRINT 'SET IDENTITY_INSERT ' + @TBL + ' ON' PRINT 'GO' END SET @CLIST = '' SELECT @CLIST = @CLIST + '[' + NAME + '],' FROM SYSCOLUMNS WHERE ID = OBJECT_ID (@TBL) SET @CLIST = LEFT (@CLIST, LEN (@CLIST)-1) PRINT 'INSERT INTO ' + @TBL + '(' + @CLIST + ')' PRINT 'SELECT ' + @CLIST + ' FROM ' + @LS + '.' + @DB + '..' + @TBL PRINT 'GO' IF IDENT_SEED(@TBL) IS NOT NULL BEGIN PRINT 'SET IDENTITY_INSERT ' + @TBL + ' OFF' PRINT 'GO' END SET @MIN = @MIN + 1 END DROP TABLE #TBLIST- Copiar o resultado gerado pelo script acima e executar, conectado na database novaDeu um pouco de trabalho pra criar o script. Mas pode funcionar.Sinceramente, não sei o que vai ser mais fácil, adaptar sua aplicação ou copiar os dados de volta.Abraço!!
Classifiquem as respostas. O Fórum agradece!! This posting is provided "AS IS" with no warranties, and confers no rights.- Proposé comme réponseCleyton Esteves jeudi 10 décembre 2009 18:03