Par*_*ram 12 sql-server-2008 sql-server corruption
我SqlException
在调用存储过程时得到以下信息:
尝试在数据库 2 中获取逻辑页 (5:65424) 失败。它属于分配单元 7349876362857938944 不属于 4899918190390149120。
System.Data.SqlClient.SqlException发生
Message="Attempt to fetch logical page (5:65424) in database 2 failed. 它属于分配单元 7349876362857938944 不属于 4899918190390149120。Source=".Net SqlClient Data Provider"
ErrorCode=-2146232060
Class=21
LineNumber=257
Number=605
Procedure="ispDisplayCount"
Server="10.10.1.1"
State=3
这个异常是什么意思?以上问题有解决办法吗?
尽管上述错误中引用的数据库表示 tempdb,但引用消息 605 的类似错误可以使用以下答案进行修复。
消息 605,级别 21,状态 3,第 1 行
尝试获取数据库 7 中的逻辑页 (1:8687634) 失败。它属于分配单元 72057594364821504 不属于 72057594052476928。
Mat*_*t M 12
如果错误消息指示的数据库 ID 为2
,则受影响的数据库为 tempdb。修复 tempdb 中此类损坏的一种方法是简单地重新启动 SQL Server 实例。对于 2 以外的数据库 ID,请遵循以下建议。
您可能需要从备份中恢复,但是试试这个:
作为 sysadmin 角色的成员,执行DBCC PAGE (2, 5, 65424, 3);
并查找Metadata: IndexId
值。
0
(堆)或1
(聚集索引),则需要从备份中恢复。0
或1
,则可以重建非聚集索引。运行 DBCC 命令,让我们知道您发现了什么。检查https://www.mssqltips.com/sqlservertip/1578/using-dbcc-page-to-examine-sql-server-table-and-index-data/有关DBCC PAGE
命令的详细信息
该错误表明您的数据库已损坏。好消息是数据库 ID 2 表明这是 tempdb 数据库,因此修复它很容易 - 只需重新启动数据库实例。
重新启动实例后,您应该弄清楚损坏发生的原因。首先chkdsk
在问题文件所在的驱动器上运行。接下来,您需要查看存储本身,看看那里是否有任何问题。可能是物理磁盘问题,可能是 HBA 或 RAID 卡驱动程序等。
归档时间: |
|
查看次数: |
35163 次 |
最近记录: |