AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 61187
Accepted
user1910240
user1910240
Asked: 2014-03-19 10:15:50 +0800 CST2014-03-19 10:15:50 +0800 CST 2014-03-19 10:15:50 +0800 CST

Entendendo os tipos de backup

  • 772

Recentemente, comecei a função de DBA júnior... Ontem criei um novo banco de dados para um colega de trabalho e meu chefe me pediu para garantir um plano de backup o mais rápido possível.

Não pensei muito sobre isso, entrei no agente, criei um trabalho que fazia um backup completo todas as noites à 1h. Orgulhosa de mim mesma, fui para a cama e não pensei mais nisso. Esta manhã, comecei a pensar que isso não era "bom o suficiente" - se o banco de dados morresse às 12h, eles perderiam quase 23 horas de dados, o que provavelmente me demitiria. :)

Portanto, para ter certeza de que entendi isso, acho que preciso fazer backups diferenciais além do meu backup completo. Depois de ver este tutorial , tive algumas perguntas:

  1. Eu simplesmente entraria no agente e adicionaria um trabalho que acontece a cada hora (por exemplo) que cria um backup diferencial?
  2. Se o meu entendimento estiver correto, isso faria o backup do log transacional a cada hora até 1 da manhã, quando ele fizer um backup completo, então "redefiniria" o T-Log e começaria novamente a partir do dia seguinte, então no máximo seria 1 hora de perda de dados - correto?
  3. Então, no final, eu teria 2 tarefas no agente, uma que dispara todos os dias à 1h para fazer um backup "COMPLETO" e outra que dispara a cada hora que faz um backup diferencial?
sql-server backup
  • 2 2 respostas
  • 772 Views

2 respostas

  • Voted
  1. Best Answer
    Anti-weakpasswords
    2014-04-07T19:54:13+08:002014-04-07T19:54:13+08:00

    Kin está correto em indicar a você a solução de backup e manutenção de Ola Hallengren .

    Parece que você é novo, então considere também verificar:

    • Os 6 principais mitos dos logs de transações do SQLServerCentral .
    • Entradas de blog do log de transações de Paul Randall
    • Entradas de blog de backup e restauração de Paul Randall
      • Obrigatório: Leia um mito do SQL Server DBA por dia: (30/30) mitos de backup
    • Entradas de blog do log de transações de Kimberly Tripp
      • Mandatory: Read Transaction Log VLFs – muitos ou poucos?

    Aaron Bertrand está correto ao apontar para você Por que o log de transações continua crescendo ou fica sem espaço? .

    Usr está correto; até que você teste as restaurações, assuma que seus backups são inúteis.

    Os comentaristas também estão corretos, você deve consultar a empresa.

    Mais detalhadamente, você precisa de:

    • RPO: objetivo do ponto de recuperação . Quanta perda de dados é aceitável - ou seja, restaurar até uma hora antes da perda? Um dia?
    • RTO: objetivo de tempo de recuperação . Quanto tempo leva para que o sistema volte a funcionar.
    • Pelo menos um plano básico de DR , em particular, para quais tipos de "desastres" seu RPO e RTO são bons?
      • banco de dados corrompido
      • travamento do disco rígido
      • travamento de várias unidades resultando em perda de RAIDset
      • exclusão acidental de arquivo
      • servidor caiu durante a mudança
      • servidor roubado
      • edifício incendiado
      • desastre natural regional (grandes furacões, terremotos, tufões, tsunami, grandes erupções vulcânicas, grandes inundações)
    • Orçamento
      • Depois de conseguir isso, você pode voltar e renegociar os pontos anteriores.

    No que diz respeito a um plano de backup geral, eu começaria considerando:

    • Procure em qualquer lugar que alguém esteja truncando o log... e pare com isso! Você não quer quebrar sua cadeia de log!
      • Da mesma forma, se você estiver entrando e saindo do modelo de recuperação SIMPLE.
    • Descubra onde seus backups precisam ir; fazer backup nos mesmos eixos de disco que contêm seus bancos de dados ou logs é bastante inútil por si só; perderá os discos e perderá o banco de dados ativo e os backups de uma só vez.
    • Em todos os casos, ative CHECKSUM.
    • Backups completos para tudo, regularmente.
      • Talvez seja diário, talvez semanal, talvez quinzenal, talvez até mensal.
      • NOTA: Manter mais de um por perto é útil; para bancos de dados de modelo de recuperação COMPLETO (e BULK-LOGGED se não houver alterações registradas em massa ), você pode ignorar um backup completo corrompido se tiver um backup completo anterior e uma cadeia de log ininterrupta.
    • Os backups completos são os ÚNICOS backups permitidos para o Master.
      • O tempo para isso deve ser pelo menos tão frequente quanto o seu RPO.
    • Não se esqueça de fazer backup do msdb também, e você também pode inserir o modelo.
      • sim, modelo. Às vezes, tem tipos definidos pelo usuário, etc.
    • Backups diferenciais em bancos de dados no modo SIMPLES
      • O tempo para isso deve ser pelo menos tão frequente quanto o seu RPO.
    • OPCIONAL: backups diferenciais em bancos de dados FULL e BULK-LOGGED
      • estes podem permitir que você tenha restaurações mais rápidas
      • isso também pode permitir que você "pule" backups de log de transações danificados/perdidos/corrompidos que estão ENTRE o backup completo e um DIFERENCIAL, após o que você pode continuar restaurando os logs de transações desde que sua cadeia de logs não seja interrompida a partir desse ponto.
    • Faça backups de log em todos os bancos de dados FULL e BULK-LOGGED.
      • O tempo para isso deve ser pelo menos tão frequente quanto o seu RPO.
      • Isso é OBRIGATÓRIO para manter o tamanho do t-log baixo
    • Executar restaurações de teste; não importa se eles estão no mesmo servidor ou em um servidor diferente, apenas execute-os.
    • Quem tem acesso aos backups
    • Criptografia dos backups
      • Gerenciamento de chave da criptografia
    • Armazenamento externo
      • E como isso afeta o RTO
        • durante os desastres "maiores"; mesmo uma nevasca ou deslizamento de terra pode acrescentar horas ou dias a isso.
    • 5
  2. Alexandr Omelchenko
    2015-11-27T03:21:57+08:002015-11-27T03:21:57+08:00

    Acho que esta é a pergunta mais popular: "Com que frequência devo fazer backup de meus bancos de dados". Então, aqui estão algumas respostas simples: "Tudo depende do tamanho do seu banco de dados? Com ​​que frequência você faz alterações no seu banco de dados? E qual a importância dos seus dados?"

    Por exemplo, você pode fazer um backup completo a cada 24 horas (como você faz), backup diferencial a cada 6 horas e backup do log de transações a cada hora. Então, agora vamos nos aprofundar:

    Backup completo do banco de dados:

    Um backup completo do banco de dados faz o backup de todos os arquivos de dados e da parte ativa do log de transações. A parte ativa do log de transações é necessária para restaurar um banco de dados para um ponto transacionalmente consistente. Lembre-se: se você usar o modelo de recuperação simples, o log de transações será truncado durante o processo de ponto de verificação. E a recuperação pontual não é possível.

    BACKUP DATABASE database TO DISK = 'd:/full.bak';
    

    Backup de banco de dados diferencial:

    Um backup diferencial é criado de forma semelhante a um backup completo, mas com uma diferença importante – o backup diferencial contém apenas os dados que foram alterados desde o último backup completo (a parte ativa do log de transações). Os backups diferenciais são cumulativos e não incrementais. Isso significa que um backup diferencial contém todas as alterações feitas desde o último backup completo, apesar de já terem sido incluídas em backups diferenciais anteriores.

    BACKUP DATABASE database TO DISK = 'd:/diff.bak' WITH DIFFERENTIAL;
    

    Backup do log de transações

    Um backup de log de transações contém todos os registros de log de transações que foram feitos entre o último backup de log de transações ou o primeiro backup completo e o último registro de log criado após a conclusão do processo de backup. O backup do log de transações permite restaurar um banco de dados para um determinado ponto no tempo antes da ocorrência da falha. É incremental, o que significa que, para restaurar um banco de dados para um determinado ponto no tempo, todos os registros do log de transações são necessários para reproduzir as alterações do banco de dados até esse ponto específico no tempo. Observe que o backup do log de transações está disponível apenas para modelos de recuperação full ou bulk-logged.

    BACKUP LOG database TO DISK = 'd:/log.bak';
    

    Suponha que você use esse agendamento de backup de banco de dados com backup completo a cada 24 horas, backup diferencial a cada 6 horas e log de transações a cada hora. E seu banco de dados é executado no modelo de recuperação total. Olhe para a foto abaixo:

    insira a descrição da imagem aqui

    Alguns dados cruciais foram excluídos às 20h30, o melhor que podemos fazer neste caso é restaurar o banco de dados para 20h29. O processo de restauração será o seguinte:

    RESTORE DATABASE database FROM DISK = 'd:/full_10_00.bak' WITH NORECOVERY, REPLACE
    RESTORE DATABASE database FROM DISK = 'd:/diff_16_00.bak' WITH NORECOVERY
    RESTORE LOG database FROM DISK = 'd:/log_17_00.bak' WITH NORECOVERY
    RESTORE LOG database FROM DISK = 'd:/log_18_00.bak' WITH NORECOVERY
    RESTORE LOG database FROM DISK = 'd:/log_19_00.bak' WITH NORECOVERY
    RESTORE LOG database FROM DISK = 'd:/log_20_00.bak' WITH NORECOVERY
    RESTORE LOG database FROM DISK = 'd:/log_21_00.bak' WITH 
        STOPAT = '2015-11-26 20:29:00.000', RECOVERY
    

    Neste caso, os dados das 20:29 às 21:00 serão perdidos.

    • 1

relate perguntas

  • Preciso de índices separados para cada tipo de consulta ou um índice de várias colunas funcionará?

  • Backups de banco de dados no Oracle - Exportar o banco de dados ou usar outras ferramentas?

  • Quando devo usar uma restrição exclusiva em vez de um índice exclusivo?

  • Quais são as principais causas de deadlocks e podem ser evitadas?

  • Como determinar se um Índice é necessário ou necessário

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve