none
Bat para executar kill em nos processos RRS feed

  • Pergunta

  • Olá pessoal,

    Alguém conhece uma forma de se fazer um bat para efetuar um kill nos processos de uma base?

     

    Grato,

     

    Ilano.

    • Movido Gustavo Maia Aguiar quinta-feira, 27 de janeiro de 2011 16:49 (De:SQL Server - Desenvolvimento Geral)
    quinta-feira, 27 de janeiro de 2011 16:42

Todas as Respostas

  • Boa Tarde,

    Se você pretende matar todos os processos de uma base não há necessidade de efetuar Kill para cada processo. Faça o seguinte:

    Use Master
    GO
    ALTER DATABASE SuaBase SET OFFLINE WITH ROLLBACK IMMEDIATE
    GO
    ALTER DATABASE SuaBase SET ONLINE WITH ROLLBACK IMMEDIATE
    GO
    

    Isso fará com que todos os processos sejam eliminados liberando a base. É possível implementar a Batch, mas é bem mais trabalhoso e menos confiável (você pode matar todos e durante esse processo aparecerem outros processos).

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.wordpress.com/

    Exclusões em cascata e auto-referência no SQL Server
    http://gustavomaiaaguiar.wordpress.com/2011/01/22/excluses-em-cascata-e-auto-referncia-no-sql-server/


    Classifique as respostas. O seu feedback é imprescindível
    quinta-feira, 27 de janeiro de 2011 16:48
  • Ilano, para que exatamente você precisa fazer um kill em todos os processo?

    Tks. Fausto Fiorese Branco MCTS, MCITP/DBA 2005 | MCITP/DBA 2008 São Paulo - Brasil * http://www.linkedin.com/in/faustobranco
    quinta-feira, 27 de janeiro de 2011 16:49
  • Bem, na verdade gostaria de definir esses processos e não matar todos. Pois em alguns momentos quando mando fazer o restoure demora demais e avisa q não pode realizar o restoure, então mando matar alguns processos e dá certo. Nem sei se essa é a melhor prática, mas era assim q eu fazia, agora com o post do Gustavo Maia Aguiar talvez dê certo.
    quinta-feira, 27 de janeiro de 2011 17:07
  • Para fazer o restore tem que ser seguindo o que o Gustavo disse. Para restore eu costumo passa o banco para RESTRICTED_USER com Rollback Immediate. Consigo usar o Restricted User porque sou o unico adm dos bancos, mas você pode tambem passar ele para SINGLE_USER tambem (sempre com Rollback Immediate).

    Depois é só fazer o Restore, não precisa passar para OnLine ou Multi_User que o proprio recovery do restore faz.

     

    ALTER DATABASE [Nome_Do_Banco] SET  RESTRICTED_USER WITH ROLLBACK IMMEDIATE

    GO

    Restore [Nome_Do_Banco] ......


    Tks. Fausto Fiorese Branco MCTS, MCITP/DBA 2005 | MCITP/DBA 2008 São Paulo - Brasil * http://www.linkedin.com/in/faustobranco
    sexta-feira, 28 de janeiro de 2011 12:09