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 / 问题 / 189663
Accepted
SqlNovice
SqlNovice
Asked: 2017-10-31 04:54:49 +0800 CST2017-10-31 04:54:49 +0800 CST 2017-10-31 04:54:49 +0800 CST

夏令时

  • 772

在我的环境中,有一些服务器在本地备份和 Ola Hallengren 计划上运行。我们的服务器是 2008 年、2012 年和 2014 年的组合。所有完整备份都在凌晨 12 点进行,日志备份每 15 分钟进行一次。

我以前从未考虑过夏令时,所以请告诉我应该进行哪些调整。

上午 12 点的完整备份会受到影响吗?日志备份会怎样?

sql-server-2008 timezone
  • 1 1 个回答
  • 2479 Views

1 个回答

  • Voted
  1. Best Answer
    Scott Hodgin - Retired
    2017-10-31T05:14:59+08:002017-10-31T05:14:59+08:00

    SQL Server 专家Paul Randal在夏令时如何影响灾难恢复?. 这是一个相对较短的帖子,所以我将其全部引用。由于您担心您的事务日志备份,因此我还强调了一些帖子以引起您的注意。

    众所周知,SQL Server 可以正确处理夏令时 (DST),那么您为什么要关心呢?

    好吧,在 DST 结束时,当时钟倒退一小时(美国总是在 02:00)时,SQL 代理基本上会暂停一个小时(至少从 SS2000 开始),这并不是众所周知的知识。这意味着,如果您的作业每 15 分钟执行一次,那么在 01:45 的作业执行和 02:00 的作业执行之间会有 75 分钟的间隔。发生这种情况是因为在 02:00,时间设置回 01:00,但所有作业的下一次运行时间保持不变 - 因此您的作业要到下一个计划时间 02:00 才能执行。因此,每年秋天在北半球,每年春天在南半球,您都会失去一个小时的 SQL 代理作业。不过,你为什么要关心?

    好吧,这取决于延迟一个小时的工作是什么。如果您 的作业每 15 分钟进行一次日志备份,那么在 DST 结束的那一天,日志备份之间实际上有 75 分钟的间隔。如果您的服务水平协议 (SLA) 将发生灾难时的最大损失工作量限制为 15 分钟,那么在这 75 分钟内,您可能无法满足该 SLA!

    这可能是一件大事,特别是如果在那一小时内出现问题(与其他任何时间出现问题的可能性差不多,但仍有可能)。在这种情况下,您需要想出一个替代解决方案。我能想到的解决问题的几种方法:

    • 让某人在那个小时内熬夜并进行手动日志备份。
    • 切换到数据库镜像,它会不断地将日志流式传输到冗余服务器,因此不会影响 DST 问题。

    这两个都是可行的解决方案,但我认为最好的解决方案是创建一个在 01:59 运行的 SQL 代理作业,并创建额外的备份作业以在 01:00、01:15、01:30 和 01:45 运行。我不明白为什么这是不可能的。今天早上 10:36,我创建了一个简单的代理作业,将日期打印到文件中,并将其设置为在过去的 09:40 执行。然后我将系统时间设置回一小时,作业完美执行。此解决方案的唯一缺点是您需要使用嵌入在 01:59 作业的作业步骤中的 T-SQL 代理 SP 创建和安排额外的作业 - 乏味但不难。也许有人可以给我发一个脚本,我会把它写在博客上作为后续?

    因此,随着 DST 将于 11 月 4 日结束,这绝对是您需要注意的事情,即使您不想费力应对额外一小时的暴露时间。顺便说一句——今年 DST 开始和结束的日期发生了变化。知识库文章 931975 讨论了 SQL Server 的哪些部分不知道更改的日期以及您可以做些什么。

    • 12

相关问题

  • 连接不同地理区域的数据库的最佳实践

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

  • 我在索引上放了多少“填充”?

  • 是否有开发人员遵循数据库更改的“最佳实践”类型流程?

  • 从 SQL Server 2008 降级到 2005

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