Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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?
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?
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/
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
ups
DECLARE @withmsg AS BIT <---- errro nessa linha
set @withmsg = 1
Nada feito: "exclusive acess could not be obatained because the database is in use"
:(
HELP!!!!
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
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?
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
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
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
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.
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
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
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