AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题 / 117028
Accepted
BradC
BradC
Asked: 2015-10-06 06:31:05 +0800 CST2015-10-06 06:31:05 +0800 CST 2015-10-06 06:31:05 +0800 CST

了解关闭“验证备份完整性”对 SQL 备份的影响/风险

  • 772

目前,我们在我们环境中的 SQL Server 2005/2008/2008R2/2012 服务器上使用标准维护计划进行备份,并且始终选中“验证备份完整性”框。

一些备份运行时间很长,因此我建议关闭该选项,但管理层需要我记录此更改的影响和风险。

我了解此选项的使用和历史,我似乎没有必要将备份工作的时间加倍(在我看来),任何可能发生的错误都将在备份步骤期间发生,而不是在验证期间发生。

我错了吗?如果我要备份到磁盘而不是流式磁带或其他东西,关闭它的风险是否最小?(如果相关,我们通过网络备份到 EMC DD-800 备份设备。)

是否有任何官方的 MS 建议何时可以安全地关闭此功能?

您是否对环境中的每个备份都运行“验证”?你抽查他们吗?

编辑:为了澄清,当您在维护计划中检查“验证备份完整性”时,SQL 将在每次备份后立即对每个数据库执行完整的RESTORE VERIFYONLY 。这与原始备份一样密集的数据/IO,并且(基本上)使备份作业的总时间加倍。这与在备份中启用“校验和”选项不同(据我所知,这不能在向导中完成)。

sql-server backup
  • 3 3 个回答
  • 10535 Views

3 个回答

  • Voted
  1. Best Answer
    Kin Shah
    2015-10-06T07:47:42+08:002015-10-06T07:47:42+08:00

    我错了吗?如果我要备份到磁盘而不是流式磁带或其他东西,关闭它的风险是否最小?

    不,你是对的:-)

    RESTORE VERIFYONLYonly 不能确保在发生损坏时能够恢复数据库。从本质上讲,它不会执行任何完整性检查。

    更好的方法是定期进行备份并在不同的服务器上进行有效恢复并在其上执行 DBCC CHECKDB。

    这就是为什么我不是维护计划的忠实拥护者的原因之一,因为 GUI 没有提供很多backup .. with CHECKSUM可以通过 T-SQL 实现的选项。

    来自Paul Randal 的神话博客

    24p) 使用 RESTORE ... WITH VERIFYONLY 验证整个备份

    否。使用 VERIFYONLY 仅验证备份标头看起来像备份标头。只有当您使用 WITH CHECKSUM 进行备份并执行 RESTORE ... WITH VERIFYONLY 并使用 WITH CHECKSUM 时,还原才会执行更广泛的检查,包括整个备份的校验和。

    您是否对环境中的每个备份都运行“验证”?你抽查他们吗?

    我不运行 VERIFYONLY。相反,我使用 CHECKSUM 进行备份,然后在另一台服务器上恢复 + CHECKDB。如果您想发挥创意,您​​可以遵循 Statistical Sampling for Verifying Database Backups方法。

    这与在备份中启用“校验和”选项不同(据我所知,这不能在向导中完成)。

    您可以启用跟踪标志 3023,以便CHECKSUM为 BACKUP 命令自动启用该选项。与往常一样,在您的环境中测试任何跟踪标志的行为!

    底线是 - 放弃维护计划并使用更明智的备份解决方案 (提示:Ola 的备份解决方案),这将允许您根据需要对其进行自定义。

    (如果相关,我们通过网络备份到 EMC DD-800 备份设备。)

    在本地备份到磁盘,然后执行 PowerShell 传输作业,将备份从服务器本地复制到网络共享(备份服务器)。这将比直接复制到网络共享更快。

    此外,启用即时文件初始化,这将有助于数据文件的自动增长以及有助于减少恢复时间(以防万一您必须恢复数据库)。有方便的选择总是好的。

    不错的读物是:备份:规划恢复策略

    • 5
  2. Peter Schofield
    2015-10-06T07:48:12+08:002015-10-06T07:48:12+08:00

    底线是,除非您在某处进行数据库恢复,否则您不能完全确信给定的备份文件是好的。

    验证备份的理想测试是设置一个环境,在该环境中,数据库备份和数据库日志备份始终作为日常流程的一部分进行恢复。这是使用日志传送的优点之一......

    如果您仍然想坚持使用 verifyonly,您可以专门设置一个环境来执行此操作。这将从您的(大概)生产服务器上卸载工作,并减少工作时间。

    最后,您是否考虑过放弃维护计划?像 Ola 的脚本之类的脚本,除了备份和维护之外: https ://ola.hallengren.com/

    • 2
  3. MrG
    2015-10-06T07:51:11+08:002015-10-06T07:51:11+08:00

    从技术上讲,verfyonly 还原就像执行还原一样,但是没有更好的检查来实际还原数据库以检查其有效备份。我们有一个实例,verifyonly 通过了但是数据库由于损坏而无法恢复,我的观点是不要指望这个作为验证备份是好的。我们现在开发了一个系统,可以在一个单独的实例上恢复我们所有的数据库以检查它们的有效性,显然这并不总是可行的,因此请尝试每周对某个数据库进行采样。多头和空头不信任verifyonly 100%。

    • 1

相关问题

  • 我需要为每种类型的查询使用单独的索引,还是一个多列索引可以工作?

  • Oracle 中的数据库备份 - 导出数据库还是使用其他工具?

  • 什么时候应该使用唯一约束而不是唯一索引?

  • 死锁的主要原因是什么,可以预防吗?

  • 如何确定是否需要或需要索引

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

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

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve