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 / 45876
Accepted
IT researcher
IT researcher
Asked: 2013-07-08 23:48:09 +0800 CST2013-07-08 23:48:09 +0800 CST 2013-07-08 23:48:09 +0800 CST

Diferença entre backup completo e backup completo somente cópia

  • 772

Eu vi no thread do SQL Server Central Um backup completo trunca o log? esse backup completo não trunca o log:

Não. Nem os backups completos nem os diferenciais truncam o log de transações. - Lynn Pettis
Não - um backup completo não trunca o log. - Chad Crawford

Então, qual é a diferença entre backup completo e backup completo somente cópia?

Para o backup de log, há um backup somente de cópia que evita que a cadeia de logs seja interrompida sem truncar o log. Então, o que é backup completo somente cópia?

sql-server sql-server-2008-r2
  • 5 5 respostas
  • 77479 Views

5 respostas

  • Voted
  1. Keith Langmead
    2014-10-27T23:26:12+08:002014-10-27T23:26:12+08:00

    A principal diferença entre backups completos e somente cópia é se o LSN (Número de sequência de log) e, especificamente, DatabaseBackupLSNé atualizado.

    Quando você faz um backup completo, o DatabaseBackupLSNé atualizado. Depois de fazer o backup completo, se você fizer um backup diferencial, esse backup tem um DatabaseBackupLSNque corresponde ao do backup completo e, portanto, o SQL pode vincular os dois (por exemplo, ele sabe desses LSNs que o diff seguiu o completo).

    O problema ocorre quando você tem backups agendados em execução, então você tem um backup completo inicial e, em seguida, uma sequência de diferenciais. Se você fizer um backup completo manualmente, ele atualizará o LSN e, a partir desse ponto, cada backup diferencial feito por meio de backup agendado fará referência a esse novo LSN e não ao original. No caso de precisar restaurar, você pode restaurar seu backup completo agendado, mas quando você tenta restaurar qualquer um dos backups diferenciais feitos após o trabalho manual, você descobre que ele falha, pois os LSNs não correspondem mais.

    Com um backup somente cópia, ele não toca no DatabaseBackupLSNe, como tal, não interrompe essa cadeia de backups.

    Há uma boa descrição do problema, bem como por que tantas pessoas o interpretam mal em Breaking the Backup Chain – REDUX (Or Eating Crow) de Michael K. Campbell ( arquivo com todas as imagens ), que inclui bons guias visuais como este:

    Imagem SQLmag - Backup Completo v Backups Copy_Only

    Para obter uma boa explicação sobre os quatro LSNs diferentes e como eles são usados, consulte Entendendo os números de sequência de log do SQL Server para backups , de Simon Liew.

    A maneira de evitar o problema é não ter mais de uma coisa fazendo backups padrão de um banco de dados. Quaisquer backups ad hoc ou secundários devem ser feitos com a opção somente cópia, consulte Backups somente cópia (SQL Server) para obter detalhes completos, mas essencialmente você usa a opção "Copiar somente backup" no SSMS, via T-SQL especificado WITH COPY_ONLYno comando , ou com o PowerShell use o -CopyOnlyparâmetro.

    • 41
  2. Best Answer
    Remus Rusanu
    2013-07-09T00:10:08+08:002013-07-09T00:10:08+08:00

    No mínimo, você precisa considerar backups diferenciais. A menos que seja usado somente cópia na íntegra, seu próximo backup de comparação será desativado. Backups Somente Cópia :

    Backups completos somente cópia (todos os modelos de recuperação) Um backup somente cópia não pode servir como base diferencial ou backup diferencial e não afeta a base diferencial.

    A única diferença entre full-copy e full-copy é que full-copy não quebra a cadeia diferencial. Nenhum deles quebra a cadeia de log, pois nenhum deles trunca o arquivo de log.

    • 18
  3. Alexandr Omelchenko
    2015-11-19T01:08:45+08:002015-11-19T01:08:45+08:00

    Suponha que temos um banco de dados com backups agendados. O backup completo é executado uma vez a cada 24 horas às 00:00, também temos backups diferenciais que são executados a cada 6 horas e backups de log de transações que são executados a cada hora. Então, e se precisarmos fazer um backup completo extra no meio do dia, para restaurar outro servidor? O que devemos fazer neste caso. Claro, podemos fazer um backup completo.

    BACKUP DATABASE Test TO DISK = 'C:/Test.bak'

    Mas quando você faz um backup de um banco de dados, há algumas alterações que influenciam como os backups a seguir serão restaurados (os backups diferenciais e os backups de log de transações influenciam como será a operação de restauração). Nesse caso, todos os backups diferenciais a seguir serão dependentes do último backup completo. Se o último backup completo for perdido, a restauração do banco de dados será impossível.insira a descrição da imagem aqui

    Mas como podemos fazer um backup que não afete os seguintes processos de backup ou restauração desse banco de dados. É aqui que os backups somente de cópia entram em ação.

    BACKUP DATABASE Test TO DISK = 'C:\Test.bak' WITH COPY_ONLY

    insira a descrição da imagem aqui

    • 18
  4. StanleyJohns
    2013-07-09T00:42:07+08:002013-07-09T00:42:07+08:00

    Quando você tem um backup completo e um conjunto de backups de arquivos de log, uma cadeia de logs é mantida usando o LSN (Log Sequence Number). Se você quiser fazer um backup sem quebrar a cadeia de logs, faça um backup somente de cópia.

    Se você não fizer um backup somente de cópia, a cadeia de logs será interrompida e o backup que você fizer será o backup completo mais recente. Isso significa que os backups de log anteriores não podem ser aplicados aos backups completos recém-feitos. A cadeia de logs é mantida principalmente para recuperações pontuais ou cenários de envio de logs.

    Por exemplo: digamos que você tenha um cenário de backup que faz backups completos a cada 6 horas (meia-noite, 6h, meio-dia, 18h) e registra backups a cada 15 minutos. Uma solicitação chega às 9h para que uma cópia do seu banco de dados seja colocada em um servidor de teste. Você deseja fazer o backup sem quebrar sua cadeia de logs ou interromper seus trabalhos de backup. É quando é feito um backup somente de cópia. O backup somente de cópia não interromperá seus conjuntos de backup regulares.

    • 1
  5. kevin
    2017-09-24T19:01:28+08:002017-09-24T19:01:28+08:00

    Um backup completo e um backup somente de cópia não interrompem a cadeia de logs. somente se você fizer um backup de tlog haverá uma incompatibilidade de LSN.

    • 1

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

    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

    Conceder acesso a todas as tabelas para um usuário

    • 5 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
    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
    pedrosanta Listar os privilégios do banco de dados usando o psql 2011-08-04 11:01:21 +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