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 / 问题 / 308085
Accepted
Brendan McCaffrey
Brendan McCaffrey
Asked: 2022-03-01 12:34:18 +0800 CST2022-03-01 12:34:18 +0800 CST 2022-03-01 12:34:18 +0800 CST

我应该将我的 SQL Server 备份卸载到辅助副本吗?

  • 772

我的生产服务器没有足够的马力在本地运行备份而不会对生产造成影响。我想将它们卸载到我的次要副本,以释放我的主要资源。

我的一般问题和疑虑是:

  1. 我可以对我的次要副本进行哪些类型的备份?
  2. 我今天进行差异备份,这将如何工作?
  3. 这将如何影响我的 RPO/RTO?
  4. 如何配置备份首选项?
  5. 我已经配置了备份首选项,但没有得到遵守。我做错了什么?
  6. 完整性检查呢?我不应该把那些我备份的地方拿走吗?
  7. 我会破坏我的日志链吗?
  8. 我是否应该考虑卸载我的备份,还是应该考虑其他替代方案?
sql-server backup
  • 1 1 个回答
  • 125 Views

1 个回答

  • Voted
  1. Best Answer
    Brendan McCaffrey
    2022-03-01T12:34:18+08:002022-03-01T12:34:18+08:00

    您可以对次要副本进行的备份类型

    您可以进行仅复制完整备份和日志备份。您不能在辅助副本上进行传统的完整备份,因为数据库是只读的,并且 SQL Server 无法清除差异位图标志。

    仍想进行差异备份

    您必须在您的主副本以及完整备份上执行此操作。请记住,您只能在辅助副本上进行仅复制完整备份。为了能够重置差异位图标志,您必须在主服务器上执行此操作。

    对 RPO/RTO 的影响

    根据您进行备份的位置,您的 RPO/RTO 可能会受到很大影响。辅助副本的同步化可能会落后。当您的备份作业应该正在运行时,可以重新启动辅助复制,以及这些备份可能变得不可靠的六个其他原因中的任何一个。没有什么比计划一个 15 分钟的 RPO 更糟糕的了,只是发现您的次要副本比上次运行事务日志备份时晚了 30 分钟。

    配置备份首选项

    这在可用性组向导中很容易设置。你有几个选择。

    1. 首选辅助 - 如果您希望将备份卸载到辅助副本,这是最常见的设置。
    2. 仅次要 - 请注意,如果您选择此设置并且在运行备份作业时没有可用的次要副本,它们将不会在该时间段内运行。
    3. Primary - 这是一个非常安全的设置。如果您没有在线主节点并且可以进行备份,那么您需要处理的问题比备份首选项要大。
    4. 任何副本 - 我会避免这个。您要么希望备份在主节点或辅助节点上运行。想要你不想要的是它们在两者之间随机翻转。

    设置首选项后,您需要设置优先级。这是一个 (0-100),0 是最低的,100 是最高的。此设置有助于避免同时在所有次要副本上运行备份,每个次要副本都认为它们是最高优先级。通常,您会将一个副本设置为 100,并酌情减少其他副本。

    我已经配置了备份首选项,但没有得到遵守。我做错了什么?

    仅设置备份首选项和优先级并不足以确保您的备份在您认为的位置运行。您的备份作业必须了解此设置。本质上,根据您的可用性配置这些值只会通过名为sys.fn_hadr_backup_is_preferred_replica ('dbname')的系统函数公开这些设置。在尝试对任何数据库进行备份之前,您需要确保备份作业正在检查此函数的结果。

    完整性检查呢?我不应该把那些我备份的地方拿走吗?

    是的,您确实希望在进行备份的地方运行完整性检查,以便您知道您有可以恢复的有效备份。但是,在可用性组中,您实际上需要确保对所有副本运行完整性检查,而不管您将备份放在哪里。仅在辅助副本上运行完整性检查和备份并不能保证主副本上没有损坏。您的辅助副本仅从主副本获取事务日志详细信息。他们不知道主数据库是否有损坏的页面位于磁盘上。如果您还没有在主节点上运行完整性检查,它可能会在数周、数月或更长时间内未被检测到。直到您不再有要恢复到的有效备份时,您才可能发现。

    您可能会说,“好吧,我将故障转移到我的辅助副本”。这可能会奏效。但我不认为这是我防止腐败的主要保护措施。我希望尽快收到警报,并且仍然有有效的备份可以返回,以防万一。

    日志链呢

    在可用性组上进行日志备份时要小心使用日志链。无论您从可用性组上的哪个节点进行日志备份,该日志链都会在所有节点上持续存在。如果您在多个节点上运行日志备份,无论出于何种原因,如果您需要恢复到某个时间点,您将需要所有这些备份。在这里保持简单,将所有日志备份限制到同一个节点。

    结论

    我的偏好是让我的所有备份都在我的主副本上运行。如果同步落后,无论出于何种原因,我知道我仍然可以依靠我的备份来获得我可以获得的最新副本。如果发生腐败,我会迅速收到通知并做出反应。我还可以依赖辅助副本的一个自动页面修复。如果我遇到在我的主副本上运行备份的问题,我会质疑服务器是否有足够的资源,或者是否需要查询或索引调整以帮助服务器更好地执行。我不希望通过将备份卸载到另一台服务器来限制我正确恢复数据库的能力。

    更多信息可在此处和此处获得。

    • 2

相关问题

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

  • 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