none
Restore automatico RRS feed

  • Pergunta

  • Bom dia,

    Gostaria de saber qual o procedimento para fazer o Restore Automatico (pode ser por agendamento) no Sql 2005.

    Exemplo: BKP da Base A restaura na Base B.

    tendo em vista que tenho que matar todos os processos da Base B antes de restaurar.

    desde já agradeço.

    David Marinho. 

    segunda-feira, 24 de março de 2014 14:10

Todas as Respostas

  • David,

    Vamos por partes:

    1 - Você pode agendar sim este tipo de procedimento, o mais indicado seria realizar em um determinado horário sem acesso dos usuários.

    2 - Você pode obter informações sobre os processos que estão em execução e realizar um kill destes processos, por exemplo em Sleeping, veja o código abaixo:

    Declare @SPID SmallInt,
               @Contador SmallInt,
               @Comando VarChar(20)
    
    Declare @Id Table
     (CodId SmallInt)
    
    Insert Into @ID
    Select SPID from SysProcesses
    Where Status='sleeping'
    
    Select Top 1 @SPID = CodID from @ID
    Where CodID > 0
    
    While @Contador >=(Select Count(*) from @ID)
     Begin  
        
       Set @Comando='Kill '+Convert(VarChar(2),@SPID)
       
       Exec(@comando)
       
      Set @Contador = @Contador - 1 
    
      Select Top 1 @SPID = CodID from @ID
      Where CodID >@SPID
     End
    

    Um grande possibilidade, seria você antes do comando de Restore, alterar o modelo de aceso do seu banco de dados de Multi-User para Single-User ou Restricted-User, desta forma, todas as transações possível ativas naquele momento ou aqueles que venham a tentar conexão durante o restore serão refugadas(negadas).


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    • Sugerido como Resposta Durval Ramos sexta-feira, 9 de maio de 2014 12:51
    quinta-feira, 27 de março de 2014 13:10
    Moderador
  • David,

    Se você está tendo que matar processos é porque esta sua janela está sendo utilizada ou para uma manutenção própria de sua instância SQL ou por alguma aplicação que consome os dados de seus bancos.

    Seria interessante você procurar uma outra janela para executar esta tarefa ou então investigar quem está utilizando os bancos antes de "interromper" suas conexões deliberadamente.

    Procure evitar corrigir um problema, criando outro.

    Se ajudou na sua solução, não esqueça de marcar como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"
    • Sugerido como Resposta Durval Ramos sexta-feira, 9 de maio de 2014 12:51
    quarta-feira, 2 de abril de 2014 19:31