关于sql2008的change Data Capture

Davily 2011-01-13 05:11:01
现在想在一台服务器上的一个表使用该功能,用来捕获对表数据的变化....现有一个问题比较困惑...因为该功能会自动把每次的变更记录在一个*_CT的表中.随着该表的越来越大,那我如何清理这个表哦....
如:我想每天定时清理一个月之前的变更记录...
sql agent 有一个自动清理的JOB,不知是干什么用的....好象用处不大...
高有用过这个功能的高手指教下,跪谢了

...全文
76 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
一品梅 2011-01-14
  • 打赏
  • 举报
回复
楼上的不错,但是如果你想针对性的删除东西,还是自己编写脚本存储过程,以及开启sql agent服务,定时执行作业任务吧
cjzm83 2011-01-14
  • 打赏
  • 举报
回复
[Quote=引用楼主 davily 的回复:]
现在想在一台服务器上的一个表使用该功能,用来捕获对表数据的变化....现有一个问题比较困惑...因为该功能会自动把每次的变更记录在一个*_CT的表中.随着该表的越来越大,那我如何清理这个表哦....
如:我想每天定时清理一个月之前的变更记录...
sql agent 有一个自动清理的JOB,不知是干什么用的....好象用处不大...
高有用过这个功能的高手指教下,跪谢了
[/Quote]
自动清理的JOB 如:cdc.databaseName_cleanup,
这个job执行的是存储过程sys.sp_cdc_cleanup_change_table
默认是删除是超过3天的数据。

每天定时清理一个月之前的可这样:


--找到30天之前的lsn
declare @start_lsn binary(10)
select @start_lsn = start_lsn from cdc.lsn_time_mapping where DATEDIFF(DD,tran_begin_time,GETDATE()) = 30

--删除lsn之前的所有记录
exec sys.sp_cdc_cleanup_change_table 'capture_instance',@start_lsn

sys.sp_cdc_cleanup_change_table http://technet.microsoft.com/en-us/library/bb510449.aspx
coleling 2011-01-13
  • 打赏
  • 举报
回复
只要将"自动清理"选项打开,SQL Server会自动生成清除数据的JOB,并定时运行。

楼主的历史数据没有清掉,可能有关设置有误,方便的话,我给你远程协助。
「已注销」 2011-01-13
  • 打赏
  • 举报
回复
学习。。我也正在用mssql2008
叶子 2011-01-13
  • 打赏
  • 举报
回复
写个存储过程(完成你要做的事情),然后用job定时执行。
dawugui 2011-01-13
  • 打赏
  • 举报
回复
JOB是个作业,你可以打开看看.

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧