我们的一台装有 WSUS 的 Windows 2003 服务器的硬盘空间已满。搜索文件时,我发现这个 SQLDump10000.txt 文件大小超过 25GB。我在 Google 上搜索了一下,结果显示这是读写错误加上查询或内存中的内容。有人能直接解释一下这是怎么回事吗?
答案1
这些转储文件是在两种情况下创建的:
- 发生 SQL Server“崩溃” - 可能是 A/V、断言或其他一些未捕获的代码错误。在这种情况下,文件是内存转储,其大小和内容取决于发生的问题。
- 您已注册 Watson 错误报告,DBCC CHECKDB 发现数据库中存在损坏。在这种情况下,内容是发现的损坏列表以及从内存中转储损坏的磁盘页面
您能否查看 SQL 错误日志来查找出现错误的迹象,并且错误日志中的时间戳与转储文件的创建时间大致相同?
至于您的事务日志已满 - 我会将转储文件复制到其他地方,因为这听起来会弄乱您的日志管理。不要做任何删除日志文件之类的事情,否则肯定会造成损坏。
希望这可以帮助
答案2
最简单的答案就是阅读文件。这是一个文本文件,不是二进制文件,所以你应该能够通过在 Wordpad 中打开它来了解它是什么(记事本无法打开这么大的文件)。
更可能的是,它是数据库中所有数据的完整转储,包含在一个大型 SQL 查询中。它之所以这么大,是因为它采用的是文本格式,根本不使用任何压缩。
当然,真正的问题出现在尝试打开 25 Gig 文本文件时...我非常怀疑您的机器是否有足够的内存。我不知道是否有 Windows 版本的 head 或 tail,但在这种情况下它们会非常有用。