服务器“服务器名”还原失败。(Microsoft.SqlServer.SmoExtended) System.Data.SqlClient.SqlError:还原无法启动数据库“ECP”。(Microsoft.SqlServer.Smo)
创建了数据库,但无法使用对象资源管理器访问:
无法访问数据库ECP。(ObjectExplorer)
谢谢您对我如何使数据库工作的任何建议。
编辑:此查询
select state_desc from sys.databases where name = 'ECP';返回RECOVERY_PENDING。
我再次删除了数据库,并重新尝试了一次
restore verifyonly from disk = 'path\file';这会返回
试图还原此备份可能会遇到存储空间问题。随后的消息将提供详细信息。由“F:\ECPDATA1 1\ECPDATA1.mdf”指定的路径不在有效目录中。目录查找文件“F:\ECPDATA2 2\ECPDATA2.ndf”失败,操作系统错误3(未能检索此错误的文本)。原因: 15100)。目录查找文件“F:\ECPDATA3 3\ECPDATA3.ndf”失败,操作系统错误3(未能检索此错误的文本)。原因: 15105)。目录查找文件“F:\ECPDATA4 4\ECPDATA4.ndf”失败,操作系统错误3(未能检索此错误的文本)。原因: 15105)。目录查找文件“E:\ECPLOG1 1\ECPLOG1.ldf”失败,操作系统错误21(无法检索此错误的文本)。原因: 15105)。文件1上的备份集是有效的。
因为它说备份集是有效的,所以我只需要得到指定的文件,就可以工作了,对吗?但在这台服务器上,我没有驱动器E:或F:。如何在备份文件中调整这一点?或者有可能(我不太熟悉windows-server-2008-r2)有某种类似于linux的符号链接?
发布于 2013-08-20 15:42:37
您的还原失败,因为您的计算机上没有E:\或F:\。
RESTORE FILELISTONLY FROM DISK = 'path\file'; -这将告诉您数据和日志文件的逻辑名称。RESTORE DATABASE命令。例如(假设数据文件名为ECP_Data、ECP_Data_2等):将数据库ECO从磁盘=“path\file”中恢复、恢复、将“ECP_Data”移动到“C:...path”到MSSQL\ data \ECP_Data.mdf、将“ECP_Data_2”移动到“C:...path到MSSQL\Data\ECP_Data2.ndf”、将“ECP_Data_3”移动到“C:...path到MSSQL\Data\ECP_Data3.ndf”,将“ECP_Data_4”移动到“C:...path到MSSQL\Data\ECP_data4.ndf”,将“ECP_Log”移到“C:...path到MSSQL\Data\ECP_log.ldf”;除了纠正逻辑文件名之外,用您想要存储数据/日志文件的任何路径(S)替换C:\...path to MSSQL\Data\。每个文件不需要一个单独的文件夹,但您可能仍然希望将数据和日志文件分离到不同的磁盘上。请注意,如果您选择的驱动器(S)缺少足够的空间来执行还原,则仍然可能会失败。发布于 2013-08-20 15:43:59
似乎您正在从具有E:和F:驱动器的服务器恢复数据库。您需要将文件移动到还原期间实际存在的位置。这将提供如下所示的restore命令(从Server中清除):
RESTORE DATABASE MyAdvWorks
FROM AdventureWorks2008R2_Backup
WITH RECOVERY,
MOVE 'AdventureWorks2008R2_Data' TO 'D:\MyData\MyAdvWorks_Data.mdf',
MOVE 'AdventureWorks2008R2_Log' TO 'D:\MyLog\MyAdvWorks_Log.ldf'您也可以在UI中这样做,方法是转到restore对话框的OPTIONS选项卡,并在"Restore as“列中键入新的路径。
发布于 2014-11-11 15:18:56
如果试图将db从服务器还原到另一服务器,而在还原服务器上不存在db,则可以尝试下面的方法。
这个问题可能会发生,这取决于这个原因;DB文件可能位于还原服务器上不存在的不同磁盘名上。
若要解决还原服务器上的问题,请创建与数据库一起附加的db和db文件。DB和文件名必须与备份服务器上的db相同(以替换db)。然后,您可以尝试重新启动还原,替换模式为true。
https://dba.stackexchange.com/questions/48405
复制相似问题