是否可以在不使用SQL代理的情况下运行Change Data Capture?

时间:2017-06-07 18:49:17

标签: sql sql-server sql-server-2014 change-data-capture

由于我无法更改的原因,有一个公司范围的策略阻止SQL Server上的SQL代理作业。我们有一个使用CDC的应用程序,我们希望使用此功能。

DBA建议使用经批准用于计划作业的企业计划应用程序。这看起来非常简单,因为看起来实际上只有3个步骤可以让CDC运行。唯一的另一个变量是调度作业的服务帐户没有对我们的sql服务器的dbo或sys admin访问权限。解决方法是我使用execute as OWNER执行CDC步骤。我遇到的是sys.sp_mscdc_capture_job过程似乎只是运行并且永远不会完成。

我检查了sys.dm_cdc_log_scan_sessions视图,看到2行 -

session_id start_time end_time duration scan_phase error_count start_lsn current_lsn end_lsn tran_count last_commit_lsn last_commit_time log_record_count schema_change_count command_count first_begin_cdc_lsn last_commit_cdc_lsn last_commit_cdc_time latency empty_scan_count failed_sessions_count

0 1900-01-01 00:00:00.000 1900-01-01 00:00:00.000 0汇总0 00000000:00000000:0000 00000000:00000000:0000 00000000:00000000:0000 0 00000000:00000000:0000 1900- 01-01 00:00:00.000 0 0 0 00000000:00000000:0000 00000000:00000000:0000 1900-01-01 00:00:00.000 0 0 0

1 2017-06-06 18:22:27.660 2017-06-07 13:45:50.943 2完成1 00000000:00000000:0000 00000000:00000000:0000 00000000:00000000:0000 0 00000000:00000000:0000 1900- 01-01 00:00:00.000 0 0 0 00000000:00000000:0000 00000000:00000000:0000 1900-01-01 00:00:00.000 0 2443 0   - 列出项目

我在CDC表中看不到任何数据。这里有什么我想念的吗?这是捕获作业sql:

    create procedure CDCWrappedExecute with Execute as OWNER
    as 
    RAISERROR(22801, 10, -1)
    exec sys.sp_MScdc_capture_job

0 个答案:

没有答案