我正在asp.net mvc2应用程序上实现日志记录功能,它使用SqlServer2008作为数据库,Entity Framework作为数据模型.
我启用了SqlServer的CDC功能,它的日志记录变化很好,但我注意到一些旧的日志记录数据被删除了.
有谁知道CDC保留记录的默认期限,并且有人知道如何将其设置为无限期值.
我用SQL Server 2008和AdventureWorkDB.
我希望Change Data Capture在我的数据库中启用.
我执行这个命令:
USE [AdventureWorksDB];
GO
EXEC sys.sp_cdc_enable_db ;
Run Code Online (Sandbox Code Playgroud)
但我得到这个错误:
Could not update the metadata that indicates database X is enabled for
Change Data Capture.
The failure occurred when executing the command 'SetCDCTracked(Value = 1)'.
The error returned was 15517:
'Cannot execute as the database principal because
the principal "dbo" does not exist,
this type of principal cannot be impersonated,
or you do not have permission.'.
Use the action and …Run Code Online (Sandbox Code Playgroud) 有几种类似的Oracle技术 - Oracle Streams,Oracle Change Data Capture和Database Change Notification.
这些有什么区别?
它们与Oracle Advanced Queuing有关吗?
oracle cdc change-data-capture advanced-queuing oracle-streams
在我深入研究Microsoft文档的深渊之前,我想知道是否有经验的变更数据捕获和变更跟踪知道是否可以使用其中一个或两个来取代传统...
"由Triggers插入的'真实表'的审计跟踪表副本(原始表的所有字段,加上日期/时间,用户ID和DML操作字段)"
...设置数据库表审计跟踪,其中触发器填充审计跟踪表(这是所有手动工作).
MSDN概述文档在很高的层次上解释了变更数据捕获和变更跟踪的内容,但对我来说还不够明确,并且没有直截了当地说明这些工具可以用来取代传统的审计跟踪表.经常做的.
有经验使用变更数据捕获和变更跟踪的人可以节省我很多时间,还是确认我花时间看正确的工具?我们审计跟踪的关键部分是捕获对表的字段(INSERT,UPDATE,DELETE)的所有更改,何时发生,以及由谁完成.这些更改通常通过审计跟踪报告按时间顺序提供给最终用户.这是另一个问题......更改数据捕获或更改跟踪是解决方案,我假设可以像普通表中的数据一样查询此数据?
编辑:我需要一个永久的审计跟踪,无论时间.我看到Change Data Capture与事务日志有关,所以这对我来说听起来很有限.
change-tracking change-data-capture audit-trail sql-server-2008
我已经读过,启用Change Data Capture显然会对数据库性能产生影响.此性能损失是否仅影响已启用CDC的表,还是会影响整个数据库中的所有操作
在我的情况下,我正在使用SSIS并且有大量数据移入和移出临时数据库.我在系统中也有一些用于转换的查找表.我希望使用CDC作为审核这些参考表的更改的手段(而不是导入的数据).我作为ETL的一部分运行的主要查询访问这些参考表但不更改它们,所以我试图弄清楚是否仍会有明显的性能损失?
谢谢
我目前正在探索Change Data Capture作为存储时态数据库的选项.它很棒,因为它只存储增量,似乎它可以解决我的问题.当我启用CDC时,会出现一堆表格System Tables.
查询时cdc.dbo_MyTable,我能够看到桌面上发生的所有更改.现在,我将如何构建历史视图?例如,如果我想在特定日期看到我的桌子的状态,我将如何去做呢?这甚至可能吗?
它看起来我需要获取日志并开始将其应用于我的原始表,但我想知道是否有内置的方法来做到这一点.有什么建议?
我正在研究的一些用例:
时态表比变更数据捕获或变更跟踪有什么优势?
sql-server change-tracking change-data-capture sql-server-2016 temporal-tables
我一直在尝试使用以下命令 /bin connect-standalone.properties config/connect-standalone.properties postgres.sproperties 从 postgres sql 到 kafka 主题获取数据,但我面临着几个问题,这里是我的 postgres 的内容。属性文件:
name=cdc_demo
connector.class=io.debezium.connector.postgresql.PostgresConnector
tasks.max=1
plugin.name=decoderbufs
slot.name=debezium
slot.drop_on_stop=false
database.hostname=localhost
database.port=5432
database.user=postgres
database.password=XXXXX
database.dbname=snehildb
time.precision.mode=adaptive
database.sslmode=disable
database.server.name=localhost:5432/snehildb
table.whitelist=public.students
decimal.handling.mode=precise
topic.creation.enable=true`
Run Code Online (Sandbox Code Playgroud)
以下是 connect-standalone.properties 的内容:
# These are defaults. This file just demonstrates how to override some settings.
bootstrap.servers=localhost:9092
# The converters specify the format of data in Kafka and how to translate it into Connect data. Every
Connect user will
# need to configure these based on the format they want …Run Code Online (Sandbox Code Playgroud) postgresql change-data-capture apache-kafka apache-kafka-connect debezium
我正在尝试在最新的 debezium (1.7) 和 postgres (V13) 中使用 debezium增量快照。为了进行测试,我在一个表中填充了 1M 行,每行 4KB,带有一个 UUID 主键和 20 个 varchar 列。由于我只是想测量快照性能,因此表数据在测试期间不会改变
看起来增量快照比常规快照慢一个数量级。例如,在我的测试中,我观察到使用普通快照的速度为每秒 10,000 个更改事件。然而,我观察到增量快照的速度为每秒 500 个更改事件。
我尝试将其增加到incremental.snapshot.chunk.size10,000,但我没有看到对性能有太大影响。
我只是想确认这是否是已知/预期的问题,还是我做错了什么?
谢谢
我们的源表中添加了两个新列,而表中仍然启用了CDC.我需要新列出现在CDC表中,但不知道应该遵循什么程序来执行此操作?我已经在表上禁用了CDC,在数据库上禁用了CDC,将新列添加到cdc.captured_columns表,并启用了CDC.但现在我在CDC表中没有数据!
在将列添加到源表后,是否还有其他CDC表必须更新?这些是System Tables文件夹下的所有CDC表:
sql-server ×6
sql ×3
cdc ×2
debezium ×2
postgresql ×2
apache-kafka ×1
audit-trail ×1
database ×1
logging ×1
oracle ×1