在我不知情的情况下,我的dev数据库服务器由一些管理员格式化。值得庆幸的是,我将.mdf文件保存在其他驱动器中,但.ldf位于其默认位置。由于我没有数据库备份,因此我现在使用.mdf文件。我用谷歌搜索并找到了从.mdf文件恢复数据库的各种技巧。由于数据库没有干净地关闭,所以没有任何技巧。我的机器上安装了SQL Server 2008 SP2。我记得丢失的数据库服务器是SQL Server 2005实例。请告诉我如何恢复数据库。
我尝试过的技巧:
CREATE DATABASE Monitoring ON (FILENAME = N'D:\Dump\Data\Monitoring.MDF') FOR ATTACH_REBUILD_LOG
sp_attach_single_file_db N'Monitoring', N'D:\Dump\Data\Monitoring_Data.MDF'
上面我得到了
DBCC语句不正确。检查文档以获取正确的DBCC语法和选项。
然后我尝试了DBCC REBUILD_LOG('Monitoring',N'C:\Program Files ..MSSQL\Data\Monitoring_log.ldf')
,结果是:
DBCC语句不正确。检查文档以获取正确的DBCC语法和选项。“错误。
答案 0 :(得分:2)
以下是一些可能有用的注释(适用于SQL 2000)。我从未尝试过这些。
通过执行以下操作将数据库置于紧急绕过状态:
sp_configure 'allow', 1
go
reconfigure with overide.
update master..sysdatabases
set status=32768
where dbid=5 --check this ID is for your db
停止SQL服务(实例)。
在QM中执行以下操作:
select dbid, status, name
from master..sysdatabases
dbcc rebuild_log ('dbname', 'full path and LDF name')
通过QM中的执行功能从紧急绕过状态恢复数据库:
update master..sysdatabases
set status=16
where dbid=5 --Check this ID for your db
通过在QM中执行以下操作进行清理:
sp_configure 'allow', 0
go
reconfigure with override
答案 1 :(得分:1)
试试这个:
ALTER DATABASE EmpDataBase REBUILD LOG ON(NAME = $ DatabaseName $,FILENAME = N'$ Path \ DatabaseName.ldf $')
GO
DBCC CHECKDB
ALTER DATABASE $ DatabaseName $ SET MULTI_USER
GO