数据库处于“正在恢复”状态

Alc*_*fra 3 sql-server-2008 sql-server

大家,早安!

我正在使用 SQL SERVER 2008,并且需要使用我们客户端的数据库。当我准备备份以防万一出现问题时,我误点击了进行还原,并且没有注意到我在还原屏幕中并单击了“确定”按钮(没有更改屏幕上的任何配置)。就在它开始执行时,我点击了“立即停止操作”。它停止并出现一条消息,指出用户已取消该操作。到目前为止一切顺利,但是当我要进行真正的备份时,SQL 不允许说已经进行了恢复。当我看到数据库状态为“正在恢复”时。我在互联网上搜索并看到查询:

DATABASE NomeDatabase WITH RECOVERY
Run Code Online (Sandbox Code Playgroud)

会解决我的问题,但在我执行之前,我问我的老板执行这个查询是否有任何问题,他说不要运行查询,因为它会恢复到最近的备份(最近的备份是在 08/23 )。所以我们只有 MDF e LDF 文件,当我们尝试使用此查询进行附加时

EXEC sp_attach_db @dbname = N'DBName', 
    @filename1 = N'C:\PATH\DBName.mdf', 
    @filename2 = N'C:\PATH\DBName_log.ldf'
Run Code Online (Sandbox Code Playgroud)

它给出了这个答案:

消息 1813,级别 16,状态 2,第 1 行无法打开新数据库“DBName”。CREATE DATABASE 已中止。消息 9004,级别 21,状态 1,第 1 行 处理数据库“DBName”的日志时出错。如果可能,从备份中恢复。如果备份不可用,则可能需要重建日志。

我还搜索了此错误消息,发现有必要重建日志,但这里没有人知道该怎么做。我想知道您是否可以帮助我,或者是否有人已经经历过。

这是我进行恢复的屏幕,只需单击“确定”,不更改任何配置:图像

(我的老板分离并删除了数据库以尝试执行附件查询,因此我们不再有SQL上的数据库,只有MDF和LDF文件)

我在网站上看到了一些帖子,但没有一个对我有用。

如果有任何语法错误,谢谢和抱歉!


谢谢你的回答。我也试过这个查询,但没有走运。

无法重建日志,因为在数据库关闭时有打开的事务/用户,数据库没有发生检查点,或者数据库是只读的。如果由于硬件或环境故障手动删除或丢失事务日志文件,则可能会发生此错误。

消息 1813:无法打开新数据库“dbname”。CREATE DATABASE 已中止。

所以我想现在除了恢复8月23日别无他法?它之后所做的一切都完全失去了,是吗?

Tar*_*zer 10

使用sp_attach_single_file_db附加的MDF文件没有LDF文件,因为sp_attach_db没有工作。这也可能会失败,因为还原已经开始并覆盖了这些文件(检查 SQL Server 错误日志以查看还原是否开始)。如果它确实失败了,您将无法从 8 月 23 日的备份恢复。

完成此紧急情况后,请按顺序进行备份。