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 / 问题 / 340340
Accepted
Java
Java
Asked: 2024-06-19 02:17:46 +0800 CST2024-06-19 02:17:46 +0800 CST 2024-06-19 02:17:46 +0800 CST

每周进行一次完整备份或每 15 分钟备份一次事务日志是否有意义?

  • 772

我必须(在工作中)做出决定,选择使用 SQL Server 2019 哪个选项更可行:

选项 1:每周发送一次完整备份,并在每周备份之间发送差异备份。选项 2:发送一次完整备份。每 15 分钟发送一次事务日志备份。如有需要,可根据需要发送额外的完整备份和差异备份。

我倾向于选项 1,因为管理每 15 分钟一次的事务日志似乎很困难。

哪种方法更有意义?

这是来自第三方供应商的少量数据,我们将其存储在 VM 中的 SQL Server 2019 中。数据被提取后,不会像从我们的 SSMS 分发给其他方那样进行任何操作。我不确定“时间点恢复”以及 RPO 或 RTO。我还没有进入完整或简单恢复模式部分。

sql-server
  • 3 3 个回答
  • 116 Views

3 个回答

  • Voted
  1. Best Answer
    SergeyA
    2024-06-19T03:20:03+08:002024-06-19T03:20:03+08:00

    哪个选项更有意义/更容易?

    第一个问题是你要解决什么问题?

    您将如何使用您的备份?

    您是否正在设置向其他方传送日志?

    您需要时间点恢复吗?

    您的数据库是否处于完整恢复模式或简单恢复模式?

    您的 RPO 或 RTO 目标是什么?

    管理每 15 分钟一次的事务日志似乎很困难。

    完全不是。sp_DatabaseRestore会发挥神奇的作用。只需定期运行它,它就会拾取要应用的新日志。

    编辑。

    这是来自第三方供应商的少量数据,我们将其存储在虚拟机中的 SQL Server 2019 中

    听起来您正在配置日志传送。无论如何,设置一个作业以定期运行 sp_DatabaseRestore。该作业不应每 15 分钟运行一次以应用最新日志。它可以每小时运行一次以应用多个日志,甚至可以每天运行一次以应用当天的所有日志。

    参数有很好的例子。

    这是我的参数。我们正在恢复日志并以只读模式打开数据库。

    exec [sp_DatabaseRestore] @Database='mydatabase',
        @BackupPathFull='E:\Backups\myserver\mydatabase\FULL\',
        @BackupPathLog ='E:\Backups\myserver\mydatabase\LOG\',
        @MoveFiles = 1, 
        @MoveDataDrive ='D:\MSSQL\STBY_DATA\',
        @MoveLogDrive ='E:\MSSQL\STBY_LOG\',
        @RunRecovery = 0,
        @ContinueLogs = 1,
        @StandbyMode  = 1,
        @StandbyUndoPath  = 'E:\MSSQL\STBY_LOG\',
        @Execute='Y'
    
    • 4
  2. Peter Vandivier
    2024-06-19T02:44:12+08:002024-06-19T02:44:12+08:00

    是的。

    请参阅如何配置 Ola Hallengren 的数据库维护脚本以进行备份

    总结一下:

    1. 运行维护解决方案.sql
    2. 使用正确的数据库名称和备份路径为您的实例配置代理作业
    3. 添加每周完整备份计划并启用该作业
    4. 手动运行作业并使用它生成的媒体测试恢复
    • 2
  3. Ramakant Dadhichi
    2024-06-19T19:47:25+08:002024-06-19T19:47:25+08:00

    您需要考虑的第一件事是发生灾难时您对数据丢失的容忍程度。

    RTO/RPO 定义您的备份策略,而不是管理开销。例如:如果您的服务器崩溃或出现数据问题,您可以容忍多少数据丢失?

    如果您说我们不能丢失 15 分钟的数据(理想情况下),那么您需要每 15 分钟运行一次定期日志备份。

    现在,完整备份和差异备份将取决于您的数据库有多大。如果完整备份需要 2 分钟,那么我会在晚上进行一次完整备份,然后每 15 分钟进行一次常规日志备份。

    如果发生灾难,您将恢复完整备份和所有可用的日志备份。

    一旦您确定了策略,那么您就需要选择所需的备份方式。

    • 避免将备份保存在同一台服务器上,最好将其移动到云存储(s3 或 azure 存储帐户)

    • Ola Hallengren 的解决方案或简单的 SQL Server 维护计划应该足够好。

    • 2

相关问题

  • SQL Server - 使用聚集索引时如何存储数据页

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

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

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

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

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