代码之家  ›  专栏  ›  技术社区  ›  ulty4life

SQL Server 2008 CDC无响应&表丢失后卡住

  •  1
  • ulty4life  · 技术社区  · 14 年前

    我在一个表上测试SQL Server 2008更改数据捕获功能时,它卡住了。

    • 在对表执行各种DDL更改以测试CDC如何响应之后,我删除了表。
    • 在我之前的测试中,删除表还会导致CDC删除CT表,以及与删除表相关的任何元数据。
    • 最后一个DROP语句似乎从未被CDC检测到,因为CT表仍然存在,并且CDC CuxeEx表中存在一个记录。
    • 我试图为数据库禁用CDC,但在停止之前,命令运行了1小时而没有响应。
    • 尝试禁用数据库的CDC时,SQL Server代理的作业列表在management studio中变得无响应(锁定请求超时)。取消disable CDC命令后,代理仍然没有响应。
    • 我尝试重新启动代理服务。它成功地停止了,但在(看起来是最后阶段的)启动过程中挂了起来。服务现在卡在“启动”状态。

    我正在重新启动服务器以尝试使代理再次运行。

    有没有人在疾病控制中心遇到过类似的问题,表明系统不稳定?

    编辑:再次运行代理后,我尝试手动删除change_tables记录和CT表,但是当我尝试启用该表时,出现了一系列与CDC元数据相关的错误。但是,我成功地禁用了整个数据库的CDC,然后重新启用它。当然,这会删除所有与CDC特性相关的资源。

    2 回复  |  直到 14 年前
        1
  •  2
  •   ulty4life    13 年前

    在让代理再次运行(服务器重新启动)之后,我尝试手动删除change_tables记录和CT表,但是当我尝试启用该表时,出现了一系列与CDC元数据相关的错误。但是,我成功地禁用了整个数据库的CDC,然后重新启用它。当然,这会删除所有与CDC特性相关的资源。

    我的结论是,是的,你真的不应该手动搅乱任何疾控中心的资源。

        2
  •  1
  •   khr055 Eduardo    12 年前

    我发现想逃跑 EXEC sys.sp_cdc_disable_db 在不属于sa的数据库中失败。

    (我仍然看到疾病控制中心的表格 select db_name() as dbname , p.rows,* from sys.objects o join sys.partitions p on o.object_id=p.object_id where o.schema_id=schema_id('cdc') and p.index_id < 2 )

    Sys.sp_cdc_disable_db exec sp_changedbowner 'sa'