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 / 问题 / 275063
Accepted
RGO
RGO
Asked: 2020-09-07 12:12:22 +0800 CST2020-09-07 12:12:22 +0800 CST 2020-09-07 12:12:22 +0800 CST

事务日志:生成了多少日志数据(每小时或每天)?

  • 772

我试图找出 SQL Server 2016 每小时或每天生成的事务日志数据量。“生成的数据”是指每小时(或每天)有多少数据(以字节/KB/等为单位)写入磁盘。

有没有办法找到这个?

我们的数据库处于完全恢复模式,并且我们确实有定期的事务日志备份。因此,我认为在 msdb 中查询备份元数据可能有助于实现这一目标。行得通吗?它会给我正确和可靠的结果吗?

第二个选项可能是查看事务日志文件发生的读/写 IO 量。这个能用吗?如果是,我该怎么做?是否有任何 SQL Server DMV 提供此类信息?Windows 工具呢?(如 Windows 性能监视器)?

如果可能的话,我更喜欢上面的第二个选项,因为它不需要事务日志备份。因此,它甚至可以与 SIMPLE 恢复模型数据库一起使用。所以,我的问题是,这可能吗?

还有其他选择吗?比如现成的 SQL Server 工具或视图?

请注意,我需要这些数据,因为我们正在尝试估计如果我们在云中创建(近)实时复制数据库所需的网络 IO 量。所以,我认为我们应该以某种方式测量归因于事务日志文件的 IO 量。我的假设是否正确,即所需的 IO 将等于事务日志文件的 Io 量?这就是 SQL Server 事务复制的工作方式吗?(即通过将 VLF 发送到复制站点)?

sql-server replication
  • 1 1 个回答
  • 415 Views

1 个回答

  • Voted
  1. Best Answer
    Tibor Karaszi
    2020-09-07T23:41:44+08:002020-09-07T23:41:44+08:00

    里面有很多问题。

    首先,我们是在谈论事务复制吗?我知道你说过,但我们需要确定你不是在谈论 Always On 可用性组、日志传送或其他一些解决方案来获取数据库的“副本”。回答:是的,事务复制——我将它称为“复制”。

    不,复制不会复制 VLF。我认为从事务日志中获取任何可用的东西非常困难。

    首先,考虑复制架构:

    代理作业(日志读取器)读取事务日志,从中生成 DML 语句并将它们存储在分发数据库中。所以第一个问题是日志阅读器是否是本地的。

    然后下一个代理作业,分发者读取分发数据库中的这些 DML 命令并将它们应用到每个订阅者。您可能已经意识到,日志记录(二进制数据)的大小和作为日志记录(文本)结果的 DML 命令的大小并没有 1:1 的映射关系。当然,问题是分销商在哪里运营。

    最后一个问题是订阅者在哪里。因此,您应该使用所涉及的数据库绘制图片,其中数据库之间有网络以及代理作业正在运行的位置。

    还有更多:某些操作不会通过事务复制进行。一个例子是索引重建。它可以生成大量的日志记录(如果是完全恢复模式),但是这样的操作不会在订阅者上执行 - 所以它会被日志阅读器忽略。

    既然您说的是子集,那么如果您指的是数据库的子集:您将如何从日志中确定哪些日志记录适用于该子集中的表/行?

    我主要在这里提出问题,只是为了指出您很容易陷入过于简化的“解决方案”,这可能会产生误导。这篇MS 文章讨论了一些在您实施复制时可以使用的选项。

    免责声明:我不是复制专家,所以请随时纠正我,你们大家。

    • 1

相关问题

  • 运行时间偏移延迟复制的最佳实践

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

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

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

  • PostgreSQL 9.0 Replication 和 Slony-I 有什么区别?

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