SQLSERVER 服务无法启动Operating system error1117
SQL Server无法重启从错误日志中发现下面的错误: ? Operating system error 1117(由于 I/O设备错误,无法运行此项请求。) on file "C:Program FilesMicrosoft SQLServerMSSQL10.MSSQLSERVERMSSQLDATAmastlog.ldf" ? 这种问题大多是因为磁盘硬件错误导致SQLServer无法重启,如果文件没有损坏的话我们可以通过移动SQLServer系统数据库解决。如果系统文件损坏需要Rebuildsystem数据库然后还原系统数据库。 ? 这里我们讲如何将系统数据库移到其他磁盘解决硬件问题导致服务无法重启的问题: ? 1. 首先将系统数据库拷贝到其他磁盘,并且确保SQL Server Service账户有足够的权限访问这些文件。 ? 2. 在配置管理器中更改SQL Server启动参数,将MASTER数据库文件和日志文件指定到其他目录。 -d为Master数据文件位置 -l为Master日志文件位置 ? 3. 修改完成后使用下面的命令启动SQL Server: ?
? 4. 执行上面的命令后可以启动SQL Server,然后使用sqlcmd连接到MASTER数据库修改其他系统数据库的文件路径。如果使用Management studio连接的时候直接选择“New Query”(单用户模式启动,只允许一个用户连入数据库,使用“New Query“连接可以确保单用户成功连接)。 ? 修改系统数据库文件路径命令: ? use master go Alter databasetempdbmodifyfile(name= tempdev,filename= 'D:Program FilesMicrosoftSQL ServerMSSQL10_50.R2MSSQLDATAbackuptempdb.mdf') go Alter databasetempdbmodifyfile(name= templog,filename= 'D:Program FilesMicrosoftSQL ServerMSSQL10_50.R2MSSQLDATAbackuptemplog.ldf') go USE master; GO ALTER DATABASEmsdbMODIFYFILE(NAME= MSDBData,FILENAME='D:Program FilesMicrosoftSQL ServerMSSQL10_50.R2MSSQLDATAbackupMSDBData.mdf'); GO ALTER DATABASEmsdbMODIFYFILE(NAME= MSDBLog,FILENAME='D:Program FilesMicrosoftSQL ServerMSSQL10_50.R2MSSQLDATAbackupMSDBLog.ldf'); GO ALTER DATABASEmodelMODIFYFILE(NAME= modeldev,FILENAME='D:Program FilesMicrosoftSQL ServerMSSQL10_50.R2MSSQLDATAbackupmodel.mdf'); GO ALTER DATABASEmodelMODIFYFILE(NAME= modellog,FILENAME='D:Program FilesMicrosoftSQL ServerMSSQL10_50.R2MSSQLDATAbackupmodellog.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 FilesMicrosoft SQLServerMSSQL10_50.R2MSSQLDATAbackup.mdf'); GO ALTER DATABASE mssqlsystemresourceMODIFYFILE(NAME=LOG,FILENAME='D:Program FilesMicrosoftSQL ServerMSSQL10_50.R2MSSQLDATAbackup.ldf'); GO ALTER DATABASE mssqlsystemresourceSETREAD_ONLY; ? 5. 执行成功后重启数据库数据库恢复正常。如果还有其他用户数据库也需要迁移的话可以参照上面的命令迁移文件。 ? 6. 迁移完成后运行DBCC CHECKDB确保数据库完整性并且备份数据库。 ? 更多迁移系统数据库信息可以参考:http://msdn.microsoft.com/en-us/library/ms345408.aspx (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |