S.P*_*era 2 sql-server database-administration
当我收缩数据库时,机器重新启动,从那时起就SQL Server (MSSQLSERVER)没有启动。阅读博客后,我替换了master.mdf和 mastlog.ldf用相同的文件替换了模板文件夹中的
但是问题仍然存在,错误日志文件给出以下消息,
Starting up database 'msdb'.
Starting up database 'mssqlsystemresource'.
Error: 17204, Severity: 16, State: 1.
FCB::Open failed: Could not open file E:\sql12_main_t.obj.x86Release\sql\mkmastr\databases\mkmastr.proj\MSDBData.mdf for file number 1. OS error: 3(The system cannot find the path specified.).
Error: 5120, Severity: 16, State: 101.
Unable to open the physical file "E:\sql12_main_t.obj.x86Release\sql\mkmastr\databases\mkmastr.proj\MSDBData.mdf". Operating system error 3: "3(The system cannot find the path specified.)".
Error: 17207, Severity: 16, State: 1.
FileMgr::StartLogFiles: Operating system error 2(The system cannot find the file specified.) occurred while creating or opening file 'E:\sql12_main_t.obj.x86Release\sql\mkmastr\databases\mkmastr.proj\MSDBLog.ldf'. Diagnose and correct the operating system error, and retry the operation.
File activation failure. The physical file name "E:\sql12_main_t.obj.x86Release\sql\mkmastr\databases\mkmastr.proj\MSDBLog.ldf" may be incorrect.
The resource database build version is 12.00.2000. This is an informational message only. No user action is required.
Starting up database 'model'.
Run Code Online (Sandbox Code Playgroud)
我可以明确地说我的机器上没有E:\分区。您能帮我修复我现在认为是错误的路径吗?
我不知道这是一个错误还是 SQL Server 2014 中常见的问题。\n对数据库的一些引用将保持如下所示:
\n\nE:\\sql12_main_t.obj.x86Release\\sql\\mkmastr\\databases\\mkmastr.proj\\MSDBData.mdf\nRun Code Online (Sandbox Code Playgroud)\n\n所以你基本上必须直接在数据库中更改它们。
\n\n以管理员身份运行 CMD 控制台并访问数据库,如下所示:
\n\nSQLCMD -S .\\\nRun Code Online (Sandbox Code Playgroud)\n\n或者像这样,如果你有一个实例:
\n\nSQLCMD \xe2\x80\x93S .\\INSTANCENAME\nRun Code Online (Sandbox Code Playgroud)\n\n使用以下句子将文件重命名为默认位置:
\n\nALTER DATABASE model MODIFY FILE ( NAME = modeldev, FILENAME = \'C:\\Program Files\\Microsoft SQL Server\\MSSQL12.MSSQLSERVER\\MSSQL\\DATA\\model.mdf\');\nALTER DATABASE model MODIFY FILE ( NAME = modellog, FILENAME = \'C:\\Program Files\\Microsoft SQL Server\\MSSQL12.MSSQLSERVER\\MSSQL\\DATA\\modellog.ldf\');\nALTER DATABASE msdb MODIFY FILE ( NAME = MSDBData, FILENAME = \'C:\\Program Files\\Microsoft SQL Server\\MSSQL12.MSSQLSERVER\\MSSQL\\DATA\\MSDBData.mdf\');\nALTER DATABASE msdb MODIFY FILE ( NAME = MSDBLog, FILENAME = \'C:\\Program Files\\Microsoft SQL Server\\MSSQL12.MSSQLSERVER\\MSSQL\\DATA\\MSDBLog.ldf\');\nALTER DATABASE tempdb MODIFY FILE ( NAME = tempdev, FILENAME = \'C:\\Program Files\\Microsoft SQL Server\\MSSQL12.MSSQLSERVER\\MSSQL\\DATA\\temp.mdf\');\nALTER DATABASE tempdb MODIFY FILE ( NAME = templog, FILENAME = \'C:\\Program Files\\Microsoft SQL Server\\MSSQL12.MSSQLSERVER\\MSSQL\\DATA\\temp.ldf\');\nGO\nRun Code Online (Sandbox Code Playgroud)\n\n之后,你的 sa 用户将保持没有密码(这发生在我身上,不确定是否总是发生),只需再次登录控制台并手动更改密码:
\n\nALTER LOGIN sa WITH PASSWORD = \'newpassword\' UNLOCK\nRun Code Online (Sandbox Code Playgroud)\n\n当我执行最后一步时,我遇到了问题,因为我的默认登录是使用 Windows 身份验证配置的,因此指令:
\n\nSQLCMD -S .\\\nRun Code Online (Sandbox Code Playgroud)\n\n没用,只需添加 sa 用户,无需密码:
\n\nSQLCMD -S .\\ -Usa\nRun Code Online (Sandbox Code Playgroud)\n\n希望能帮助到你。
\n\n我在这里找到了该解决方案:
\n\n\n