Функция sys.fn_cdc_get_max_lsn() возвращает ноль
Я пытаюсь использовать CDC, и я следовал за этими шагами.
EXEC sys.sp_cdc_enable_db
- Включить БДEXEC sys.sp_cdc_enable_table @source_schema = N'DW', @source_name = N'APIprocess', @role_name = NULL, @supports_net_changes = 0
- Включаемый столВставьте и обновите в указанной таблице
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')
- Попробуй получить изменения
И когда я выполняю 4-й шаг, выдают эту ошибку:
Недостаточное количество аргументов было предоставлено для процедуры или функции cdc.fn_cdc_get_all_changes_
Затем я искал ответ и нашел некоторые ответы, но ни в одном из них проблема не возникла, потому что функция sys.fn_cdc_get_max_lsn() возвращает ноль, и в этом моя проблема. В итоге мне нужно знать, почему эта функция возвращает ноль вместо двоичного файла. Благодарю.
1 ответ
Проблема заключалась в том, что у меня не было активной службы агента сервера Sql, после чего я активировал, CDC начал отслеживать операции на столе.