主动产生 DBCC CheckDb 错误

Joh*_*hnG 5 dbcc-checkdb

有人知道如何让 DBCC CheckDB 产生错误吗?我正在测试一个脚本,需要 DBCC Checkdb 以最简单的模式返回错误,同时尝试修复和尝试进入单用户模式......

我使用的简单 dbcc checkdb 命令是批处理文件的一部分,如下所示:

OSQL -S MYPC -E -d MyDB -l 10 -Q "DBCC CHECKDB(AG_DB_STORESQL)" -b -o c:\MyFolder\MSSQL_DB_CHECK.Log
Run Code Online (Sandbox Code Playgroud)

如果没有发现错误,脚本结束。如果发现错误,脚本会尝试使用 REPAIR_REBUILD 选项修复它们,如果失败,脚本会尝试使用 REPAIR_ALLOW_DATA_LOSS 选项修复它们。显然,在尝试修复之前,脚本尝试将数据库置于单用户模式(这也是错误捕获的)

所以我正在寻找一种导致 DBCC CheckDB 返回错误的方法。

Kin*_*hah 5

有人知道如何让 DBCC CheckDB 产生错误吗?

在测试(非生产)完全沙箱环境中使用致命的。 dbcc writepage ({'dbname' | dbid}, fileid, pageid, offset, length, data [, directORbufferpool])

DBCC WRITEPAGE 的目的是:

  • 允许 SQL Server 团队对 DBCC CHECKDB 进行自动测试和修复。
  • 为演示和测试设计损坏。
  • 通过手动编辑实时、损坏的数据库来实现最后的灾难恢复。

除了“大师” Paul Randal之外,@SteveStedman还有一系列很好的数据库损坏挑战(带有解决方案 - 但稍后在您尝试自己解决它时参考它)。