SQL Server检测到基于逻辑一致性的I / O错误.torn页面在读取页面期间发生

时间:2017-03-28 14:57:00

标签: sql sql-server database

运行以下查询时出现基础错误。你能帮忙吗?

我的查询:

insert into MyDatabaseName.dbo.BoxContents (BoxContentID, Deleted, CreatedBy, CreatedDate, ModifiedBy, ModifiedDate, AuthCode, BoxID, ItemID, VariantAID, VariantBID, VariantCID, SerialNo, LotNo, Amount, Amount2, Amount3, SpecialCode, IntCode, Transferred, TransferDate, Locked, LockedBy, InOut)
select BoxContentID, Deleted, CreatedBy, CreatedDate, ModifiedBy, ModifiedDate, AuthCode, BoxID, ItemID, VariantAID, VariantBID, VariantCID, SerialNo, LotNo, Amount, Amount2, Amount3, SpecialCode, IntCode, Transferred, TransferDate, Locked, LockedBy, InOut
from MyDatabaseName2.dbo.BoxContents
where not BoxContentID in (
        select BoxContentID
        from MyDatabaseName.dbo.BoxContents
        where CreatedDate > dateadd(day, - 19, GETDATE())
        )
    and CreatedDate > dateadd(day, - 19, GETDATE())

错误消息:

  

SQL Server检测到基于逻辑一致性的I / O错误:撕裂页面在数据库ID 9中的页面读取(1:15856129)期间,在文件' H:\ KLON_DATA **中的偏移量0x00001e3e402000处发生数据库名称.mdf'。 SQL Server错误日志或系统事件日志中的其他消息可能提供更多详细信息。这是严重错误情况,威胁数据库完整性,必须立即纠正。完成完整的数据库一致性检查(DBCC CHECKDB)。这个错误可能是由许多因素造成的;有关详细信息,请参阅SQL Server联机丛书。

2 个答案:

答案 0 :(得分:1)

您应该对目标数据库运行DBCC checkdb命令。该错误表示数据库文件中可能存在页面损坏问题。运行命令应该告诉你什么是腐败的。你可能会很幸运,它只是一个可以删除和重新创建的索引。

请参阅此MSDB article了解语法

答案 1 :(得分:0)

您的硬盘可能存在一些问题,或者由于您的硬盘存在一些意外问题,这可能是一次性错误。

您可以采取的几个步骤

1.run ChkDsk看看,如果你的硬盘状况良好

2.如建议的那样,运行Dbcc checkDB以查看错误是什么

DBCC CHECKDB (yourdbname)

根据建议的错误和修复选项,您可以采取后续步骤。这是一个很好的链接开始

https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checkdb-transact-sql

了解有关checkDB的更多信息,请参阅以下链接

Paul Randal的

checkdb from every angle