有谁知道如何让 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
如果没有发现错误,脚本结束。如果发现错误,脚本会尝试使用 REPAIR_REBUILD 选项修复它们,如果失败,脚本会尝试使用 REPAIR_ALLOW_DATA_LOSS 选项修复它们。显然,在尝试修复脚本之前尝试将数据库置于单用户模式(这也是错误陷阱)
所以我正在寻找的是一种导致 DBCC CheckDB 返回错误的方法。
方便的腐败演示脚本已由Paul Randal创建。这些真的很好,会对你有很大帮助。请浏览以下链接
腐败演示数据库和脚本
使用 DAC 连接修复损坏的系统表
各种 SQL Server 数据库损坏场景
使用致命
dbcc writepage ({'dbname' | dbid}, fileid, pageid, offset, length, data [, directORbufferpool])
的ON a TEST (NON-PROD) 完全沙盒环境。除了“The Guru” Paul Randal之外,@SteveStedman还提供了一系列很好的数据库损坏挑战(有解决方案 - 但一旦您尝试自己解决它,请稍后参考)。
您可以为此创建一个存储产品:
然后将您的命令行更新为