首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sys.dm_hadr_database_replica_states,理解不同的*_time列

sys.dm_hadr_database_replica_states,理解不同的*_time列
EN

Database Administration用户
提问于 2018-08-13 02:52:04
回答 1查看 3.4K关注 0票数 3

我正在疯狂地试图理解sys.dm_hadr_database_replica_states系统表中不同时间列的含义。

我们有一个始终位于可用性组上的三个节点,其中两个节点是同步的,一个是异步的。我们希望使用异步节点进行报告,并希望找到一种精确的方法来计算主副本和异步副本之间的延迟。

下面是查询的快照:

代码语言:javascript
复制
select synchronization_state_desc, 
       is_primary_replica, 
       last_sent_time, 
       last_received_time, 
       last_hardened_time, 
       last_redone_time, 
       last_commit_time
from sys.dm_hadr_database_replica_states DRS 
where database_id = db_id('DBname')

编辑了这篇文章,缩小了

问题的范围

如果我需要找到数据出现在异步节点上所需的实际延迟,那么我应该使用哪些列?

EN

回答 1

Database Administration用户

发布于 2018-08-13 09:39:14

首先,这里是Microsoft页面

顺便提一下,我建议您阅读一下可用性组的机制,纯粹是为了让您理解我的答案。(Microsoft页面)

至于您的问题的答案,就像RDBMS周围的问题一样,这取决于。

在这种情况下,取决于您所说的"...for数据显示“是什么意思。

让我们来看看你问题中的专栏:

  • last_sent_time,
  • last_received_time,
  • last_hardened_time,
  • last_redone_time,
  • last_commit_time

还值得注意的是,您所指的系统DMV位于数据库级别。

last_sent_time

此时间指示主服务器最后一次向可用的次要文件发送日志块的时间。这是数据同步过程的开始。

last_received_time

这表示辅助程序最后一次接收日志块的时间。

last_hardened_time

这表示第二次将接收到的日志块数据缓存到磁盘上的上次时间。

last_redone_time

这是在目标数据库上重做最后一个LSN的时间。

last_commit_time

这是最后一次提交记录被重做并报告给主服务器的时间。

摘要

在上面,有不同的数据进入二级系统的入口点.

数据首先在last_received_time上进入服务器内存。

数据首先进入last_hardened_time磁盘上的服务器

数据首先进入last_redone_time上的数据库数据文件

数据首先被提交,并可通过查询(在奇怪的NOLOCK情况之外)在last_commit_time读取

我怀疑你的问题的答案是这四个概念中的后一个。然而,由于数据在次要和主数据之间的传输时间,本专栏中的时间开销很小。然而,在确定数据吞吐量速度的计算中,这可能并不重要。

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

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

复制
相关文章

相似问题

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