Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

jvilar

Erro no Restore

Recommended Posts

Estou tentando restaurar um backup (FULL) feito no ENTERPRISE MANAGER e aparece o erro: "The preceding restore operation did not specify WITH NORECOVERY..." O que posso fazer? O que fiz de errado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quais os procedimentos que esta fazendo para este restore?

Se for via MMS, tem uma opção que é a WITH NORECOVERY que faz com o que o backup não "aguarde o próximo arquivo", muito utilizado quando se tem mais de um arquivo de backup (transicional, por exemplo)

 

Se for via linha de comando, poste o comando e a versão do SQL.

 

Abçs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentei pelo Enterprise Manager mesmo (Todas as tarefas - RESTORE DATABASE) e aparece: "The preceding restore operation did not specify WITH NORECOVERY... "

Fui par ao Query Analiser e tentei executar: "restore Database BANCO from disk = 'c:\arquivo' with NORECOVERY" e deu a resposta "Exclusive access could not be obatined because the database is in use"

 

Alguma sugestão?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se a base estiver em uso, o restore não será realizado:

"Mate" todos os processos e faça o restore.

Para isso, você pode fazer isso -->

http://forum.imasters.com.br/topic/395848-kill-em-todos-os-processos-do-db/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Parei a base de dados (SQL) e startei novamente...mesmo erro.

Tentei rodar os comandos para matar os processos mas deu erro na linha 5

 

SET NOCOUNT ON

DECLARE @spidstr varchar(8000)

DECLARE @ConnKilled smallint

DECLARE @DBName AS VARCHAR(50)

DECLARE @withmsg AS BIT =1 <---- errro nessa linha

 

SET @DBName = DB_NAME()

SET @ConnKilled=0

SET @spidstr = ''

 

IF db_id(@DBName) < 4

BEGIN

PRINT 'Processos do Sistema'

RETURN

END

 

SELECT @spidstr=coalesce(@spidstr,',' )+'kill '+convert(varchar, spid)+ '; '

FROM master..sysprocesses WHERE dbid=db_id(@DBName)

 

IF LEN(@spidstr) > 0

BEGIN

EXEC(@spidstr)

 

SELECT @ConnKilled = COUNT(1)

FROM master..sysprocesses WHERE dbid=db_id(@DBName)

 

END

 

IF @withmsg =1

PRINT CONVERT(VARCHAR(10), @ConnKilled) + ' Connection(s) killed for DB ' + @DBName

GO

Compartilhar este post


Link para o post
Compartilhar em outros sites

na sessão do comando do restore:

 

 

Alter Database YOURDB

SET SINGLE_USER With ROLLBACK IMMEDIATE

 

 

RESTORE DATABASE YOURDB

FROM DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\YOURDB.bak'

WITH NORECOVERY

 

 

 

 

Esqueci:

 

Após o restore:

 

Alter Database YOURDB

SET MULTI_USER With ROLLBACK IMMEDIATE

 

ABÇS

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agradeço a atenção e peço desculpas pela demora no retorno...fiquei sem NET.

 

Deu o mesmo erro após rodar o script que me passou por ultimo. Resultado:

exclusive access could not be...the database is in use

 

Tem como eu rodar esse script que não seja pelo query analyser? pois o query já abre o banco em questão e quando escolho outro banco no dropdown (Ex. master) ele volta a dar o erro "the preceding restore ...with norecovery or with standby"

 

O que pode ser?

Compartilhar este post


Link para o post
Compartilhar em outros sites

o erro de banco em uso (exclusive access could not be...the database is in use) já deveria ter sido sanado quando selecionado o master no dropdown.

 

Force o uso da base:

 

use master
Alter Database YOURDB
SET SINGLE_USER With ROLLBACK IMMEDIATE 
GO

RESTORE DATABASE YOURDB
FROM DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\YOURDB.bak'  -- caminho do seu arquivo fisico!
GO

Alter Database YOURDB
SET MULTI_USER With ROLLBACK IMMEDIATE 

GO

Note que eu usei o GO na sintaxe. Deste modo ele "zera" as sessões abertas, variaveis, ou que tiver de "pendencia" na sessão.

 

1 - A pasta que contém o MDF e o LDF são comuns entre os servidores?

2 - São as mesmas versões do SQL?

3 - Exixtem somente este backup Full ou tem mais algum (diferencial ou transicional?)

 

Abçs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos lá.

 

1- mesmo com o GO após as sintaxes não teve exito

2- Sempre fiz o backup de um servidor e restaurei no outro sem problemas. De forma direta BACKUP, copiar, colar no outro servidor e restaurar. Tanto que após o backup do servidor 1 eu apaguei comecei outra ativicdade no banco, fiz o backup e restarei no servidor 2 sem problemas, porém o backup anterior que possuo não consigo restaurar.

3- qdo faço o backup sempre faço completo pois ele é pequeno (1.6MB) e não tem extensão.

4- Se quiser posso enviar por e-mail o arquivo para que possa ver o que pode ser.

5- Utilizo SQL 2000

Compartilhar este post


Link para o post
Compartilhar em outros sites

Devo estar com alzheimer, porque faço backup e restore uma vez por dia ou mais, dependendo do cliente e uso este script. :hehehe:

 

Vou te mandar um MP com meu email pessoal para me mandar o arquivo!

 

Abçs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou começando a suspeitar que, sem querer, cliquei em backup incremental nesse dia ao invés de completo como sempre faço. :(

de toda forma te enviei o arquivo com as informações necessárias.

 

abraço e, mais uma vez, obrigado pela ajuda e tempo desperdiçado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Recebi seu email e assim que eu tiver um tempo e um ambiente eu testo para você.

O backup diferencial só vai dar certo o restore se tiver o último full antes dele.

 

Te respondo o email e posto o resultado.

 

Abçs

Compartilhar este post


Link para o post
Compartilhar em outros sites

o arquivo que me mandou é um backup diferencial!

Na verdade para ter 100% de ctza estou tentando restaurar em um SQL2008, mas minha maquina virtual esta mais lenta que eu esta hora.

Assim que tiver uma tela te mandou por email e posto aqui!

 

Abçs

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.