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 / 206334
Accepted
user2652379
user2652379
Asked: 2018-05-11 01:09:12 +0800 CST2018-05-11 01:09:12 +0800 CST 2018-05-11 01:09:12 +0800 CST

Por que usar vários backups completos e diferenciais quando posso usar backups de log de transações?

  • 772

Eu sou novo no backup de banco de dados. Acabei de aprender sobre os tipos de backup com esta pergunta (Link) . Depois de ler the differential backup is cumulative since the last full, fiquei curioso se vários backups completos e diferenciais não são obrigatórios.

Por exemplo, eu tenho backups assim:

full_backup_2018_05_09_000000.bak
tran_backup_2018_05_09_000500.trn
tran_backup_2018_05_09_001000.trn
diff_backup_2018_05_09_001500.bak
tran_backup_2018_05_09_002000.trn
tran_backup_2018_05_09_002500.trn
diff_backup_2018_05_09_003000.bak
tran_backup_2018_05_09_003500.trn
tran_backup_2018_05_09_004000.trn
diff_backup_2018_05_09_004500.bak
tran_backup_2018_05_09_005000.trn
tran_backup_2018_05_09_005500.trn
full_backup_2018_05_09_010000.bak
...

Qual é a diferença entre isso e usar um backup completo e backups de log de transações como este?

full_backup_2018_05_09_000000.bak
tran_backup_2018_05_09_000500.trn
tran_backup_2018_05_09_001000.trn
tran_backup_2018_05_09_001500.trn
tran_backup_2018_05_09_002000.trn
tran_backup_2018_05_09_002500.trn
tran_backup_2018_05_09_003000.trn
tran_backup_2018_05_09_003500.trn
tran_backup_2018_05_09_004000.trn
tran_backup_2018_05_09_004500.trn
tran_backup_2018_05_09_005000.trn
tran_backup_2018_05_09_005500.trn
tran_backup_2018_05_09_010000.trn
...
sql-server backup
  • 3 3 respostas
  • 4331 Views

3 respostas

  • Voted
  1. George.Palacios
    2018-05-11T01:16:36+08:002018-05-11T01:16:36+08:00

    A diferença na funcionalidade é mínima - a diferença no que acontece quando você realmente faz uma restauração é enorme.

    Os backups de log são sequenciais, portanto, no cenário acima, para restaurar para 00:55, você precisaria restaurar

    full_backup_2018_05_09_000000.bak
    diff_backup_2018_05_09_004500.bak
    tran_backup_2018_05_09_005000.trn
    tran_backup_2018_05_09_005500.trn
    

    VS

    full_backup_2018_05_09_000000.bak
    tran_backup_2018_05_09_000500.trn
    tran_backup_2018_05_09_001000.trn
    tran_backup_2018_05_09_001500.trn
    tran_backup_2018_05_09_002000.trn
    tran_backup_2018_05_09_002500.trn
    tran_backup_2018_05_09_003000.trn
    tran_backup_2018_05_09_003500.trn
    tran_backup_2018_05_09_004000.trn
    tran_backup_2018_05_09_004500.trn
    tran_backup_2018_05_09_005000.trn
    tran_backup_2018_05_09_005500.trn
    

    A utilização de DIFFs e FULLS significa que você não precisa reproduzir todos esses arquivos de log, o que pode consumir muito tempo e potencialmente prejudicar seu RTO (Recovery Time Objective)

    Você deve se perguntar no caso de um desastre, ou em qualquer cenário de recuperação, quanto tempo você está disposto a esperar para que o banco de dados fique disponível novamente - isso normalmente determina quais métodos você pode usar.

    Resposta alternativa: se você é masoquista, use apenas backups de log.

    • 2
  2. Best Answer
    Peter
    2018-05-11T01:21:35+08:002018-05-11T01:21:35+08:00

    Objetivo de tempo de recuperação

    O RTO descreve o tempo necessário para realizar uma restauração completa do banco de dados em um determinado momento.

    Restaurar um grande número de arquivos de log de transações normalmente será consideravelmente mais lento do que restaurar apenas o diferencial mais recente seguido por seus logs de transação. Portanto, seu RTO seria mais longo.

    Tolerância ao erro

    Se você perder um único backup de log de transações (ou esse backup for corrompido ou comprometido de alguma forma), seu segundo exemplo não toleraria que esse único arquivo fosse inadequado/indisponível para restauração, se você estivesse tentando restaurar para o ponto mais recente.

    O primeiro exemplo que você forneceu exige que você restaure apenas o backup diferencial mais recente e, em seguida, todos os backups de log de transações subsequentes, se você estiver tentando restaurar para o ponto no tempo mais recente.

    Estratégia de DR

    Muitas vezes, um banco de dados pode ser tão grande que a execução de mais de 1 backup completo por semana é difícil de gerenciar, pois o backup pode não ser concluído durante um período de baixa atividade, portanto, o toque relativamente leve dos backups diferenciais pode ajudar. A escolha de como/quando fazer backups no SQL Server é baseada inteiramente no RTO/RPO.

    • 2
  3. Shanky
    2018-05-11T01:18:23+08:002018-05-11T01:18:23+08:00

    O principal objetivo do backup diferencial é reduzir seu Recovery Time Object (RTO) . Em termos mais simples, em caso de desastre, você pode recuperar rapidamente o banco de dados usando o backup diferencial.

    Supondo que você não tenha um script embutido para restaurar backups, restaurar backups completos e muitos de log de transações depois disso é demorado em comparação com a restauração de backup completo e backup diferencial mais recente (já que é cumulativo) e poucos backups de log depois disso.

    Em dois cenários que você mostrou acima em caso de desastre, você teria que restaurar

    full_backup_2018_05_09_000000.bak
    diff_backup_2018_05_09_004500.bak--latest diff backups
    tran_backup_2018_05_09_005000.trn--log backups after latest diff backups
    tran_backup_2018_05_09_005500.trn
    

    enquanto se você não tiver backup de diferenças, você teria que restaurar como

    full_backup_2018_05_09_000000.bak
    tran_backup_2018_05_09_000500.trn
    tran_backup_2018_05_09_001000.trn
    tran_backup_2018_05_09_001500.trn
    tran_backup_2018_05_09_002000.trn
    tran_backup_2018_05_09_002500.trn
    tran_backup_2018_05_09_003000.trn
    tran_backup_2018_05_09_003500.trn
    tran_backup_2018_05_09_004000.trn
    tran_backup_2018_05_09_004500.trn
    tran_backup_2018_05_09_005000.trn
    tran_backup_2018_05_09_005500.trn
    tran_backup_2018_05_09_010000.trn
    

    Além disso, eu sugiro que você leia Backup Myth por Paul Randal.

    • 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