SQLServer 错误 605 尝试在数据库 %d 中提取逻辑页 %S_PGID 失败。 该逻辑页属于分配单元 %I64d,而非 %I64d。 故障 处理 修复 支持远程
尝试在数据库 %d 中提取逻辑页 %S_PGID 失败。 该逻辑页属于分配单元 %I64d,而非 %I64d。
此错误通常表示指定数据库中的页或分配已损坏。 SQL Server 会在根据页链接或使用索引分配映射 (IAM) 读取属于表的页时,检测到此损坏。 分配给表的所有页必须属于与该表相关联的分配单元之一。 如果页眉中包含的分配单元 ID 不匹配与表相关联的分配单元 ID,将引发此异常。 错误消息中列出的第一个分配单元 ID 是页眉中显示的 ID,而第二个分配单元值则是与表相关联的 ID。
数据损坏错误
严重级别为 21 表示可能存在数据损坏。 可能的原因包括损坏的页链、损坏的 IAM 或该对象的 sys.objects 目录视图中存在无效条目。 这些错误通常由硬件或磁盘设备驱动程序故障而引起。
暂时性错误
严重级别为 12 表示可能存在暂时性错误,即在缓存中出现错误,但不表示对磁盘上的数据造成破坏。 暂时性的 605 错误可由以下条件引发:
操作系统过早地通知 SQL Server 已完成某个 I/O 操作;尽管不存在实际的数据损坏,但显示错误消息。
运行带有优化器提示 NOLOCK 的查询,或将事务隔离级别设置为 READ UNCOMMITTED。 当使用 NOLOCK 或 READ UNCOMMITTED 事务隔离级别的查询尝试读取被其他用户移走或更改的数据时,将发生 605 错误。 若要验证是否为暂时性的 605 错误,请稍后重新运行该查询。
通常,如果在数据访问期间发生该错误,但后续的 DBCC CHECKDB 操作在没有出错的情况下完成,则 605 错误可能是暂时的。
如果 605 错误不是暂时性的,则说明问题很严重,必须运行以下任务来纠正该问题:
运行以下查询,确定与消息中指定的分配单元相关联的表。 用错误消息中说明的分配单元替换 allocation_unit_id。
USE [database_name]; SELECT au.allocation_unit_id, OBJECT_NAME(p.object_id) AS table_name, fg.name AS filegroup_name, au.type_desc AS allocation_type, au.data_pages, partition_number FROM sys.allocation_units AS au JOIN sys.partitions AS p ON au.container_id = p.partition_id JOIN sys.filegroups AS fg ON fg.data_space_id = au.data_space_id WHERE au.allocation_unit_id = " allocation_unit_id " OR au.allocation_unit_id = " allocation_unit_id " ORDER BY au.allocation_unit_id;
对与错误消息中说明的第二个分配单元 ID 相关联的表,执行不带 REPAIR 子句的 DBCC CHECKTABLE。
检查错误日志以查找经常随 605 错误一起发生的其他错误,并检查 Windows 事件日志以查找任何与系统或硬件有关的问题。 修复日志中包含的所有与硬件相关的问题。
运行带有 REPAIR 子句的 DBCC CHECKDB(这是步骤 3 中所执行 DBCC CHECKDB 操作推荐的做法),以修复损坏。 如果运行具有 REPAIR 子句的 DBCC CHECKDB 无法解决存在的问题,请与主要支持提供商联系。 提供 DBCC CHECKDB 的输出以供查看。
注意
如果您不确定运行带有 REPAIR 子句的 DBCC CHECKDB 会对数据造成何种影响,请在运行该语句前与您的主要支持提供商联系。
我想要获取技术服务或软件
服务范围:MySQL、ORACLE、SQLSERVER、MongoDB、PostgreSQL 、程序问题
服务方式:远程服务、电话支持、现场服务,沟通指定方式服务
技术标签:数据恢复、安装配置、数据迁移、集群容灾、异常处理、其它问题
本站部分文章参考或来源于网络,如有侵权请联系站长。
数据库远程运维 SQLServer 错误 605 尝试在数据库 %d 中提取逻辑页 %S_PGID 失败。 该逻辑页属于分配单元 %I64d,而非 %I64d。 故障 处理 修复 支持远程
相关文章
- SQLServer 错误 825 在失败 %d 次(错误: %ls)之后,按偏移量 %#016I64x 对文件“%ls”读取成功。 SQL Server 错误日志和系统事件日志中的其他消息中可能有更详细的信息。 此错误情况威胁到数据库的完整性,因此必须予以更正。 请运行一次完整的数据库一致性检查 (DBCC CHECKDB)。 此错误可能是由多种因素导致的;有关详细信息,请参阅 SQL Server 联机丛书。 故障 处理 修复 支持远程
- SQLServer 错误 2537 表错误:对象 ID O_ID,索引 ID I_ID,分区 ID PN_ID,分配单元 ID A_ID(类型为 TYPE),页 P_ID,行 ROW_ID。 记录检查(CHECK_TEXT)失败。 值为 VALUE1 和 VALUE2。 故障 处理 修复 支持远程
- SQLServer 错误 7988 系统表预检查:对象 ID O_ID。 在 P_ID 处检测到数据链中存在循环。 由于不可修复的错误,Check 语句已终止。 故障 处理 修复 支持远程
- SQLServer 错误 17130 没有足够的内存分配给所配置的锁数。 正尝试以较小的锁哈希表启动,但这可能会影响性能。 请与数据库管理员联系,为数据库引擎的这一实例配置更多内存。 故障 处理 修复 支持远程
- SQLServer 错误 41350 警告:在为加密启用的数据库中创建了具有持续性 SCHEMA_AND_DATA 的内存优化表。 不会对内存优化表中的数据加密。 故障 处理 修复 支持远程
- 从SQLServer到MySQL:迁移你的数据库吧(sqlserver转mysql)
- 数据库更改SQLServer数据库:独立掌控你的数据库环境(更改 sqlserver)
- 找出成功之路:SqlServer 指引(找到sqlserver)
- 数据库建立SQLServer数据库:一步一步到达成功(建立sqlserver)
- 从包图提高SqlServer性能(包图sqlserver)
- 如何快速有效地删除SQLServer表(删除sqlserver表)
- 介绍SQLServer:为您的数据库添加一抹明亮的色彩(介绍sqlserver)
- 权衡利弊:什么时候使用SQLServer,什么时候使用C?(sqlserver还是c)
- SQLServer快速行查询实现数据库精准查询(sqlserver行查询)
- 数据库SQLServer:经济又高效的投资(sqlserver花费)
- 索引SQLserver索引聚类技术提升数据库性能(sqlserver聚类)
- 让SQLServer 显露出最终的结果(sqlserver结束符)
- 优化SQLServer数据库提交速度(sqlserver 提交)
- 字符SQLServer实现字符串截取的技巧(sqlserver 截取)
- 借助SQLServer快速搭建数据库(sqlserver 建库)
- 查询在SQLServer中高效查询大表的小技巧(sqlserver 大表)
- 如何正确进行SQLServer数据库备份集的设置(sqlserver备份集)
- 获取SQLServer数据库字段的长度(sqlserver取长度)
- 使用SQLserver算法获取日期的星期信息(sqlserver取星期)
- 借助SQLserver博途拓展企业数据库应用(sqlserver博途)
- “SQL Server 中的空列:避免错误的最佳方式”(sqlserver列为空)