locked
Restore Erro. RRS feed

  • Pergunta

  • Amigos, estou tentando fazer o restore da base e me aparece a seguinte mensagem: Restore falied for server "nome server".
    Additional information: System.Data.SqlClient.Sqlerror: Exclusive access could not be obtained because the database is in use.

    Dreyher
    sexta-feira, 19 de fevereiro de 2010 19:59

Respostas

  • Dreyher, utilize o comando abaixo para matar os processos que estão utilizando essa database. Logo em seguida efetue o restore.

    Declare @SpId as varchar(5)

    select Cast(spid as varchar(5))SpId
    into #Processos
    from master.dbo.sysprocesses A
    join master.dbo.sysdatabases B on A.DbId = B.DbId
    where 
    B.Name ='NOME_DATABASE'

    while (select count(*) from #Processos) >0
    begin
    set @SpId = (select top 1 SpID from #Processos)
       exec ('Kill ' + @SpId)
    delete from #Processos where SpID = @SpId
    end


    Se minha dica foi útil, classifique.


    Fabrício França Lima | MCP, MCTS, MCITP | fabricio_lima_es@hotmail.com
    sábado, 20 de fevereiro de 2010 14:40

Todas as Respostas

  • Dreyher

    seu banco esta em uso, verifique com o SP_WHO2 e se for o caso utilize o KILL <spid>  para matar a conexao.

    att.
    Marcelo Fernandes
    MCP, MCDBA, MCSA, MCTS. Se útil, classifique!!!
    sexta-feira, 19 de fevereiro de 2010 20:06
    Moderador
  • Dreyher, utilize o comando abaixo para matar os processos que estão utilizando essa database. Logo em seguida efetue o restore.

    Declare @SpId as varchar(5)

    select Cast(spid as varchar(5))SpId
    into #Processos
    from master.dbo.sysprocesses A
    join master.dbo.sysdatabases B on A.DbId = B.DbId
    where 
    B.Name ='NOME_DATABASE'

    while (select count(*) from #Processos) >0
    begin
    set @SpId = (select top 1 SpID from #Processos)
       exec ('Kill ' + @SpId)
    delete from #Processos where SpID = @SpId
    end


    Se minha dica foi útil, classifique.


    Fabrício França Lima | MCP, MCTS, MCITP | fabricio_lima_es@hotmail.com
    sábado, 20 de fevereiro de 2010 14:40
  • Dreyher, assim como o Marcelo disse, seu banco está em uso, eu costumo alterar o modo de acesso ao banco antes de realizar um restore.
    Alter Database [nome do banco] set restricted_user with rollback immediate

    isso faz com que o banco fique com modo de acesso restrido a adms e disconecta com rollback todos os usuários.
    domingo, 21 de fevereiro de 2010 01:36