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 / 问题 / 143746
Accepted
bomaboom
bomaboom
Asked: 2016-07-14 05:59:09 +0800 CST2016-07-14 05:59:09 +0800 CST 2016-07-14 05:59:09 +0800 CST

CDC vs 复制 vs 其他任何东西

  • 772

在我的产品中,我们需要为报告团队创建一个解决方案来提取和处理数据。我们需要从我们的数据库向他们发送增量数据更改。我正在评估各种解决方案。研究了 CDC 和 Replication,但不确定要使用哪一个或构建一个自定义的。

虽然 CDC 易于配置并且需要比复制更少的基础架构,但更改表位于同一个数据库中,性能可能会降低,具体取决于报告团队查询数据库的频率。

复制似乎更畅销,但它需要大量的基础设施。看起来也必须在同一服务器中有单独的数据库实例或使用另一台服务器。

定制解决方案在这里会有所帮助吗?有没有办法创建数据库副本并从源数据库读取日志并通过作业将增量数据推送到目标数据库。

transactional-replication change-data-capture
  • 2 2 个回答
  • 5269 Views

2 个回答

  • Voted
  1. Best Answer
    David Fowler
    2017-05-16T05:20:46+08:002017-05-16T05:20:46+08:00

    CDC 并不是真正设计为使报告数据库保持最新的一种方式,它更多的是用于跟踪更改。

    这里的最终目标到底是什么,您是否只是要将一些选定的表\数据带到另一台服务器上进行报告,或者您是否正在寻找一种方法来获取整个数据库?

    你有几个选择,如果你只对少数表感兴趣,那么你可能想看看复制。复制实际上并不需要太多的基础设施,只需要另一个 SQL Server 来复制。

    如果您想拥有数据库的完整副本以用于报告目的,那么您拥有的最简单的选择是日志传送,但请注意,当日志传送过程在日志中播放时,报告数据库将不可用。

    您拥有的另一个选择是使用可用性组,其中辅助节点充当只读报告副本。

    • 1
  2. Simon Hughes
    2016-07-14T07:01:41+08:002016-07-14T07:01:41+08:00

    首先,不要尝试手动操作。这比你想象的要难。老实说,不要。

    CDC 对于数据捕获、事件处理等非常有用。但是,您确实应该在这里使用复制。我有一个复制到 150 多个仓库的数据库,它运行良好。

    我强烈推荐的一件事是您使用 VIEW 进行复制过滤。这样,如果您需要修改要复制的内容,您可以轻松更改它,而无需删除并重新启动复制。

    • 0

相关问题

  • 更改数据捕获和 __$update_mask 二进制文件

  • 变更数据捕获 - 如何知道谁做出了变更?

  • 捕获 SQL Server CDC 中更改的日期时间

  • 确保在 SQL Server 2008/2012 复制读取时只访问新数据

  • 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