none
Procedures Backup RRS feed

  • Pergunta

  • Olá

    Eu tenho uma job que realiza Backup Full, outra que realiza Backup Diff e outra que realiza Backup Log.

    Os scripts são assim:


    -- Backup Full


    CREATE PROCEDURE [dbo].[procedure_full]

    AS
    BEGIN
     

    BACKUP DATABASE banco_1
    TO bkp_banco_1


    BACKUP DATABASE banco_2
    TO bkp_banco_2


    BACKUP DATABASE banco_3
    TO bkp_banco_3


    BACKUP DATABASE banco_4
    TO bkp_banco_4


    END

    --------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    Pela procedure acima assim que uma base é criada e um novo device entra eu tenho que conferir se há uma nova base criada para não fazer backup faltando bases, o mesmo vale para os devices.

    Gostaria de uma procedure que acrescentasse uma base e um device à sua execução assim que fossem criados.
    Qual a tabela de sistema que traz o nome dos devices?



    Maurício

    quarta-feira, 6 de maio de 2009 16:39

Todas as Respostas

  • Ola Mauricio

    no SQL 2005

    sys.backup_devices

     



    Att
    Marcelo Fernandes
    MCP, MCDBA, MCSA, MCTS. Se útil, classifique!!!
    quarta-feira, 6 de maio de 2009 17:22

  • Muito Obrigado!!!


    Gostaria de uma procedure que acrescentasse uma base e um device à sua execução assim que fossem criados, Alguém pode me ajudar?



    Maurício
    quarta-feira, 6 de maio de 2009 18:39
  • Mauricio

    se eu entendi sua dúvida, vc quer um script que crie um database e um device.

    ja tentou algo do tipo:

    create

     

    proc cria_banco @nomebd varchar(10)

    as

    declare

     

    @str varchar(max)

    set

     

    @str = 'create database '+ @nomebd

    exec

     

    @str

    set

     

    @str ='sp_addumpdevice ''disk'','''+ @nomebd+''', ''c:\dump\'+@nomebd+'.bak'''

    EXEC

     

    @str

     


    Att.
    Marcelo Fernandes


    MCP, MCDBA, MCSA, MCTS. Se útil, classifique!!!
    quarta-feira, 6 de maio de 2009 19:05
  • Marcelo,

    Este script que você passou é bom , mas eu gostaria de um script que executasse o backup de bases que entrassem ao decorrer do tempo na instância, não como na procedure que eu passei onde tenho que digitar o nome do device e da base que entrar ou que for criada.



    Obrigado
    Aguardo Retorno


    Maurício










    quarta-feira, 6 de maio de 2009 19:24
  • Mauricio

    Se o sei device seguir o padrao BKP_(nome do banco)

    vc pode usar um while com um exec do resultado desta query

    select

     

    'BACKUP DATABASE '+ name + ' TO bkp_'+name from sys.databases where database_id>5

    Att.
    Marcelo Fernandes
    MCP, MCDBA, MCSA, MCTS. Se útil, classifique!!!
    quarta-feira, 6 de maio de 2009 19:54
  • Ok!!!


    Valeu mesmo!!!

    Vou ter um pouco de dificuldade para elaborar esta query mas qualquer coisa te pergunto novamente.


    Muito Obrigado



    Maurício
    quarta-feira, 6 de maio de 2009 20:55
  • Caro, Você pode tentar criar uma rotina genérica também com a sp_MSForeachdb. Ele vai executar um comando pra cada database. Blza? Abraços Gilberto Neto
    Gilberto Neto Blog: http://gilberto-neto.spaces.live.com/default.aspx
    quarta-feira, 6 de maio de 2009 22:51
  • Gilberto,

    Legal a sua idéia, mas como você utilizaria a sp_msforeachdb nesta situação?
    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    sexta-feira, 8 de maio de 2009 17:49

  • Caros,


    Como eu usária esta sp_msforeachdb nesta situação?




    Grato

    Maurício
    sexta-feira, 8 de maio de 2009 19:58
  • Ola Mauricio

    tbm estou curioso p/ saber como usar o foreachdb nesta situacao.
    o foreachdb vai executar uma acao para cada db, mas vc precisa fazer um bkp p/ um device especifico para cada db....

    ex do foreachdb.

    EXECUTE master.sys.sp_MSforeachdb 'USE [?];select db_name()'


    Att.
    Marcelo Fernandes
    MCP, MCDBA, MCSA, MCTS. Se útil, classifique!!!
     
    sexta-feira, 8 de maio de 2009 20:32
  • Boa Noite,

    Possuo algumas idéias mas gostaria só de confirmar se o seu SQL Server é 2005 ou superior.

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com

    Criando uma tabela com uma seqüência de números – Parte II
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!556.entry
    Classifique as respostas. O seu feedback é imprescindível
    segunda-feira, 11 de maio de 2009 01:08

  • Olá Gustavo,



    Meu sql server é 2005.



    Maurício
    segunda-feira, 11 de maio de 2009 14:45
  • Maia,


    Qual é a carta na manga desta vez?


    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    segunda-feira, 11 de maio de 2009 17:44
  • Olá Júnior,

    Infelizmente minha carta não funcionou.
    Minha idéia era utilizar uma trigger DDL para que toda vez que um banco fosse criado, automaticamente um backup seria feito e o device cadastrado. Infelizmente os comandos de criação de Device e realização de backup não podem ficar dentro de uma trigger.

    Uma outra possibilidade seria o Event Notification mas além de não ser síncrono envolve uma certa complexidade.

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com

    Criando uma tabela com uma seqüência de números – Parte II
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!556.entry
    Classifique as respostas. O seu feedback é imprescindível
    segunda-feira, 11 de maio de 2009 17:49
  • Ola Gustavo,

    eu havia pensado nesta possibiliade.... e como postei ele pode fazer um proc p/ as DB por ela, assim ele recebe o nome e cria os devices...

    Att.
    Marcelo Fernandes
    MCP, MCDBA, MCSA, MCTS. Se útil, classifique!!!
    segunda-feira, 11 de maio de 2009 18:02
  • Olá Marcelo,

    Pois é. A idéia que parecia boa não funciona...

    Se o processo de criação de bancos sempre for manual e controlado então sua SP poderá ser utilizada.
    O problema está em situações que talvez não seja feitas dessa forma.

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com

    Criando uma tabela com uma seqüência de números – Parte II
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!556.entry
    Classifique as respostas. O seu feedback é imprescindível
    segunda-feira, 11 de maio de 2009 18:13
  • Gustavo,

    Talvez para esta situação teriamos que utilizar uma aplicação de backup ou até mesmo outras funcionalidades específicas relacionadas ao controle das operações sobre os bancos de dados.

     


    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    terça-feira, 12 de maio de 2009 14:48