LSN là "mẩu" thông tin liên quan đến các thay đổi SQL Server của bạn. Nếu bạn không có LSN, có thể CDC của bạn không chạy hoặc không được định cấu hình đúng cách. Debezium sử dụng LSN để sao chép, do đó, Máy chủ SQL của bạn cần phải tạo điều này.
Một số cách tiếp cận:
- Bạn đã kiểm tra xem bảng của mình đã được bật CDC chưa? Thao tác này sẽ liệt kê các bảng của bạn đã bật CDC:
SELECT s.name AS Schema_Name, tb.name AS Table_Name
, tb.object_id, tb.type, tb.type_desc, tb.is_tracked_by_cdc
FROM sys.tables tb
INNER JOIN sys.schemas s on s.schema_id = tb.schema_id
WHERE tb.is_tracked_by_cdc = 1
- Cơ sở dữ liệu CDC của bạn đã được kích hoạt và hoạt động chưa? (xem tại đây )
Kiểm tra xem đã được bật chưa :
SELECT *
FROM sys.change_tracking_databases
WHERE database_id=DB_ID('MyDatabase')
Và kiểm tra xem có đang chạy không:
EXECUTE sys.sp_cdc_enable_db;
GO
- Dịch vụ CDC của bạn đang chạy trên SQL Server? Xem trong tài liệu
EXEC sys.sp_cdc_start_job;
GO
- Khi bật bảng trong CDC, tôi gặp một số vấn đề với tên vai trò. Đối với trường hợp của tôi, định cấu hình tại
null
đã giải quyết vấn đề của tôi (thêm chi tiết tại đây )
EXEC sys.sp_cdc_enable_table
@source_schema=N'dbo',
@source_name=N'AD6010',
@capture_instance=N'ZZZZ_AD6010',
@role_name = NULL,
@filegroup_name=N'CDC_DATA',
@supports_net_changes=1
GO