【问题标题】:Function sys.fn_cdc_get_max_lsn() returns null函数 sys.fn_cdc_get_max_lsn() 返回 null
【发布时间】:2016-11-25 13:21:39
【问题描述】:

我正在尝试使用 cdc,我正在按照这些步骤操作。

  1. EXEC sys.sp_cdc_enable_db -- 启用数据库
  2. EXEC sys.sp_cdc_enable_table @source_schema = N'DW', @source_name = N'APIprocess', @role_name = NULL, @supports_net_changes = 0--启用表格
  3. 在引用表中插入和更新

  4. DECLARE @Begin_LSN BINARY(10), @End_LSN BINARY(10) SET @Begin_LSN =sys.fn_cdc_get_min_lsn('DW_APIprocess') SET @End_LSN = sys.fn_cdc_get_max_lsn() SELECT @Begin_LSN, @End_LSN, N'all'; SELECT * FROM cdc.fn_cdc_get_all_changes_DW_APIprocess( @Begin_LSN , @End_LSN , 'all') -- 尝试获取更改

当我执行第四步时抛出这个错误:

为过程或函数 cdc.fn_cdc_get_all_changes_ 提供的参数数量不足

然后我搜索了一个答案,我找到了一些答案,但没有产生任何问题,因为函数 sys.fn_cdc_get_max_lsn() 返回 null,这就是我的问题。 总之,我需要知道为什么该函数返回 null 而不是二进制文件。 谢谢。

【问题讨论】:

    标签: sql-server change-data-capture


    【解决方案1】:

    问题是我没有激活Sql server Agent的服务,激活后CDC开始跟踪对表的操作。

    【讨论】:

    • 谢谢! CDC 中的错误消息真的可以更好。但就是这样!
    • 就我而言,数据库位于 CentOS Server 中。没有 SQLServerAgent。只是 SQLServer.service 正在运行。在这方面有什么帮助吗?
    猜你喜欢
    • 1970-01-01
    • 2021-03-31
    • 2016-01-30
    • 2021-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多