2

我的一个生产数据库存在严重问题。

数据库启用了变更数据捕获,性能非常好。上个月我们发生了服务器崩溃,其中几个磁盘受到影响并且数据丢失。然后,我们从磁带中恢复数据库备份,并在新安装的数据库服务器上恢复它们​​。

我现在面临的问题如下:

  • sys.database我的数据库未启用 cdc的状态
  • 数据库包含 cdc 模式、用户、表、sp 和函数
  • 抛出一个错误,sys.sp_cdc_enable_db说明架构和用户“cdc”已经存在,因此它无法创建它们并为 cdc 启用数据库
  • sys.sp_cdc_disable_db不会删除 cdc 剩菜,因为它认为数据库没有为 cdc启用
  • cdc 剩余文件不能手动删除,因为它们都是系统存储过程和函数

所以现在我遇到了一个无法为 cdc 启用的数据库,因为它已经创建了所有 cdc 组件,并且 cdc 不能被禁用,因为它没有在 sys.database 中发出 cdc 已启用的信号。

我的问题有什么解决方案,除了创建一个新数据库并将所有对象(cdc 除外)和数据迁移到 newley 创建的数据库吗?

4

1 回答 1

0

对于仍在寻找这个老问题答案的任何人 - 请尝试此页面上描述的步骤以手动删除 CDC 对象:

https://www.mssqltips.com/sqlservertip/3003/manual-cleanup-change-data-capture-for-a-sql-server-database/

于 2021-01-14T16:13:52.063 回答