Mensagem de Erro 946 no SQL Server com BD em estado Suspect
28/10/2012
0
1) Movendo (copiar para outra pasta e apagar) os arquivos de dados e log do banco MyDatabase para outro local.
2) Criando um novo banco com o mesmo nome (MyDatabase) e parar o serviço do SQL Server.
CREATE DATABASE MyDatabase
SHUTDOWN
3) Apagar o arquivo de log e copiar o arquivo de dados que você salvou no item 1, por cima do arquivo novo criado no item 2 acima.
4) Executar o script abaixo.
ALTER DATABASE MyDatabase SET EMERGENCY
ALTER DATABASE MyDatabase SET SINGLE_USER
GO
DBCC CHECKDB (MyDatabase, REPAIR_ALLOW_DATA_LOSS)
WITH NO_INFOMSGS, ALL_ERRORMSGS
GO
ALTER DATABASE MyDatabase SET read_write
ALTER DATABASE MyDatabase SET multi_user
GO
Porém quando executo a etapa 4 do comando DBCC CHECK o SGBD retorna a seguinte mensagem:
Mensagem 946, Nível 14, Estado 1, Linha 1
Não é possível abrir o banco de dados ''S8_Real'' versão 655. Atualize o banco de dados para a versão mais recente.
Já tentei o procedimento no SQL Server 2008 e 2012 sem sucesso. Como me informaram que anteriormente a instância era no SQL Server 2005 irei fazer um testes, mas espero uma dica pra uma solução eficaz.
Agradeço desde já!
Jerfeson
Posts
29/10/2012
Antonio Alex
http://www.mytechmantra.com/LearnSQLServer/Unable_to_Restore_Database_From_Backup.html
Alex Souza
MCP | MCTS: SQL Server 2008, Implementation and Maintenance
Blog Téc: http://pessoalex.wordpress.com
Linked: http://br.linkedin.com/in/pessoalex
MSN/GTalk: pessoalex@gmail.com
Twitter: AlexSouza_SQL
29/10/2012
Jerfeson
dbi_dbid = 5 dbi_status = 65544 dbi_nextid = 236332402
dbi_dbname = S8_Real dbi_maxDbTimestamp = 2249000 dbi_version = 655
dbi_createVersion = 603 dbi_ESVersion = 0
dbi_nextseqnum = 1900-01-01 00:00:00.000 dbi_crdate = 2009-04-25 16:22:07.903
dbi_filegeneration = 12
dbi_checkptLSN
Na tabela do link que indicou não conseguir identificar qual será essa dbi_createVersion = 603. Irei testar no SQL Server 2008, pois estava testando no SQL Server 2008 R2.
29/10/2012
Jerfeson
Coloquei o bd em estado de emergência (ALTER DATABASE 'S8_Real' SET EMERGENCY);
depois em modo de user exclusivo (ALTER DATABASE 'S8_Real' SET SINGLE_USER);
Até ai tudo bem.
Executei o comando DBCC CHECKDB (S8_Real). Retornou diversos erros.
Decidi desanexar e anexar usando comando:
EXEC sp_detach_db 'S8_Real'
CREATE DATABASE S8_Real
ON (FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Backup\S8_Real.mdf'),
(FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Backup\S8_Real_Log.ldf')
FOR ATTACH;
Quando vou anexar dar o seguinte erro:
Mensagem 1813, Nível 16, Estado 2, Linha 2
Não foi possível abrir o novo banco de dados 'S8_Real'. CREATE DATABASE foi anulado.
Mensagem 3456, Nível 21, Estado 1, Linha 2
Não foi possível refazer o registro do log (53000:1397:4), para a ID da transação (0:17400629), na página (1:550561), banco de dados 'S8_Real' (ID do banco de dados 7). Página: LSN = (52999:365:122), tipo = 2. Log: OpCode = 2, contexto 3, PrevPageLSN: (52999:365:257). Repare o banco de dados ou restaure-o usando um backup.
Mensagem 3313, Nível 21, Estado 2, Linha 2
Ocorreu um erro na ID do registro de log (53000:1397:4) ao refazer uma operação registrada em log no banco de dados 'S8_Real'. Em geral, a falha específica é registrada anteriormente como um erro no serviço Log de Eventos do Windows. Repare o banco de dados ou restaure-o usando um backup completo.
29/10/2012
Jerfeson
GO
ALTER DATABASE S8_REAL SET SINGLE_USER;
GO
DBCC CHECKDB(S8_REAL, REPAIR_ALLOW_DATA_LOSS)
WITH NO_INFOMSGS, ALL_ERRORMSGS
Executei os comandos acima colocando no estado de emergência, porém quando executo DBCC CHECKDB dar o seguinte erro:
Mensagem 5123, Nível 16, Estado 1, Linha 1 CREATE FILE encontrou o erro do sistema operacional 3(O sistema não pode encontrar o caminho especificado.) ao tentar abrir ou criar o arquivo físico 'C:\Shop8\S8_Real_log.LDF'.
Mensagem 5024, Nível 16, Estado 2, Linha 1 Nenhuma entrada encontrada para o arquivo de log primário em sysfiles1. Não foi possível recriar o log.
Mensagem 5028, Nível 16, Estado 2, Linha 1 O sistema não pôde ativar uma parte do banco de dados suficiente para recriar o log.
Mensagem 7909, Nível 20, Estado 1, Linha 1 Falha no reparo do modo de emergência. É preciso fazer a restauração com um backup.
O interessante é que o BD está em modo de emergência e consigo fazer consulta nas tabelas normalmente. Algo que não conseguia antes. Como no estado de emergência é impossível realizar backups Full e de Log. Qual seria a alternativa mais cabível para resolver o problema?
31/10/2012
Jerfeson
Obrigado pela atenção de todos!
26/02/2014
Andrea Alves
DBCC CHECKDB (nome_base, REPAIR_ALLOW_DATA_LOSS)
WITH NO_INFOMSGS, ALL_ERRORMSGS
apresentar o errror
Msg 946, Level 14, State 1, Line 1
Cannot open database 'DADOSADV' version 643. Upgrade the database to the latest version.
Como vc conseguiu resolver ?
26/02/2014
Andrea Alves
DBCC CHECKDB (nome_base, REPAIR_ALLOW_DATA_LOSS)
WITH NO_INFOMSGS, ALL_ERRORMSGS
apresentar o errror
Msg 946, Level 14, State 1, Line 1
Cannot open database 'DADOSADV' version 643. Upgrade the database to the latest version.
Como vc conseguiu resolver ?
26/02/2014
Roniere Almeida
Obrigado pela atenção de todos!
que bom, mas o que fez com o BCP?
28/02/2014
Alex Lekao
quais as versoes, que o banco foi gerado e qual a versao que vc esta uasndo do SQL???
o amigo acima resolveu com uma versao mais recente em relacao ao banco que ele usava.
Abraco.
Alex - Lekao
01/03/2014
Andrea Alves
A versão que o banco foi gerado não sei, porque o cliente não sabe informar qual versão estava simplesmente ele perdeu o servidor e consegui recuperar o disco que estava os arquivos mdf e ldf.
A versão que estou usando é sql server 2008 R2 Standard.
Você já viu esse error ?
Esse é o error que apresentar ai attach o .mdf
Converting database 'S8_Real' from version 643 to the current version 661.
Database 'S8_Real' running the upgrade step from version 643 to version 644.
Msg 601, Level 12, State 3, Line 1
Could not continue scan with NOLOCK due to data movement.
The statement has been terminated.
01/03/2014
Roniere Almeida
Obrigado pela atenção de todos!
o que fez com o BCP?
05/03/2014
Alex Lekao
Desculpe a demora, feriado prolongado, aproveitei para emendar. rsrsr
Entao, se eu estou entendendo bem a mensagem, esta tendo algum problema com a versao, eu nunca vi particularmente esse problema nem vivenciei.
Eu ja fiz algumas vezes, foi restaurar o backup no 2008 e restaurar no 2012 sem problemas.
Vc esta fazendo um procedimento de importacao da base?
Esperimente apenas atachar o backup ao servidor para ver se da certo.
Espero ter ajudado.
Abraco.
Alex - Lekao
A versão que o banco foi gerado não sei, porque o cliente não sabe informar qual versão estava simplesmente ele perdeu o servidor e consegui recuperar o disco que estava os arquivos mdf e ldf.
A versão que estou usando é sql server 2008 R2 Standard.
Você já viu esse error ?
Esse é o error que apresentar ai attach o .mdf
Converting database 'S8_Real' from version 643 to the current version 661.
Database 'S8_Real' running the upgrade step from version 643 to version 644.
Msg 601, Level 12, State 3, Line 1
Could not continue scan with NOLOCK due to data movement.
The statement has been terminated.
05/03/2014
Fabiano Carvalho
Verifique esse link.
http://stackoverflow.com/questions/15163938/how-do-i-convert-a-sql-server-2008-mdf-file-to-sql-server-2012
05/03/2014
Andrea Alves
Quando eu executo
EXEC sp_attach_single_file_db @dbname = 'Banco',
@physname = 'D:\MSSQL\Data\DADOSADV.mdf'
Apresento o error :
New log file 'D:\MSSQL\Data\Banco_log.LDF' was created.
Converting database 'Banco' from version 643 to the current version 661.
Database 'Banco' running the upgrade step from version 643 to version 644.
Msg 601, Level 12, State 3, Line 1
Could not continue scan with NOLOCK due to data movement.
The statement has been terminated.
Não tem como eu realizar o backup e fazer o restore porque eu não tenho mais a instância que foi criada esse banco, pois o cliente perdeu o server.
Já tentei criar o banco e parar os serviço e substituir os arquivos mdf e ldf. já tentei de tudo nas versão sql server 2005 e 2008 R2
05/03/2014
Alex Lekao
Vc chegou a verificar o link sugerido pelo Fabiano?
Honestamente nao poderei ajudar.
SE eu encontrar alguma coisa eu posto aqui, mas honestamente acredito que atingi meu limite. rsrsr
Desculpe nao poder ajudar.
Abraco.
Alex - Lekao
Clique aqui para fazer login e interagir na Comunidade :)