none
Backups de Logs de meia em meia hora RRS feed

  • Pergunta

  • Bom dia amigos!

    Preciso criar uma rotina de backup e restore, tenho um banco de producação interna e outro banco com a mesma base porem nome diferente (site), os dois utilizaram o mesmo Servidor e SQL.

    Preciso fazer backup do banco de produção e backup do log a cada 30 minutos, porém, gostaria de restaurar o log para o baco (site) no mesmo periodo a cada 30 minutos, conforme backup do log do banco de produção.

    segunda-feira, 10 de setembro de 2012 13:43

Respostas

Todas as Respostas

  • RAI,

    Basicamente você poderia criar um Script que realiza o Backup/Restore e este script ser configurado no SQL Server Agent para sua execução a cada 30 minutos.

    Qual é a sua dúvida, criar o script ou fazer uso do SQL Server Agent?

    Você conhece os comandos Backup e Restore?


    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]

    segunda-feira, 10 de setembro de 2012 13:46
    Moderador
  • Junior,

    Minha duvida está mais em criar o Script, pois, o banco de produção tem 11GB, e banco Site tera o mesmo tamanho, porem no decorrer do dia havera varias alterações de informação no de produção logo estou como duvidas e nao sei como montar um modo na qual faça so a restauração dos logs a cada 30 minutos e no final fazer a restauração full.

    Apos trinta minutos fiz um backup do log e tentei restaurar ex:

    restore log site from disk = 'c:\restore\site_log1.trn'
    with recovery
    go

     E aparece esse erro:

    Mensagem 3117, Nível 16, Estado 4, Linha 1
    O log ou backup diferencial não pode ser restaurado porque não há arquivos prontos para serem rolados para frente.
    Mensagem 3013, Nível 16, Estado 1, Linha 1
    RESTORE LOG está sendo encerrado de forma anormal.

    Fica a duvida de como montar o restore do log a cada 30 minutos, sem ter que restaurar o banco todo.

    segunda-feira, 10 de setembro de 2012 14:46
  • Recomendaria fortemente utilizar um dos mecanismos de replicação. Isso seria muito mais performático, seguro e transparente.

    Você poderia utilizar Replicação ou LogShipping, dependendo do que fosse mais vantajoso mediante o seu cenário.

    As configurações a serem feitas geralmente são simples e você encontra bastante material na internet sobre isso.

    Seguem algumas recomendações:

    1) http://www.youtube.com/watch?v=9yCdFXpnzmE

    2) http://pessoalex.wordpress.com/2008/11/23/replicacao-de-dados-passo-a-passo-utilizando-o-sql-server-2008/

    3) http://www.blogdati.com.br/index.php/2011/07/replicacao-de-dados-utilizando-sql-server-2008/

    4) http://pedrogalvaojunior.wordpress.com/2010/01/16/conheca-mais-sobre-log-shipping/

    5) http://www.youtube.com/watch?v=2k003Dj7fHo

    Lembro que estes mecanismos lhe permitirão configurar a replicação dos dados com a periodicidade que você quiser, inclusive "a cada 30 minutos". 


    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    • Marcado como Resposta RAI_071 terça-feira, 11 de setembro de 2012 17:44
    • Não Marcado como Resposta RAI_071 sexta-feira, 14 de setembro de 2012 14:52
    • Sugerido como Resposta Roberson Ferreira _ sexta-feira, 14 de setembro de 2012 14:57
    segunda-feira, 10 de setembro de 2012 22:41
  • Obrigado pelas informações, os liks indicados solucionam meu problema, estava com duvida se poderia ser feito a replica sobre mesma instancia do banco, já verifiquei e é possível.
    terça-feira, 11 de setembro de 2012 17:44
  • Junior,

    não seria mais viável ele configurar o LOG Shiping conforme o Roberson Mencionou? Basicamente o Log Shiping é esse método manual de backup restore, porém corre menos riscos de erro, a não ser o que o cara faz um backup sem a opção Copy Only e quebre a sequência do LOG.

    quinta-feira, 13 de setembro de 2012 05:13
  • Pessoal bom dia!

    Parei novamente em um problema, tentei a replicação, porem, o banco aqui na empresa e de um sistema terceirizado, esse banco tem algumas tabelas que nao contem chave primaria e procedures criptografadas, eu preciso da replica completa do banco, pois o nosso site se comunica com o banco e utiliza essas mesmas procedures para consulta.

    Como ja tinha dito, preciso fazer o restore full uma vez (banco de produção para o banco site na mesma instancia) e ficar restaurando o log do banco de produção para o banco site a cada 30 minutos sem efetuar o full nesses intervalos.

    Meu banco de dados não tem a opção Shipping, estamos com a serção SqlServer 2008 R2 Standard.

    sexta-feira, 14 de setembro de 2012 14:51
  • Rai,

    O Log Shipping pode ser usado no SqlServer 2008 R2 Standard (http://msdn.microsoft.com/en-us/library/cc645993(v=sql.105)).

    No Management Studio, clique com o botão direito sobre a sua base, vá em Propriedades. Na janela que se abrirá (Database Properties), a última opção da lista é "Transaction Log Shipping".

    Habilite e configure o LogShipping de acorco com seus propósitos.


    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    • Marcado como Resposta RAI_071 sexta-feira, 14 de setembro de 2012 19:46
    sexta-feira, 14 de setembro de 2012 14:57
  • RAI, duas opções, ou replicação snapshot (que é bem mais pesada e vocÊ não tem o problema da PK), ou o LOG Shipping que o Roberson menciounou, e que ao meu ver, desde o início do diálogo, é a melhor opção.
    sexta-feira, 14 de setembro de 2012 15:06
  • Obrigado a todos,

    Fiz por Log  Shipping e ja exerci alguns testes, na qual, funcionou perfeitamente.

    sexta-feira, 14 de setembro de 2012 19:46