首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在SQL Server日灯节省期间处理日期时间检查

在SQL Server日灯节省期间处理日期时间检查
EN

Database Administration用户
提问于 2021-11-09 00:14:03
回答 1查看 76关注 0票数 1
  • 我们有一个日志记录表,每分钟都添加条目(表中的log_date字段记录在UTC中,服务器本地时间在PST中),如果表中最后15分钟没有条目,则监视和警告。
  • 日志记录表使用计划每分钟运行的SQL代理作业记录数据。
  • 当DST关闭时,我们收到错误警报,如何在检查最后15分钟的数据时处理这种情况?
  • 我们目前使用的是Server 2019,log_date的类型为datetime2。

添加了用于使用SQL代理作业填充表的表定义和查询。

代码语言:javascript
复制
create table latency_log(
        [log_date] [datetime2](0) NOT NULL,
        [replica_id] [uniqueidentifier] NULL,
        [log_send_queue_size] [bigint] NULL,
        [log_send_rate] [bigint] NULL,
        [redo_queue_size] [bigint] NULL,
        [redo_rate] [bigint] NULL
)

insert into latency_log
select
    GETUTCDATE() as log_date,
    ar.replica_id,
    hdrs.log_send_queue_size,
    hdrs.log_send_rate,
    hdrs.redo_queue_size,
    hdrs.redo_rate
from sys.dm_hadr_database_replica_states hdrs 
join sys.availability_replicas ar on hdrs.replica_id = ar.replica_id

监视日志记录的条件:

代码语言:javascript
复制
declare @since datetime2 = dateadd(MINUTE,-15,getutcdate())
if exists ( 
    select top 1 1 
    from latency_log
    where log_date > @since
)
    select 'No alert'
else
    select 'Alert'

我没有发现SQL作业历史中缺少任何运行。

EN

回答 1

Database Administration用户

发布于 2021-11-09 19:00:45

我相信保罗·兰德尔的这篇文章解释了你所看到的问题:

在DST结束时,当时钟返回一个小时(在美国总是在02:00 )时,SQL Agent基本上会暂停一个小时(至少在Server 2000之后),这不是常识。

它表明,如果你检查工作记录,你将看到一个小时的差距,当时钟倒转。

票数 2
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/302334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档