SQL Server:偏移量为 0x0000000009c000 的位置执行 读取 期间,操作系统已经向 SQL Server 返回了错误

客户更换服务器后,由于数据没有备份,从原服务器拷出mdf文件,进行附加时发生报错。

问题一:

无法打开物理文件。操作系统错误

解决方案:
将被附加的数据库移入到根目录下,即MSSQL的DATA目录下。

------------------------------
程序位置:

   在 Microsoft.SqlServer.Management.Smo.Server.AttachDatabase(String name, StringCollection files)
   在 Microsoft.SqlServer.Management.SqlManagerUI.AttachDatabaseData.PrimaryFile.Attach()
   在 Microsoft.SqlServer.Management.SqlManagerUI.AttachDatabase.SendDataToServer()

===================================

执行 Transact-SQL 语句或批处理时发生了异常。 (Microsoft.SqlServer.ConnectionInfo)

------------------------------
程序位置:

   在 Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(String sqlCommand, ExecutionTypes executionType)
   在 Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(StringCollection sqlCommands, ExecutionTypes executionType)
   在 Microsoft.SqlServer.Management.Smo.ExecutionManager.ExecuteNonQuery(StringCollection queries)
   在 Microsoft.SqlServer.Management.Smo.Server.AttachDatabaseWorker(String name, StringCollection files, String owner, AttachOptions attachOptions)
   在 Microsoft.SqlServer.Management.Smo.Server.AttachDatabase(String name, StringCollection files)

===================================

无法打开物理文件“D:\xxx\xxx.mdf”。操作系统错误 5:“5(拒绝访问。)”。 (.Net SqlClient Data Provider)

------------------------------
有关帮助信息,请单击: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&ProdVer=12.00.2269&EvtSrc=MSSQLServer&EvtID=5120&LinkId=20476

------------------------------
服务器名称: LAPTOP-8T143G83\ZC
错误号: 5120
严重性: 16
状态: 101
行号: 1


------------------------------
程序位置:

   在 Microsoft.SqlServer.Management.Common.ConnectionManager.ExecuteTSql(ExecuteTSqlAction action, Object execObject, DataSet fillDataSet, Boolean catchException)
   在 Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(String sqlCommand, ExecutionTypes executionType)

问题二

在将文件附加时发生错误,如:偏移量为 0x0000000009c000 的位置执行 读取 期间xx
解决方案:
在sqlserver Management Studio中创建一个同名数据库,将数据库状态设置为紧急

use Master
go
alter database xxxx set emergency --将置疑数据库设为“紧急”,xxxx 是数据库名
go

关闭sqlserver服务,将需要附加的数据库移入替换。启动sqlserver服务

use Master
declare @databasename varchar(255)
set @databasename= 'xxxx' --你的.mdf文件文件名

ALTER DATABASE xxxxx SET SINGLE_USER WITH ROLLBACK IMMEDIATE; --把数据设为单用户模式

dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS)

dbcc checkdb(@databasename,REPAIR_REBUILD)

如果出现系统中不到指定的路径,则需要在创建该路径并在其目录下放入mdf和log.mdf文件,
在这里插入图片描述
解除单用户模式,返回普通模式。


USE master;
GO
ALTER DATABASE xxx
SET MULTI_USER;
GO
程序位置:

   在 Microsoft.SqlServer.Management.Smo.Server.AttachDatabase(String name, StringCollection files)
   在 Microsoft.SqlServer.Management.SqlManagerUI.AttachDatabaseData.PrimaryFile.Attach()
   在 Microsoft.SqlServer.Management.SqlManagerUI.AttachDatabase.SendDataToServer()

===================================

执行 Transact-SQL 语句或批处理时发生了异常。 (Microsoft.SqlServer.ConnectionInfo)

------------------------------
程序位置:

   在 Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(String sqlCommand, ExecutionTypes executionType)
   在 Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(StringCollection sqlCommands, ExecutionTypes executionType)
   在 Microsoft.SqlServer.Management.Smo.ExecutionManager.ExecuteNonQuery(StringCollection queries)
   在 Microsoft.SqlServer.Management.Smo.Server.AttachDatabaseWorker(String name, StringCollection files, String owner, AttachOptions attachOptions)
   在 Microsoft.SqlServer.Management.Smo.Server.AttachDatabase(String name, StringCollection files)

===================================

在文件 'C:\xxxx' 中、偏移量为 0x00000000100000 的位置执行 读取 期间,操作系统已经向 SQL Server 返回了错误 38(已到文件结尾。)SQL Server 错误日志和系统事件日志中的其他消息可能提供了更详细信息。这是一个威胁数据库完整性的严重系统级错误条件,必须立即纠正。请执行完整的数据库一致性检查(DBCC CHECKDB)。此错误可以由许多因素导致;有关详细信息,请参阅 SQL Server 联机丛书。
在 SQLServerLogMgr::ReadFileHdr 期间文件“C:\xxxx”出现操作系统错误 38(已到文件结尾。)。
无法打开新数据库 'UFDATA_003_2021'CREATE DATABASE 中止。 (.Net SqlClient Data Provider)

------------------------------
有关帮助信息,请单击: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&EvtSrc=MSSQLServer&EvtID=823&LinkId=20476

------------------------------
服务器名称: LAPTOP-8T143G83\ZC
错误号: 823
严重性: 24
状态: 5
行号: 1


------------------------------
程序位置:

   在 Microsoft.SqlServer.Management.Common.ConnectionManager.ExecuteTSql(ExecuteTSqlAction action, Object execObject, DataSet fillDataSet, Boolean catchException)
   在 Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(String sqlCommand, ExecutionTypes executionType)```

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值