微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SQLSERVER 服务无法启动Operating system error1117

 sql Server无法重启从错误日志中发现下面的错误

 

Operating system error 1117(由于 I/O设备错误,无法运行此项请求。) on file "C:\Program Files\Microsoft sqlServer\MSsql10.MSsqlSERVER\MSsql\DATA\mastlog.ldf"

 

这种问题大多是因为磁盘硬件错误导致sqlServer无法重启,如果文件没有损坏的话我们可以通过移动sqlServer系统数据库解决。如果系统文件损坏需要Rebuildsystem数据库然后还原系统数据库

 

这里我们讲如何将系统数据库移到其他磁盘解决硬件问题导致服务无法重启的问题:

 

1.      首先将系统数据库拷贝到其他磁盘,并且确保sql Server Service账户有足够的权限访问这些文件

 

2.      在配置管理器中更改sql Server启动参数,将MASTER数据库文件和日志文件指定到其他目录。

       -dMaster数据文件位置

      -lMaster日志文件位置

 

3.      修改完成后使用下面的命令启动sql Server:

 

启动Named sql Server Instance

 

NET STARTMSsql$instancename /f /T3608

 

启动Default Instance:

 

NET START MSsqlSERVER /f /T3608

 

4.  执行上面的命令后可以启动sql Server,然后使用sqlcmd连接到MASTER数据库修改其他系统数据库文件路径。如果使用Management studio连接的时候直接选择“New Query(用户模式启动,只允许一个用户连入数据库,使用“New Query“连接可以确保单用户成功连接)

 

 

修改系统数据库文件路径命令:

 

use master

go

Alter databasetempdbmodifyfile (name= tempdev,filename = 'D:\Program Files\Microsoftsql Server\MSsql10_50.R2\MSsql\DATA\backup\tempdb.mdf')

go

Alter databasetempdbmodifyfile (name= templog,filename = 'D:\Program Files\Microsoftsql Server\MSsql10_50.R2\MSsql\DATA\backup\templog.ldf')

go

USE master;

GO

ALTER DATABASEmsdbMODIFYFILE (NAME= MSDBData,FILENAME='D:\Program Files\Microsoftsql Server\MSsql10_50.R2\MSsql\DATA\backup\MSDBData.mdf');

GO

ALTER DATABASEmsdbMODIFYFILE (NAME= MSDBLog,FILENAME='D:\Program Files\Microsoftsql Server\MSsql10_50.R2\MSsql\DATA\backup\MSDBLog.ldf');

GO

ALTER DATABASEmodelMODIFYFILE (NAME= modeldev,FILENAME='D:\Program Files\Microsoftsql Server\MSsql10_50.R2\MSsql\DATA\backup\model.mdf');

GO

ALTER DATABASEmodelMODIFYFILE (NAME= modellog,FILENAME='D:\Program Files\Microsoftsql Server\MSsql10_50.R2\MSsql\DATA\backup\modellog.ldf');

GO

 

 

查询文件地址是否已经修改

 

SELECT name,physical_nameAS CurrentLocation, state_desc

FROM sys.master_files

WHERE database_id =DB_ID(N'<database_name>');

 

 

---如果需要迁移RESOURCE数据库的话使用下面的命令

 

USE master;

GO

ALTER DATABASE mssqlsystemresourceMODIFYFILE(NAME= DATA,FILENAME='D:\Program Files\Microsoft sqlServer\MSsql10_50.R2\MSsql\DATA\backup\.mdf');

GO

ALTER DATABASE mssqlsystemresourceMODIFYFILE(NAME= LOG,FILENAME='D:\Program Files\Microsoftsql Server\MSsql10_50.R2\MSsql\DATA\backup\.ldf');

GO

ALTER DATABASE mssqlsystemresourceSETREAD_ONLY;

 

5.      执行成功后重启数据库数据库恢复正常。如果还有其他用户数据库也需要迁移的话可以参照上面的命令迁移文件

 

6.      迁移完成后运行DBCC CHECKDB确保数据库完整性并且备份数据库

 

更多迁移系统数据库信息可以参考:http://msdn.microsoft.com/en-us/library/ms345408.aspx

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐