Sqlserver 数据库恢复常见错误及解决(网站转载 留着备用)

时间:2022-10-13 16:44:58
2009-04-13 11:25 1145人阅读 评论(0) 收藏 举报

在sqlServer20005 的management studio里使用bak文件还原数据库的时候,总是失败!
Sqlserver 数据库恢复常见错误及解决(网站转载 留着备用)

The backup set holds a backup of a database other than the existing 'AAA' database.
RESTORE DATABASE is terminating abnormally. (Microsoft SQL Server,错误: 3154)

解决方法一:
--返回由备份集内包含的数据库和日志文件列表组成的结果集。
Sqlserver 数据库恢复常见错误及解决(网站转载 留着备用)--主要获得逻辑文件名
Sqlserver 数据库恢复常见错误及解决(网站转载 留着备用)USE master
Sqlserver 数据库恢复常见错误及解决(网站转载 留着备用)RESTORE FILELISTONLY
Sqlserver 数据库恢复常见错误及解决(网站转载 留着备用)   FROM DISK = 'g:/back.Bak' 
Sqlserver 数据库恢复常见错误及解决(网站转载 留着备用)Go
Sqlserver 数据库恢复常见错误及解决(网站转载 留着备用)************************************************
Sqlserver 数据库恢复常见错误及解决(网站转载 留着备用)/*
Sqlserver 数据库恢复常见错误及解决(网站转载 留着备用)利用bak恢复数据库,强制还原(REPLACE)
Sqlserver 数据库恢复常见错误及解决(网站转载 留着备用)STATS = 10 每完成10%显示一条记录
Sqlserver 数据库恢复常见错误及解决(网站转载 留着备用)DBTest和DBTest_log是上面g:/back.Bak里的逻辑文件
Sqlserver 数据库恢复常见错误及解决(网站转载 留着备用)*/
Sqlserver 数据库恢复常见错误及解决(网站转载 留着备用)USE master
Sqlserver 数据库恢复常见错误及解决(网站转载 留着备用)RESTORE DATABASE DB 
Sqlserver 数据库恢复常见错误及解决(网站转载 留着备用)   FROM DISK = 'g:/back.Bak'
Sqlserver 数据库恢复常见错误及解决(网站转载 留着备用)   WITH MOVE 'DBTest' TO 'E:/Program Files/Microsoft SQL Server2005/Data/DB.mdf', 
Sqlserver 数据库恢复常见错误及解决(网站转载 留着备用)   MOVE 'DBTest_log' TO 'E:/Program Files/Microsoft SQL Server2005/Data/DB_log.ldf',
Sqlserver 数据库恢复常见错误及解决(网站转载 留着备用)STATS = 10, REPLACE
Sqlserver 数据库恢复常见错误及解决(网站转载 留着备用)GO
Sqlserver 数据库恢复常见错误及解决(网站转载 留着备用)++++++++++++++++++++++++++++++++
Sqlserver 数据库恢复常见错误及解决(网站转载 留着备用)
Sqlserver 数据库恢复常见错误及解决(网站转载 留着备用)/*
Sqlserver 数据库恢复常见错误及解决(网站转载 留着备用)备份数据DB 到.bak文件。然后利用此bak文件恢复一个新的数据库DBTest。
Sqlserver 数据库恢复常见错误及解决(网站转载 留着备用)*/
Sqlserver 数据库恢复常见错误及解决(网站转载 留着备用)USE master
Sqlserver 数据库恢复常见错误及解决(网站转载 留着备用)BACKUP DATABASE DB 
Sqlserver 数据库恢复常见错误及解决(网站转载 留着备用)  TO DISK = 'g:/DBBack0930.bak' 
Sqlserver 数据库恢复常见错误及解决(网站转载 留着备用)RESTORE FILELISTONLY 
Sqlserver 数据库恢复常见错误及解决(网站转载 留着备用)  FROM DISK = 'g:/DBBack0930.bak' 
Sqlserver 数据库恢复常见错误及解决(网站转载 留着备用)RESTORE DATABASE DBTest 
Sqlserver 数据库恢复常见错误及解决(网站转载 留着备用)  FROM DISK = 'g:/DBBack0930.bak' 
Sqlserver 数据库恢复常见错误及解决(网站转载 留着备用)  WITH MOVE 'DBTest' TO 'E:/Program Files/Microsoft SQL Server2005/Data/DBTest.mdf', 
Sqlserver 数据库恢复常见错误及解决(网站转载 留着备用)  MOVE 'DBTest_log' TO 'E:/Program Files/Microsoft SQL Server2005/Data/DBTest_log.ldf'
Sqlserver 数据库恢复常见错误及解决(网站转载 留着备用)GO 
Sqlserver 数据库恢复常见错误及解决(网站转载 留着备用)---******************************

解决方法二:
需要注意两点:
在【选项】界面里
1.选择“覆盖现有数据库”
2.修改【将数据库文件还原为】区域里的【还原为】的位置,和要恢复的数据库的实际位置保持一致(实际操作该步骤可选)

=====================================================

SqlServer2005 恢复数据库时出现:

Exclusive access could not be obtained because the database is in use

由于恢复数据库时需要对数据库进行独占的访问,在恢复之前你必须中止其他用户与数据库的连接。

可能的解决方法:
在恢复数据库前:
方法一.打开Management Studio.
点击数据库右键--》restart database

方法二.执行如下的Query:

Use Master

Alter Database [YOURDB]

SET SINGLE_USER With ROLLBACK IMMEDIATE

在恢复数据库后如果需要恢复会普通多用户模式:

Use master;
    Go

Alter Database [YOURDB]

SET MULTI_USER

Go

方法三

获取当前使用数据库用户链接,关闭连接

use master

go

sp_who(sp_who2)

go

得到相应spid,通过kill spid关闭连接

use master

go

kill @spid

go

ALTER DATABASE 命令的部分参数:

l SINGLE_USER | RESTRICTED_USER | MULTI_USER:控制哪些用户可以访问数据库。如果指定为 SINGLE_USER,那么同一时间只能有一个用户访问数据库。如果指定为 RESTRICTED_USER,那么只有 db_owner、dbcreator 或 sysadmin 角色的成员可以使用数据库。MULTI_USER 使数据库返回到正常操作状态。

l WITH <termination>:指定当数据库从一种状态转换到另一种状态时,何时回滚未完成的事务。只能指定下一条 termination 子句,而且该子句应跟在 SET 子句后面。

ROLLBACK AFTER integer [SECONDS] | ROLLBACK IMMEDIATE

设定是在指定秒数之后回滚还是立即回滚。如果省略了 termination 子句,那么将允许事务自主提交或回滚。

l NO_WAIT:指定如果请求的数据库语句或选项更改只有等待事务自主提交或回滚才能立即完成,该请求将失败。

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

SQL Server 2005 还原数据库错误:System.Data.SqlClient.SqlError: 在对 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\BusinessDB.mdf' 尝试 'RestoreContainer::ValidateTargetForCreation' 时,操作系统返回了错误 '5(拒绝访问)

2012-01-04 19:18:53|  分类: SQLServer|字号 订阅

 
 

解决SQL Server 2005 还原数据库错误:System.Data.SqlClient.SqlError: 在对 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\BusinessDB.mdf' 尝试 'RestoreContainer::ValidateTargetForCreation' 时,操作系统返回了错误 '5(拒绝访问)',如图:

Sqlserver 数据库恢复常见错误及解决(网站转载 留着备用)
  
原因分析:
没有对"C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\"创建文件的权限(可以把它复制到data),这是SQL2005对文件夹的安全性限制。
解决办法:
修改文件夹到'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\”或其他盘的文件夹下(如E:\mydb)即可。注意:mdf文件和ldf文件的路径都要修改。如图:
Sqlserver 数据库恢复常见错误及解决(网站转载 留着备用)