2009-04-13 11:25 1145人阅读 评论(0) 收藏 举报

在sqlServer20005 的management studio里使用bak文件还原数据库的时候,总是失败!

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

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

/*
备份数据DB 到.bak文件。然后利用此bak文件恢复一个新的数据库DBTest。
*/
USE master
BACKUP DATABASE DB 
  TO DISK = 'g:/DBBack0930.bak' 
RESTORE FILELISTONLY 
  FROM DISK = 'g:/DBBack0930.bak' 
RESTORE DATABASE DBTest 
  FROM DISK = 'g:/DBBack0930.bak' 
  WITH MOVE 'DBTest' TO 'E:/Program Files/Microsoft SQL Server2005/Data/DBTest.mdf', 
  MOVE 'DBTest_log' TO 'E:/Program Files/Microsoft SQL Server2005/Data/DBTest_log.ldf'
GO 
---******************************

解决方法二:
需要注意两点:
在【选项】界面里
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(拒绝访问)',如图:


  
原因分析:
没有对"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 数据库恢复常见错误及解决(网站转载 留着备用)的更多相关文章

  1. SQLSERVER 数据库恢复挂起的解决办法

    如果你的数据库还处于挂起状态,请把我下面代码的test改为你的库名,然后执行完,刷新就正常了: USE masterGOALTER DATABASE test SET SINGLE_USERGOALT ...

  2. IIS7常见错误及解决方法

    IIS7常见错误及解决方法   问题一:HTTP 错误 500.19 - Internal Server Error 无法访问请求的页面,因为该页的相关配置数据无效.  详细错误信息模块 IIS We ...

  3. github常见操作和常见错误及其解决办法

    一.常见操作 1. 使用git在本地创建一个项目的过程 $ makdir ~/hello-world //创建一个项目hello-world $ cd ~/hello-world //打开这个项目 $ ...

  4. MVC MVC常见错误及解决办法

    MVC常见错误及解决办法 问题1: 必须添加对程序集“EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c5 ...

  5. Servlet常见错误及解决方法

    常见错误及解决方法 1. 404产生的原因为Web服务器(容器)根据请求地址找不到对应资源,以下情况都会出现404的错误提示: 输入的地址有误(应用名大小写不正确,名称拼写不正确) 在web.xml文 ...

  6. 微信jssdk常见错误及解决方法

    调用config 接口的时候传入参数 debug: true 可以开启debug模式,页面会alert出错误信息.以下为常见错误及解决方法: invalid url domain当前页面所在域名与使用 ...

  7. centos linux 系统日常管理4 scp,rsync,md5sum,sha1sum,strace ,find Rsync 常见错误及解决方法 第十七节课

    centos linux 系统日常管理4  scp,rsync,md5sum,sha1sum,strace ,find Rsync 常见错误及解决方法  第十七节课 rsync可以增量同步,scp不行 ...

  8. Docker Hadoop 配置常见错误及解决办法

    Docker Hadoop 配置常见错误及解决办法 问题1:wordcount运行卡住,hadoop 任务运行到running job就卡住了 INFO mapreduce.Job: Running ...

  9. Ubuntu下Linux配置内核各种常见错误和解决办法

    镜像下载.域名解析.时间同步请点击阿里云开源镜像站 这篇把Ubuntu下Linux配置内核各种常见错误和解决办法给大家讲解一下,希望可以帮助到大家. 一.Ubuntu系统中缺少各种依赖包导致的问题 1 ...

随机推荐

  1. Python语言之模块

    模块基本上就是一个包含了所有你定义的函数和变量的文件.它用处在于使你你能在别的程序中重用它提供的功能和服务. 1.模块的使用方法 模块的文件名必须以.py作为扩展名. 当我们需要使用某个模块时,我们需 ...

  2. Zabbix 默认网络发现模板修改(第三篇)

    zabbix 默认网络发现模板不能显示ip,我想让他在graph的标题上显示ip,具体要像如下效果 原文地址:http://www.cnblogs.com/caoguo/p/4977254.html ...

  3. tac

    功能说明:反向显示文件内容. 参数选项: -b 在行前而非行尾加分隔标志. -r 将分隔标志视作正则表达式来解析. -s 使用指定字符串代替换行作为分隔标志.   cat命令与tac命令的对比:

  4. NSOperationQueue和GCD的区别,以及在什么场合下使用

    1> GCD是纯C语言的API .NSOperationQueue是基于GCD的OC的封装. 2> GCD只支持FIFO队列,NSOperationQueue可以方便设置执行顺序,设置最大 ...

  5. Java 内存模型与线程

    when ? why ? how ? what ? 计算机的运行速度和它的存储和通信子系统速度的差距太大,大量的时间都花费在磁盘I/O .网络通信或者数据库访问上.如何把处理器的运算能力"压 ...

  6. Linux系统学习之 一:新手必须掌握的Linux命令1

    2018-10-03 16:04:12 一.常用系统工作命令 1.wget 命令 作用:用于在终端中下载网络文件. 格式:wget [参数] 下载地址 参数及作用: -b : 后台下载模式 -d:显示 ...

  7. python学习笔记--深拷贝与浅拷贝的区别

    首先我们来讲讲我们python中的可变对象和不可变对象: 可变对象:该对象指向内存中的值是可以改变的.实际上是其所指的值直接发生改变,而不是发生复制,或者开辟一个新的地址空间.例如:列表list,字典 ...

  8. C#学习笔记_09_构造方法/函数

    09_构造方法/函数 代码案例 作用:构造函数主要是用来创建对象时为对象赋初值来初始化对象:总与new运算符一起使用在创建对象的语句中,例如A a=new A(); 特点: 构造函数具有和类一样的名称 ...

  9. win10 Ubuntu子系统安装&odoo10社区版安装

    参考文档: http://www.cnblogs.com/odoouse/p/5995603.html https://www.jianshu.com/p/58090215bda8 一.win10 U ...

  10. 联赛前集训日记Day2

    考试 倒数第二,我已经废了= = T1 那么水的点转区间都看不出来 T2 裸的线段树生打了个啥都不是的分块 T3 枚举想骗spj的部分分,结果啥都没有 GG 刷题 改题改的也是心累,现在蒙的要死 生活 ...