使用副本数据库,而不是使用启用了CDC的数据库



我知道您不能在MS SQL DB上启用CDC当同时启用数据库副本时,因为副本会覆盖CDC捕获作业并将其禁用,但我正试图使用CDC控制任务在SSIS包中使用CDC功能,我可以将副本用作我的CDC源吗

***请注意,由于性能原因,我将无法使用更改跟踪功能

如果使用SQL Server 2016,则可以使用时态表。SQL Server 2016引入了对时态表(也称为系统版本的时态表(的支持,作为一种数据库功能,它提供了内置的支持,可以在任何时间点提供存储在表中的数据信息,而不仅仅是当前时刻正确的数据。时态是ANSI SQL 2011中引入的数据库功能。类似:

CREATE TABLE dbo.Employee
(
[EmployeeID] int NOT NULL PRIMARY KEY CLUSTERED
, [Name] nvarchar(100) NOT NULL
, [Position] varchar(100) NOT NULL
, [Department] varchar(100) NOT NULL
, [Address] nvarchar(1024) NOT NULL
, [AnnualSalary] decimal (10,2) NOT NULL
, [ValidFrom] datetime2 GENERATED ALWAYS AS ROW START
, [ValidTo] datetime2 GENERATED ALWAYS AS ROW END
, PERIOD FOR SYSTEM_TIME (ValidFrom, ValidTo)
)
WITH (SYSTEM_VERSIONING = ON (HISTORY_TABLE = dbo.EmployeeHistory));

它能很好地保存DELETE/INSERT/Update语句的历史

参考:MICROSOFT文档-单击此处

有关复制、更改跟踪和;更改数据捕获在此处查找

最新更新