none
Bkup Banco com Varios Schemas RRS feed

  • Discussão Geral

  • Boa Tarde Colegas!

     Tenho meu projeto onde tenho 1 banco de dados centralizado, onde para cada empresa que utiliza o sistema possui um schema com as tabelas e objetos, onde tenho 1 schema comum que é utilizado por todas as empresas, com algumas tabelas, conforme abaixo:

     Banco CRM

        Schema Comum: Tabelas Usuarios e Empresas

        Schema Empresa X: Tabela Contas, Contatos , Oportunidades, Atividades

        Schema Empresa Y: Tabela Contas, Contatos , Oportunidades, Atividades 

        Schema Empresa Z: Tabela Contas, Contatos , Oportunidades, Atividades 

    Atualmente não utilizo o conceito de Filegroups e como são poucos clientes e bases não muito grandes, não sei se mesmo assim é recomendado utilizar. Gostaria da opiniao e recomendação de como proceder para gerenciar os bkups, como criar rotinas automaticas de bkups e se desse para ter bkups particionados pelos schemas(pelo que andei pesquisando não é possível) mesmo utilizando filegroups. 

        O que gostaria mesmo é conseguir realizar bkups programados e incrementais a partir de um primeiro bkup e se possivel te-los separados por schemas, onde caso ocorra algum problema em informações de uma determinada empresa, apenas aquela empresa iria parar até realizar o processo de restore da mesma.

        Todas as ideias e ajudas serão bem vindas.     

    terça-feira, 28 de abril de 2015 01:38

Todas as Respostas

  • Cristiano boa noite,

    Cara até onde sei não é possivel fazer backup de Schemas no SQLServer, mas você pode fazer backup de FG sem problemas segue uma explicação de como fazer.

    http://www.mssqltips.com/sqlservertutorial/17/sql-server-filegroup-backups/

    Quanto a backups incrementais é possível fazer sim, para isso você tem que fazer uma rotina que faz um backup Full e depois faça um diferencial, na empresa em que trabalho configuro um backup Full por semana e 1 diferencial por dia e os backups de log conforme a criticidade da instancia.

    O backup diferencial no SQLServer salva todas as informações que foram alteradas ou inseridas após o ultimo full, ou seja, se você fizer um bkp full no domingo, na segunda fizer um diferencial, ele vai fazer somente das alterações de domingo para segunda, na terça ele pega todas as diferenças de segunda e terça.

    Para fazer um bkp diferencial basta usar o hint with defferencial.

    espero ter ajudado.


    Se a resposta foi útil por favor classifique. Tiago Neves - @tiagolneves

    terça-feira, 28 de abril de 2015 03:00
  •  

      Olá Thiago,

      Obrigado por sua resposta.  Como sou novo nessa area de adminstração com sqlserver, poderia me dizer como voce criou a rotina automatica para bkup full 1 vez por semana e os bkups diferenciais todos os dias? Voce criou uma tarefa agendada no SqlServer Management Studio? Com a versão Express é possivel?
       Quando vc cita os bkups de log, é um outro gerenciamento que você precisa fazer?

       Agradeço todos os seus esclarecimentos.

       Att.

       Cristiano

     

    terça-feira, 28 de abril de 2015 12:11
  • Cristiano bom dia, 

    Para criar uma politica de backup é interessante verificar alguns pontos:

    1) - Quanto tempo eu posso perder de dados?
    2) - Qual o Recovery Model da minha base?
    3) - Para onde vou jogar esses backups?
    4) - O tamanho do arquivo.

    Como é novo em sql server, você tem que entender que é interessante realizar o backup de log de tempos em tempos para garantir um restore point in time e também realizar a limpeza do log.

    Para você criar um backup automatico full, no sql mesmo você pode criar um plano de manutenção e colocar as bases de dados que você queira, e realizar o agendamento. É bem simples!

    http://www.sqlshack.com/database-back-up-task-via-sql-server-maintenance-plans/

    Outra coisa que você tem que ter em mente são os tipos de recovery model do sql server.

    https://msdn.microsoft.com/pt-br/library/ms189275.aspx

    Abraço


    Vinícius Kleber

    terça-feira, 28 de abril de 2015 12:55
  •   Olá Vinicius,

      Muito obrigado pelas dicas, agora referente aos quatro pontos, segue minhas respostas:

     1) - Quanto tempo eu posso perder de dados? 
           R: 1 dia
         

    2) - Qual o Recovery Model da minha base?

          R: Dei uma lida nos tipos, e acredito ser o Completo a opção apropriada.
    3) - Para onde vou jogar esses backups?

         R: Esta é uma de minhas duvidas. Eu penso em fazer uma cópia local e uma cópia do bkup para um local na nuvem, como por exemplo nos servidores da Amazon(AWS), pois meu database já esta em um servidor da AWS.  Como eu posso programar isso referente aos destinos?
    4) - O tamanho do arquivo.

        R: Hoje a base é pequena, pois são poucos clientes, mas com o passar do tempo, com a entrada de novos clientes, a base pode aumentar de forma considerável.

     Agradeço suas novas considerações.

     Obrigado!

      Cristiano

    terça-feira, 28 de abril de 2015 17:18
  • Cristiano boa tarde, 

    Caso queira manter sua base com o recovey model como full, é interessante você colocar na sua politica de backup também o de transaction log. Para não ter problema com estouro de log e você garantir o restore point in time.

    A politica de backup é mais por sua decisão e sua necessidade.

    Porém eu no seu caso, montaria uma politica de backup  + ou -  assim:

    Recovery FULL

    Backups

    Full (Uma vez por dia)

    Diff (a cada 12 horas)

    Log ( A cada 2 horas) 

    Claro, isso depende muito do seu ambiente e de suas transações. É interessante conhecer bem como os backups funcionam, e claro sempre colocar um dbcc checkdb de tempos em tempos para garantir a integridade da sua base e também realizar um checksum nos seus backups para garantir um restore saudável.

    abraço, 


    Vinícius Kleber

    terça-feira, 28 de abril de 2015 17:41
  •   Legal Vinicius,

      Só que para minha realidade, acredito que não precisaria ter tanto, eu pensei em ter 1 full uma vez por semana e 1 diff diário. É viável assim?   E este Log eu não sei se eu precisaria, desta forma como estou colocando, eu preciso?

      Abs,

       Cristiano

    terça-feira, 28 de abril de 2015 18:50
  • Cristiano,

    Se você não fizer o backup do log vc pode ter problema de log full.

    Pense em pelo menos um bkp de log por hora (mas isso depende do seu ambiente).


    Se a resposta foi útil por favor classifique. Tiago Neves - @tiagolneves

    terça-feira, 28 de abril de 2015 19:05
  • É como eu listei antes e o Tiago comentou, você precisa sim do backup de log, caso seu recovery seja full.

    É necessário você ter noção do quanto sua base vai ser alterada.

    Eu realmente não deixaria minha base como simple somente as de homologação, produção nunca!

    Mas se for o caso, você poderia realizar a sua politica e colocar a base como simple.

    Simple, não garante o restore point in time, somente o ultimo full + o ultimo Diff ou o ultimo full.

    abraço,


    Vinícius Kleber

    terça-feira, 28 de abril de 2015 19:12
  •    Vinicius, só a questão 3 que fiquei com dúvidas:

    3) - Para onde vou jogar esses backups?

         R: Esta é uma de minhas duvidas. Eu penso em fazer uma cópia local e uma cópia do bkup para um local na nuvem, como por exemplo nos servidores da Amazon(AWS), pois meu database já esta em um servidor da AWS.  Como eu posso programar isso referente aos destinos, sendo uma copia local e outra por exemplo para um servidor na nuvem AWS?

      Obrigado!

    quarta-feira, 29 de abril de 2015 11:36