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 / 133045
Accepted
A_V
A_V
Asked: 2016-03-23 11:39:47 +0800 CST2016-03-23 11:39:47 +0800 CST 2016-03-23 11:39:47 +0800 CST

Banco de dados em recuperação simples para economizar espaço

  • 772

Esta antiga instância do SQL Server 2000 possui um disco de 14 Gb para dados e um disco de 30 Gb para backups.

Mesmo sendo antigo, ainda tem muitos usuários fazendo transações, então o arquivo de log do único banco de dados que está neste servidor preenche a unidade de dados todos os dias.

Achei que deveria colocá-lo em recuperação simples e liberar o log de transações, mas me pergunto o que isso afeta.

Sem um T-log, você não pode usar seu backup para recuperar em qualquer outro ponto no tempo que não seja o backup completo, certo? Quais são os impactos mais importantes além disso que devo estar ciente ao fazer essa alteração em um banco de dados? O que mais do que perder um dia de dados (é backup diário em fita) pode acontecer quando não estou gerando t-logs?

desde já, obrigado

sql-server sql-server-2000
  • 2 2 respostas
  • 670 Views

2 respostas

  • Voted
  1. Best Answer
    Kenneth Fisher
    2016-03-23T13:39:29+08:002016-03-23T13:39:29+08:00

    Primeiro, uma nota rápida sobre a mudança para a SIMPLErecuperação. Esta é uma decisão de negócios. Não é de forma alguma uma decisão técnica. Sua empresa precisa pesar o custo de permanecer FULL(o que pode significar um novo servidor com espaço adicional, arquivar dados atuais para liberar algum espaço, etc.) versus o custo de perder até um dia ou mais de dados. Depois que eles decidirem, você poderá prosseguir.

    Com base na sua pergunta e nos comentários, vejo um dos dois cenários:

    Você está no FULLmodo de recuperação, mas não está fazendo backups de log.

    Neste ponto, você precisa começar a fazer backups de log regularmente. Com toda a probabilidade, isso realmente economizará espaço. Se você fizer um backup de log para limpar o log menos de uma vez por dia ( Nota: FULLbackups não liberam espaço de log ), então seu log de transações provavelmente é maior do que o necessário. Coloque seus backups em ordem e, em seguida, descubra o tamanho que seu log de transações realmente precisa ter. Com toda a probabilidade, será um pouco menor do que atualmente, oferecendo espaço adicional para backups. Na pior das hipóteses, mova seus backups para fita com mais frequência do que atualmente.

    Você está no FULLmodo de recuperação, mas está fazendo backups de log.

    Se for esse o caso, talvez seja necessário aumentar a frequência dos backups de log. Isso não incorrerá em requisitos de espaço adicionais, pois os arquivos de log serão apenas menores (há uma pequena sobrecarga para informações de cabeçalho, mas não é tão significativa). Isso permitirá que seu registro seja limpo mais rapidamente e permaneça menor. Supondo (e esta é uma grande suposição) que você não tenha uma ou mais transações individuais que exijam o espaço de log. Se for esse o caso, apenas alterar seu código para diminuir o tamanho de suas transações permitirá que você consiga um arquivo de log menor. Mesmo se você mudar paraSIMPLErecuperação, você ainda precisará de espaço de log para a maior transação única (ou maior combinação de transações simultâneas). Se você reduzir seu arquivo de log e executar uma transação que precise de mais espaço do que o disponível, o log aumentará novamente.

    Mais uma vez, alternar entre FULLe SIMPLErecuperação é uma decisão de negócios . Tomar esse tipo de decisão sem consultar a empresa (e depois errar) é uma boa maneira de ser demitido.

    • 5
  2. maggiebarrett
    2016-03-23T13:03:33+08:002016-03-23T13:03:33+08:00

    Você está certo, você não pode recuperar um banco de dados que possui um modelo de recuperação SIMPLES além do último backup completo. Além disso, você apontou o motivo pelo qual deveria ter este banco de dados no modelo de recuperação COMPLETO: "ele ainda tem muitos usuários fazendo transações, então o arquivo de log do único banco de dados que está neste servidor preenche a unidade de dados todos os dias." Você realmente deseja perder os dados dos quais muitos usuários dependem?

    Não.

    Tente backups de log de transações a cada hora (ou 15 minutos, se você puder pagar pelo espaço) e salve os arquivos .trn na unidade de backup. Configure uma tarefa de limpeza para excluir os arquivos .trn a cada poucos dias se você fizer um backup completo diário. Problema resolvido.

    Aqui está outro motivo pelo qual você deve permanecer no modelo de recuperação FULL: Imagine que um novo funcionário derrube critical_table no banco de dados às 12h35 e o aplicativo que usa o banco de dados cai. Você pode fazer um backup do log de transações aqui, restaurar o backup completo em um novo banco de dados** e, em seguida, restaurar o .trn com uma parada às 12h34 e recuperar os dados!

    **se a cadeia de logs for interrompida entre o último backup completo e o backup tlog que você acabou de criar, você estará desossado, portanto, não restaure o banco de dados antigo até ter certeza de que pode restaurar os dois juntos.

    • 3

relate perguntas

  • SQL Server - Como as páginas de dados são armazenadas ao usar um índice clusterizado

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

  • 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