无语,遭遇: Error: 605, Severity: 21, State: 3

最近遇到一个严重错误

Error: 605, Severity: 21, State: 3.
Attempt to fetch logical page (1:xxxxx) in database 2 failed. It belongs to allocation unit xxxxxnot to xxxxx


.严重级别 21, 看起来非常吓人,根据联机帮助对该错误的描述说明

http://technet.microsoft.com/zh-cn/library/aa337419.aspx

此错误通常表示指定数据库中的页或分配已损坏。 SQL Server 在访问页链接或使用索引分配映射 (IAM) 读取属于某个表的页时,检测到此损坏。分配给某个表的所有页必须属于与该表相关联的分配单元中的一个。如果页眉中包含的分配单元 ID 与该表相关联的分配单元 ID 不匹配,将引发此异常。 错误消息中列出的第一个分配单元 ID 是页眉中显示的 ID,而第二个分配单元值则是与表相关联的 ID

数据损坏错误

严重级别为 21 表示可能存在数据损坏。 可能的原因包括损坏的页链、损坏的 IAM 或该对象的 sys.objects目录视图中存在无效条目。 这些错误通常由硬件或磁盘设备驱动程序故障而引起。

-----------------------------------------------------------------------------------

郁闷的是,服务器的工作看起来是好的,虽然出错的时候连续了一堆,但是受影响的程序似乎就只有一个,而且遍寻系统也没有发现其他异常。

一边申请IT的同胞深入检查硬件,另一边遍寻该错误相关的信息

由于故障只出在tempdb(错误信息中有 in database 2),然后发现了这个

http://support.microsoft.com/kb/960770/zh-cn

文章编号:960770 - 最后修改: 2009123 - 修订: 2.1

这篇文章中的信息适用于:

  • Microsoft SQL Server 2008Standard

  • Microsoft SQL Server 2008Developer

  • Microsoft SQL Server 2008Enterprise

  • Microsoft SQL Server 2008Workgroup

  • Microsoft SQL Server 2008Web

     

我用的是 SQL 2008 R2, 这个文章也很古老了,怎么想也觉得这个问题应该已经修复了,但最终的结果令我很郁闷,按照这个文章中提到的,将临时表的定义改掉后,问题不再出现。

(简单测试了一下,这个问题无法简单重现,所以也不好确定其他版本是否存在)





### nvinfer1::ILogger::Severity 的定义与用法 #### 定义 `nvinfer1::ILogger::Severity` 是 TensorRT 中的日志记录系统的一部分,用于表示不同级别的日志消息严重性。该枚举类型定义了几种不同的严重性级别,这些级别可以帮助开发者更好地理解和调试应用程序中的问题[^1]。 ```cpp namespace nvinfer1 { namespace ILogger { enum class Severity { kINTERNAL_ERROR, // 内部错误 kERROR, // 错误 kWARNING, // 警告 kINFO, // 信息 kDEBUG // 调试 }; } } ``` #### 使用方法 为了使用 `nvinfer1::ILogger::Severity`,通常需要实现自定义的日志记录器类来处理不同类型的消息。下面是一个简单的例子: ```cpp #include "NvInfer.h" class MyLogger : public nvinfer1::ILogger { public: void log(Severity severity, const char* msg) override { switch (severity) { case Severity::kINTERNAL_ERROR: std::cerr << "[Internal Error]: " << msg << "\n"; break; case Severity::kERROR: std::cerr << "[Error]: " << msg << "\n"; break; case Severity::kWARNING: std::cout << "[Warning]: " << msg << "\n"; break; case Severity::kINFO: std::cout << "[Info]: " << msg << "\n"; break; case Severity::kDEBUG: std::cout << "[Debug]: " << msg << "\n"; break; } } }; ``` 在这个例子中,通过重写 `log()` 函数可以控制如何显示每一种类型的日志信息。当构建 TensorRT 引擎实例时,可以通过设置 logger 参数传递给 builder 来启用此功能。 ```cpp MyLogger logger; auto builder = nvinfer1::createInferBuilder(logger); ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值