问题标签 [dbcc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3402 浏览

sql-server - 帮助解释与 Torn Pages 相关的 DBCC CHECKDB 输出

我被要求查看一个报告“破损页面”错误的 SQL 2005 数据库。

我可以查找 MsgID 等,但我只需要一些指针来从更一般的意义上解释 DBCC CHECKDB 输出。

在此示例中:

...显然错误与任何单个对象无关(请注意 ObjectID 和 IndexID 没有正确的值)。这到底是什么意思?如果它不是单个对象,那么它是什么?

在此示例中:

...它是指包含数据的页面,还是包含索引的页面?它提到了行外数据,但也给出了索引 ID。索引 ID 值 0 和 1 表示什么?

顺便说一句,这是为了帮助慈善机构,因此非常感谢任何帮助。谢谢。

PS:我还没到现场,只是查看他们发给我的dbcc日志,所以我还不能做任何修补。

编辑:它的 SQL 2005 v 9.0.3042

编辑:假设您知道,恢复备份可能不是一种选择,因为损坏的页面已经在数据库中保存了几个月,因为第三方在服务器切换后没有将维护计划放回原处,或者一些这样的场景。因此假设调查错误并尝试修复它们或隔离它们是唯一的行动方案。

0 投票
1 回答
1297 浏览

sql-server - SQL 2000 中的 ODBC 问题 --> 2005 升级

这篇 wiki 帖子概述了一个问题和一个解决方案。我想为可能遇到类似问题的其他人发布此内容,因为我在其他地方找不到专门解决此问题的任何内容。

我们最近将 SQL Server 2000 数据库升级到 SQL Server 2005。服务器上的一个数据库是 MS Access 数据库的后端。MS Access 数据库使用直通查询,通过无 DSN 的 ODBC 连接到 SQL Server。

无 DSN 连接字符串的示例如下所示:

升级后,我们发现用户无法运行直通查询,并显示以下错误:

ODBC - 连接到“SQL Server”失败

这最初似乎是一个权限问题,因为将 SQL 服务器登录的特权提升到 sysadmin 服务器角色可以缓解问题(但显然这不是一个很好的解决方案)。

在将登录名从 sysadmin 角色中取回后,我们发现通过 Management Studio 连接到 SQL Server 时,登录名可以执行存储过程。无法从 MS Access 中进行相同的登录。这表明 MS Access 在尝试执行存储过程时正在做的事情——而不是权限问题。

我们使用 Profiler 在服务器上运行跟踪,这表明 MS Access 在存储过程执行之前尝试执行以下命令:

在执行存储过程之前,该命令似乎失败了。网络研究表明 DBCC TRACEON(208) 相当于使用 'SET QUOTED IDENTIFIERS ON' 命令,并且在 SQL 2005 中运行此 DBCC 命令的权限已被撤销。

经过进一步研究,我们发现对 MS Query 的引用存在类似问题,并且连接字符串的 APP 组件应从“MS Query”更改为其他内容。

凭直觉,我们更改了 ODBC 连接字符串的 APP 组件,并且 MS Access 不再尝试在执行存储过程之前执行 DBCC TRACEON(208)。

经过进一步测试,我们将问题追溯到 APP 组件中包含的“版权”符号:

通过删除版权符号,连接一切正常,应用程序像以前在 SQL 2000 上一样工作。

希望这可以帮助其他有类似问题的人。

0 投票
2 回答
823 浏览

sql - 做了 DBCC CHECKDB

帮助被这个粉碎

我做了 DBCC CHECKDB,其中一个 DB 给出了 Msg 823,Level 24,State 2,Line 2 I/O error 21(设备未准备好。)在文件'E:\MSSQL2000\Data\ 中的偏移量 0x0000000001c000 处读取期间检测到FTSWE_Data.MDF'。

我正在远程服务器上工作,从我的本地主机访问远程数据库。

我也在VPN上。

0 投票
1 回答
1656 浏览

sql - 如何在不插入值的情况下增加标识列?

首先,我知道这个问题没有得到回答,因为 OP 真正想做的不是增加身份列


我有一个当前种子值为 x 的标识列,我想将其重新设置为 x+1(即我希望我的标识列直接从 x 跳转到 x+2。

我知道我可以使用以下命令来做到这一点

但是,我有几个问题:

  • 这里的隔离级别“可序列化”是否足够?
  • 如果我使用 SQL Server 镜像,这会导致问题吗
  • 还有其他我应该注意的陷阱吗?
0 投票
1 回答
3715 浏览

c# - 从 ADO.Net 执行 DBCC 命令

我正在尝试使用 ADO.Net 执行 DBCC CHECK DB('MyDB),但是如何获取命令返回的文本?

我尝试了以下方法:

但输出参数值为空。

0 投票
1 回答
1868 浏览

sql - 可以使用 DBCC INPUTBUFFER 完全捕获参数化查询吗?

在 SQL Server 2008 中,我使用触发器来捕获对数据库中特定表所做的所有更改。我的目标是捕捉整个变化。也就是说,要捕获正在插入的数据,而不仅仅是正在插入的数据。在触发器中,我使用 DBCC INPUTBUFFER 返回的结果集的 EventInfo 列来获取当前正在执行的 SQL 语句,并使用 Parameters 列来获取使用的参数的计数。这在大多数情况下都有效,但是当外部应用程序使用 ADO.NET 执行查询,或使用编辑 SSMS 中的前 200 行插入/删除行时,EventInfo 没有参数值。

例如,如果在查询窗口中执行字符串查询或在 ADO.NET 中作为非参数化字符串查询,EventInfo 将显示:

在 ADO.NET 中使用 Edit Top 200 Rows 或参数化查询插入相同的数据时,EventInfo 显示(为便于阅读而添加了换行符):

无论如何可以在我的触发器的上下文中访问参数值吗?

0 投票
1 回答
187 浏览

sql - DBCC SQL Server 2000 系统索引键

我有一个 SQL Server 2000 数据库。当我运行以下命令时

从 sysindexkeys 中选择 *

这将显示相​​应的记录。

然后我为 sysindexkeys 执行 DBCC 命令。它不显示任何内容。奇怪的是没有页面有 sysindexkeys 记录。然后查询如何显示记录列表。

0 投票
1 回答
135 浏览

sql-server - 是否有可用作 DBCC 向导的应用程序?

DBCC(DB 一致性检查)命令是强大的工具,但它们没有图形用户界面。现在有没有像 DBCC 向导一样工作的应用程序?

0 投票
5 回答
11730 浏览

sql-server - DBCC 收缩文件给出错误

我正在尝试使用 缩小我的日志文件DBCC SHRINKFILE(db_2.ldf),这是日志文件的名称

每次都给我错误:

8985,级别 16,状态 1,第 1 行在 sys.database_files 中找不到数据库 db 的文件 'FIelD'。该文件不存在或已被删除。

您能否建议我可以做些什么来解决它。

0 投票
1 回答
233 浏览

sql-server - 我需要运行哪些 DBCC 命令来确保 SQL Server 的缓存完全干净?

我想做一些 SQL Server 性能测试,我想建立一个好的基线。我想每次都刷新所有缓存,这样我就知道在每次测试之间它没有缓存一些东西,所以它在两次运行之间表现得更好。我应该使用哪些 DBCC 命令来使我的 SQL 服务器尽可能干净?