小编Alc*_*fra的帖子

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

大家,早安!

我正在使用 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日别无他法?它之后所做的一切都完全失去了,是吗?

sql-server-2008 sql-server

3
推荐指数
1
解决办法
415
查看次数

标签 统计

sql-server ×1

sql-server-2008 ×1