服务器出现故障,我可以从硬盘中检索数据库吗?

服务器出现故障,我可以从硬盘中检索数据库吗?

我有一台运行 Windows Server 2003 R2 的旧服务器。由于不正确的关机,Windows 损坏了。我试图修复 Windows 安装,但情况变得更糟(它进入了桌面,但没有开始菜单,并且大多数开始菜单项都丢失了)。我无法运行任何程序,Windows 声称必须重新安装应用程序。

无论如何,这台服务器很旧,我们有一台较新的服务器,除了托管数据库外,它已接管了这台服务器 90% 以上的职责。数据库的备份用于在新服务器上启动它,但它大约只有一天的历史。不幸的是,所有库存数据都是在上次备份和服务器故障之间输入的,需要重新输入大量信息。

有没有办法直接从硬盘检索数据库信息(通过将其插入另一台计算机进行读取)?数据库由 MS SQL Server 2008 管理。我在机器本身上使用第三方 SQL 备份工具和 MS SQL Server Management,但它无法加载应用程序(抱怨缺少核心 Windows 和 .Net 文件)。重新运行 Windows 安装程序毫无用处,导致桌面同样出现问题。

答案1

我会尝试将数据库文件从硬盘复制到另一台运行 MS SQL 2008 的计算机上,看看是否可以访问该文件。听起来好像某些 Windows 文件已损坏,但这并不意味着您的数据库文件已损坏。以下信息可能有用:

https://stackoverflow.com/questions/6584938/move-sql-server-2008-database-files-to-a-new-folder-location

答案2

如果您可以将旧数据库的 .MDF 和 .LDF 文件完整地从旧硬盘中取出,那么您应该能够将它们作为新数据库附加到新服务器上。参考此处:

http://msdn.microsoft.com/en-us/library/ms187858.aspx

假设您的数据库名为“MyDatabase”,文件为“MyDatabase_Data.mdf”和“MyDatabase_Log.ldf”

将它们复制到新服务器上的文件夹,例如“c:\MySQLServer”,然后将它们附加为新数据库:

USE master;
GO
CREATE DATABASE MyDatabase 
    ON (FILENAME = 'C:\MySQLServer\MyDatabase_Data.mdf'),
    (FILENAME = 'C:\MySQLServer\MyDatabase_Log.ldf')
    FOR ATTACH;
GO

相关内容