在新的 Azure 文件共享上存储 SQL Server 数据库文件。无法针对这些数据库运行完整/全面的 CHECKDB - 我认为这与无权创建快照的用户帐户有关。结果,我将这些检查卸载到了另一个服务器,我也可以在该服务器上测试 .baks。一切正常,除了主数据库,当您将其还原为用户数据库并针对它运行 CHECKDB(https://www.itprotoday.com/my-master-database-really-corrupt)时,它会注册损坏,即使它是不腐败。
问题:
1) 是否有人在 Azure 文件共享上存储的 SQL db 文件上运行 CHECKDB 时遇到同样的问题?有解决方法吗?
2) 如果我不能在 PROD 中运行 CHECKDB,那么在 master 上运行 CHECKDB 的替代方法是什么?我可以以某种方式将 master 恢复到另一个 SQL 实例并在那里检查吗?
在 PROD 中执行 DBCC CHECKDB (master) 时出错:
消息 5030,级别 16,状态 12,第 4 行 无法以独占方式锁定数据库以执行操作。消息 7926,级别 16,状态 1,第 4 行检查语句中止。无法检查数据库,因为无法创建数据库快照并且无法锁定数据库或表。请参阅联机丛书以了解有关何时会出现此行为以及存在哪些变通方法的详细信息。另请参阅以前的错误以获取更多详细信息。
当我在 PROD 中的用户 db 上运行 DBCC CHECKDB 时的消息:
DBCC CHECKDB 不会检查 SQL Server 目录或 Service Broker 的一致性,因为无法创建数据库快照或指定了 WITH TABLOCK。