最近某项目突然要增加数据的获取,但是不能改程序、也没有同步的只读库,只好使用CDC来进行尝试。
CDC的启用和停止全部用SQL实现,在这里给出主要的SQL步骤:
/****** Script for SelectTopNRows command from SSMS ******/ --------------------------------(1.1)启动数据库CDC USE TestDB GO EXECUTE sys.sp_cdc_enable_db; GO --------------------------------(1.2)有错误15517则执行 ALTER AUTHORIZATION ON DATABASE::[TestDB] TO [sa] ---------------------------------(1.3)查看是否启用数据库CDC SELECT is_cdc_enabled,CASE WHEN is_cdc_enabled=0 THEN 'CDC功能禁用'ELSE 'CDC功能启用'END [描述] FROM sys.databases WHERE [name]='TestDB' -------------------------------- (2.1)启动数据表CDC---- USE TestDB GO EXEC sys.sp_cdc_enable_table @source_schema= 'dbo', @source_name = 'TestTable', @role_name = NULL GO ----------------------------------(2.2)查看数据表CDC是否启用---- SELECT name , is_tracked_by_cdc , CASE WHEN is_tracked_by_cdc = 0 THEN 'CDC功能禁用' ELSE 'CDC功能启用' END 描述 FROM sys.tables WHERE OBJECT_ID= OBJECT_ID('TestTable') ----------------------------------(3)查询数据------ SELECT TOP 1000 * FROM [TestDB].[cdc].[dbo_TestTable_CT];--此表为默认生成 ----------------------------------(4) 关闭表CDC---- USE TestDB go EXECUTE sys.sp_cdc_disable_table @source_schema = 'dbo', @source_name = 'TestTable', @capture_instance = 'dbo_TestTable' go ----------------------------------(5)关闭数据库CDC---- USE TestDB; GO EXECUTE sys.sp_cdc_disable_db; GO
参考文章:
https://docs.microsoft.com/zh-cn/previous-versions/sql/sql-server-2008/bb510702(v=sql.100)
https://blog.csdn.net/yenange/article/details/49636215
https://blog.csdn.net/dba_huangzj/article/details/8130448
https://www.cnblogs.com/lyhabc/p/3383484.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类