SQL2000数据库的事务文件(.LDF)被删除,数据文件(.MDF)还在,如何恢复数据库?请帮帮忙。。。
急
急
如果数据文件是本机的可以直接附加数据文件,系统会重新创建一个日志文件.
如果数据文件不是本机的用下面的方法.
恢复只含mdf的数据库方法
日志文件丢失下的数据库恢复
sysdatabases
status=32768 (emergency mode)
打开系统表的操作权限
USE master
EXEC sp_configure 'show advanced option', '1'
纪录数据库原状态
select status from sysdatabases where name = 'crashdb'
status
-----------
16
(所影响的行数为 1 行)
将数据库置为紧急状态
update sysdatabases set status = 32768 where name = 'crashdb'
将数据库置回原状态
update sysdatabases set status = 16 where name = 'crashdb'
(可省略)
新建一数据库,使用DTS的在 SQL Server 实例之间传输数据库对象功能敬爱能够将原数据库的所有数据库对象、数据及相关权限复制到新数据库中
将原数据库删除,并将新建数据库重命名为原数据库的名,此时除在日志中为应用到数据库中的事务丢失外其他数据均已恢复。
[此贴子已经被作者于2007-2-16 12:22:45编辑过]
在企业管理器中 我用的是英文版 用attch database,中文版名字大概叫 附加数据库 然后会让你选择mdf文件
或者在查询分析器里使用 sp_attach_single_file_db 存储过程
sp_attach_single_file_db
将只有一个数据文件的数据库附加到当前服务器。
语法
sp_attach_single_file_db [ @dbname = ] 'dbname'
, [ @physname = ] 'physical_name'
参数
[@dbname =] 'dbname'
要附加到服务器的数据库的名称。dbname 的数据类型为 sysname,默认值为 NULL。
[@physname =] 'phsyical_name'
据库文件的物理名称,包括数路径。physical_name 的数据类型为 nvarchar(260),默认值为 NULL。
返回代码值
0(成功)或 1(失败)
结果集
无
注释
当使用 sp_attach_single_file_db 将数据库附加到服务器时,它创建一个新的日志文件并执行额外的清除工作,从新附加的数据库中删除复制。
仅对使用显式 sp_detach_db 操作从服务器分离的数据库执行 sp_attach_single_file_db。
仅对具有单个日志文件的数据库使用 sp_attach_single_file_db。不要对具有多个日志文件的数据库使用此存储过程。
权限
只有 sysadmin 和 dbcreator 固定服务器角色的成员才能执行本过程。
示例
下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。
EXEC sp_detach_db @dbname = 'pubs'
EXEC sp_attach_single_file_db @dbname = 'pubs',
@physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf'