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 / 341063
Accepted
J. Mini
J. Mini
Asked: 2024-07-20 21:01:15 +0800 CST2024-07-20 21:01:15 +0800 CST 2024-07-20 21:01:15 +0800 CST

A ativação da compactação de backup em uma tarefa de backup de banco de dados permite somas de verificação, independentemente da configuração escolhida para elas?

  • 772

Observações

A documentação diz

Para habilitar somas de verificação de backup em uma BACKUPinstrução (Transact-SQL), especifique a WITH CHECKSUMopção. Para desabilitar somas de verificação de backup, especifique a WITH NO_CHECKSUMopção. Este é o comportamento padrão, exceto para um backup compactado.

Em outras palavras, habilitar a compactação habilita somas de verificação.

Porém, nos meus planos de manutenção (infelizmente são os da GUI e não os legais do Ola), posso ver:

  • "Compactação de backup (ativado)" no menu principal
  • "BackupCompressionOption" definido como "On" e "Checksum" definido como "False" listado no menu de propriedades da tarefa Backup do banco de dados.
  • 'Verificar integridade do backup' marcado no menu Modificar, 'Compactar backup' selecionado e 'Executar soma de verificação' desmarcado.

A questão

Isso sugere que as somas de verificação estão desativadas, mesmo que eu tenha solicitado explicitamente a compactação de backup? Ou as caixas de seleção/propriedades das somas de verificação são redundantes se a compactação estiver habilitada?

O que eu tentei

  • "View T-SQL" trava o SSMS toda vez que tento.
  • Falha ao encontrar o T-SQL no Query Store, embora eu o tenha habilitado em todos os bancos de dados (pesquisei sys.query_store_query_text) like '%backup database%'.
  • msdb.dbo.backupsettem 0em todas as suas has_backup_checksumscolunas, mas não sei se a compactação torna esta coluna inútil.
sql-server
  • 2 2 respostas
  • 79 Views

2 respostas

  • Voted
  1. Best Answer
    Tibor Karaszi
    2024-07-22T19:14:39+08:002024-07-22T19:14:39+08:00

    Aqui está o que acho que acontece quando você combina CHECKSUM e COMPRESSION:

    COMPRESSION adiciona outro nível de manipulação de soma de verificação, independente da soma de verificação do comando de backup. Na IMO, a documentação é vaga nesta área e deve esclarecer como essas coisas se interligam.

    Tentei três comandos de backup diferentes:

    BACKUP DATABASE Adventureworks TO DISK = 'R:\aw.bak' WITH COMPRESSION, INIT
    BACKUP DATABASE Adventureworks TO DISK = 'R:\aw.bak' WITH COMPRESSION, INIT, NO_CHECKSUM
    BACKUP DATABASE Adventureworks TO DISK = 'R:\aw.bak' WITH COMPRESSION, INIT, CHECKSUM
    

    Verifiquei se o cabeçalho do backup possui checksum (RESTORE HEADERONLY). Somente aquele obtido com a opção CHECKSUM tinha 1 para aquela coluna.

    Eu tentei o comando abaixo:

    RESTORE VERIFYONLY FROM DISK = 'R:\aw.bak' WITH CHECKSUM
    

    Acima estava OK para o backup feito com CHECKSUM, mas para os outros dois falhou com a mensagem de erro abaixo:

    Msg 3187, Level 16, State 1, Line 9
    RESTORE WITH CHECKSUM cannot be specified because the backup set does not contain checksum information.
    Msg 3013, Level 16, State 1, Line 9
    VERIFY DATABASE is terminating abnormally.
    

    Acima me indica que a única maneira de obter o tratamento da soma de verificação do comando de backup é especificando a opção CHECKSUM (ou padronizando-a usando sp_configure).

    Além disso, hackeei o arquivo, alterando alguns dados aleatórios com um editor hexadecimal. Para todos os três comandos de backup, recebi o erro abaixo:

    Msg 3203, Level 16, State 1, Line 9
    Read on "R:\aw.bak" failed: 13(The data is invalid.)
    Msg 3013, Level 16, State 1, Line 9
    VERIFY DATABASE is terminating abnormally.
    

    Isso me indica que o tratamento da soma de verificação da compactação é, no momento da restauração, feito antes da verificação da soma de verificação do comando de backup.

    Finalmente tentei o mesmo (hackear com um editor hexadecimal) para um backup não compactado , e deu o erro abaixo para VERIFYONLY:

    Msg 3189, Level 16, State 1, Line 9
    Damage to the backup set was detected.
    Msg 3013, Level 16, State 1, Line 9
    VERIFY DATABASE is terminating abnormally.
    

    Ou seja, uma mensagem de erro diferente. Esta é a mensagem de erro IMO que a verificação da soma de verificação dos comandos de backup lança quando falha na verificação. Em contraste com o erro da verificação dos códigos de compressão (conforme mostrado anteriormente).

    Para que conste, quando modifiquei o arquivo. Eu o modifiquei em três locais diferentes para todos os testes. Alterei o valor de um byte, salvei o arquivo, fiz uma verificação e depois mudei de volta para o original e verifiquei se o backup agora estava limpo. Em três locais diferentes nos arquivos. As mensagens de erro foram consistentes em todos os testes, portanto, é muito improvável que, em todas as 9 alterações que fiz, atingisse alguma área de metadados no arquivo de backup.

    • 3
  2. Ronaldo
    2024-07-21T01:24:03+08:002024-07-21T01:24:03+08:00

    Você pode verificar a saída de cada combinação de opções usando RESTORE HEADERONLY para ver as características do backup gerado. O resultado desse comando contém a coluna HasBackupChecksums. Deverá confirmar que o Backup contém somas de verificação de backup quando o valor for 1.

    • 0

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