我备份了一个数据库:

BACKUP DATABASE MyDatabase
TO DISK = 'MyDatabase.bak'
WITH INIT --overwrite existing

然后试图恢复它:

RESTORE DATABASE MyDatabase
   FROM DISK = 'MyDatabase.bak'
   WITH REPLACE --force restore over specified database

现在数据库处于还原状态。

有些人推测,这是因为备份中没有日志文件,需要使用以下方法前滚:

RESTORE DATABASE MyDatabase
WITH RECOVERY 

当然,这是行不通的:

Msg 4333, Level 16, State 1, Line 1
The database cannot be recovered because the log was not restored.
Msg 3013, Level 16, State 1, Line 1
RESTORE DATABASE is terminating abnormally.

在灾难性的情况下,你想要的是一个无法工作的恢复。


备份包含数据文件和日志文件:

RESTORE FILELISTONLY 
FROM DISK = 'MyDatabase.bak'

Logical Name    PhysicalName
=============   ===============
MyDatabase    C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\MyDatabase.mdf
MyDatabase_log  C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\MyDatabase_log.LDF

当前回答

你试过运行验证吗?确保这是声音备份。

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

其他回答

我已经得到了MyDbName(恢复…)情况,因为SQL Express许可限制。

在日志文件中,我发现了这个:

创建数据库或更改数据库失败,因为结果 累积数据库大小将超过您的许可限制10240 MB 每个数据库。

因此,如果您试图恢复一个更大的数据库,您需要将SQL Express服务器切换到开发人员版本。

这可能是相当明显的,但它刚刚绊倒了我:

如果您正在进行尾日志备份,则在SSMS还原向导中选中此选项-“使源数据库处于还原状态(WITH NORECOVERY)”也可能导致此问题。

我也有同样的问题……虽然我不知道为什么我的数据库遇到这个问题,因为我的驱动器没有满…好像是被损坏了什么的。我尝试了以上所有的,没有一个完全工作,我特别认为建议停止服务和删除mdf和ldf文件将工作…但在恢复时仍然死机?

我最终通过删除上面提到的文件来解决这个问题,但我没有尝试再次恢复DB,而是复制了新鲜的.mdf和.ldf文件,并使用前端附件向导附加这些文件。如释重负,它起作用了!!

它花了永远复制的新文件,因为我正在使用虚拟机…所以用剪贴板复制粘贴本身就花了一个小时,所以我只推荐这是最后一次尝试。

这个方法奏效了:

http://social.msdn.microsoft.com/Forums/en/sqldatabaseengine/thread/8dd1b91d-3e14-4486-abe6-e3a550bfe457

我有一个情况,我的数据库显示恢复状态,我不能运行任何查询,不能与我们的软件连接。

为了摆脱这种情况,我所做的是:

停止windows服务中的所有SQL相关服务。 我打开了数据文件夹,其中Ldf和Mdf文件驻留在SQL目录中,通常是这样的: “C: \程序文件 ***********\ 该软件\数据 然后我复制了数据库的Ldf和Mdf文件: (数据库名称)。MDF和[db name]_log.ldf

我把这两个文件都复制到另一个文件夹。

Then I started all the SQL related services (in step 1) again from windows services. Started my MS SQL Management studio with normal login. Right click on the culprit database and hit DELETE (to delete the database at all). All the LDF and MDF files related to this database have gone from DATA folder (mentioned in step 2). Created a new database with the same name (same name of the one I deleted in step 6 - the culprit database). Then [database name]->right click -> tasks -> Take Offline. I then Copied both the files (from step 3) back to the DATA folder (step 2). [database name]->right click -> tasks -> Bring Online.

如果启用了快照,删除被卡住的数据库也会有问题。对我来说,这很有效:

首先,我遵循了Tipu Delacablu的步骤(阅读一些帖子) 运行命令:drop database [your database],这将给您一个错误,告诉您快照数据库的名称 执行命令drop database [snapshot database],然后再执行步骤2中的命令。