heartstill

博客园 首页 新随笔 联系 订阅 管理
附加数据库时出错,数据库恢复失败
时间:2011-9-21 17:19:24 来源: http://www.finaldata.org 作者:dstfy 浏览:207
数据恢复,达思数据恢复,数据库恢复我首先使用下面命令恢复:USE master;GOEXEC ...

数据恢复达思数据恢复数据库恢复

我首先使用下面命令恢复:
USE master;
GO
EXEC sp_detach_db @dbname = 'DaiGou';
EXEC sp_attach_single_file_db @dbname = 'DaiGou',
@physname = N'C:\DATABASE\DaiGou_Data.MDF';

消息 15010,级别 16,状态 1,过程 sp_detach_db,第 34 行
数据库 'DaiGou' 不存在。请提供有效的数据库名称。若要查看可用数据库,请使用 sys.databases。
文件激活失败。物理文件名称'd:\Program Files\Microsoft SQL Server\MSSQL\data\DaiGou_Log.LDF'可能不正确。
新的日志文件 'd:\DATABASE\DaiGou_log.LDF' 已创建。
正在将数据库 'DaiGou' 从版本 539 转换为当前版本 611。
数据库 'DaiGou' 正在从版本 539 升级到版本 551。
消息 601,级别 12,状态 3,第 1 行
由于数据移动,无法继续以 NOLOCK 方式扫描。

标题: Microsoft SQL Server Management Studio
------------------------------

无法访问数据库 DaiGou。 (ObjectExplorer)

 

 

如果你无法找到正常的日志文件, 请尝试下面的方法:
1. 将你的 N'd:\DATABASE\DaiGou_Data.MDF' 改个名字
2. 建一个同名的数据库, 数据和日志文件名与你附加的相同
3. 停止 sql 服务
4. 把新建库的 mdf 改一下名
5. 把步骤1的名字改回来
6. 重启sql 服务
7. 如果你的数据库可用了, 那么恭喜你
8. 如果还有可能, 那么将它设置为应急修复模式, 这样至少数据库中的数据可读, 将它们弄出来, 放到一个新库里面去, 然后用新库代替旧库
ALTER DATABASE DB_NAME SET EMERGENCY
9. 当然, 你也可以尝试在应急修复模式和模式之间做转换, 看看会不会好
ALTER DATABASE DB_NAME SET ONLINE

 

2个文件一起恢复的话,
CREATE DATABASE [DaiGou] ON
( FILENAME = N'd:\DATABASE\DaiGou_Data.MDF' )
,
( FILENAME = N'd:\DATABASE\DaiGou_Log.LDF' )
FOR ATTACH
提示下列错误:
消息 1813,级别 16,状态 2,第 1 行
无法打开新数据库 'DaiGou'。CREATE DATABASE 中止。
消息 9004,级别 21,状态 1,第 1 行
处理数据库 'DaiGou' 的日志时出错。如果可能,请从备份还原。如果没有可用备份,可能需要重新生成日志。

 

ALTER DATABASE [DaiGou] SET ONLINE


消息 5173,级别 16,状态 1,第 1 行
一个或多个文件与数据库的主文件不匹配。如果是尝试附加数据库,请使用正确的文件重试该操作。如果这是现有数据库,则文件可能已损坏,应该从备份进行还原。
日志文件 'D:\DATABASE\DaiGou_log.ldf' 与主文件不匹配。该文件可能来自另一数据库,或者可能以前重新生成了日志。
消息 945,级别 14,状态 2,第 1 行
由于文件不可访问,或者内存或磁盘空间不足,所以无法打开数据库 'DaiGou'。有关详细信息,请参阅 SQL Server 错误日志。
消息 5069,级别 16,状态 1,第 1 行
ALTER DATABASE 语句失败。

设置为
ALTER DATABASE DB_NAME SET EMERGENCY
后,点击数据库报以下错误:

标题: Microsoft SQL Server Management Studio
------------------------------

无法显示请求的对话框。

------------------------------
其他信息:

无法显示请求的对话框。 (SqlMgmt)

------------------------------

执行 Transact-SQL 语句或批处理时发生了异常。 (Microsoft.SqlServer.ConnectionInfo)

------------------------------

无法打开数据库 'DaiGou' 版本 539。请将该数据库升级为最新版本。 (Microsoft SQL Server,错误: 946)

SQL 2000下操作
USE master;
GO
EXEC sp_detach_db @dbname = 'DaiGou';
EXEC sp_attach_single_file_db @dbname = 'DaiGou',
@physname = N'e:\DATABASE\DaiGou_Data.MDF';


错误信息如下:
服务器: 消息 15010,级别 16,状态 1,过程 sp_detach_db,行 25
数据库 'DaiGou' 不存在。请用 sp_helpdb 来显示可用的数据库。
服务器: 消息 5170,级别 16,状态 1,行 1
无法创建文件 'e:\DATABASE\DaiGou_log.LDF',因为该文件已存在。
服务器: 消息 1813,级别 16,状态 1,行 1
未能打开新数据库 'DaiGou'。CREATE DATABASE 将终止。
设备激活错误。物理文件名 'd:\Program Files\Microsoft SQL Server\MSSQL\data\DaiGou_Log.LDF' 可能有误。

posted on 2012-04-06 23:20  开始测试  阅读(2758)  评论(0编辑  收藏  举报