我想使用AWS DMS将本地SQL Server CDC迁移到S3文件。一切正常,但CDC操作时间已达到目标。 我有:
[__$start_lsn]
,[__$end_lsn]
,[__$seqval]
,[__$operation]
将数据列在目标中,但与时序无关。 如何在目标中获得手术时间?
我知道,如果有一种方法可以在目标中返回SQL函数的结果,则可以调用sys.fn_cdc_map_lsn_to_time(x.__$start_lsn)
函数,但不知道如何执行。
本地SQL Server版本为:
Microsoft SQL Server 2014(SP1-CU4)-12.0.4436.0(X64) 企业版:Windows NT 6.1(内部版本7601:Service Pack 1)(管理程序)上的基于内核的许可(64位)
答案 0 :(得分:0)
根据您在评论中对我澄清的问题的回答,我认为这会起作用:
select sys.fn_cdc_map_lsn_to_time(__$start_lsn)
from «some change instance»;
您可以从«some change instance»
系统存储过程中获取sys.sp_cdc_help_change_data_capture
的值。
但是!我猜测您想使用它来跟踪DMS操作的进度。如果是这样,建议您稍微更改一下查询。像这样:
select sys.fn_cdc_map_lsn_to_time(max(__$start_lsn))
from «some change instance»;
也就是说,映射last_lsn的时间而不是所有的时间。好打猎!