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

Restore failed for Server 'ADANDELI'.  (Microsoft.SqlServer.Smo)
An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo
The backup set holds a backup of a database other than the existing 'AAA' database.
RESTORE DATABASE is terminating abnormally. (Microsoft SQL Server,错误: 3154)

找不到原因(已经选择了"overwrite the existing database"),只能使用命令来还原了,不知道为什么会这样.

--返回由备份集内包含的数据库和日志文件列表组成的结果集。
--主要获得逻辑文件名
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 
---******************************
 
http://www.cnblogs.com/adandelion/archive/2006/09/30/519534.html
 
 

换了电脑,需要恢复一下数据库的数据,本来以为很简单,结果遇到了一点问题。

  1. 图形界面选择了源文件后, 在选项里面:上面选择覆盖,下面选择norecovery. 

    发现错误提示是找不到目标目录。 
    2.于是建了个同名数据库,建立过程中修改了文件目录,变为自己想要存放的目录。 
    3.发现使用这种方法,提示NDF文件找不到目录。 
    4.NDF文件是在较大数据库使用过程中产生的,新建的空数据库当然不会有了。于是想当然手动建立,恢复,出错,这也是应当的。 
    5.于是直接命令恢复。
restore database MeteorologyDB from disk='H:\ghost\fghjkl\MeteorologyDB.BAK'
with replace,
move 'MeteorologyDB_Data' to 'D:\MeteorologyDB.MDF',
move 'MeteorologyDB_Data1' to 'D:\MeteorologyDB.NDF',
move 'MeteorologyDB_Log' to 'D:\MeteorologyDB.LDF'
  • 1
  • 2
  • 3
  • 4
  • 5

6.上述过程可能有两个问题产生: 
一是提示数据库正在使用,无法恢复。这个时候前面加上一句use master就ok. 
二是提示逻辑文件名字错误,不存在于此数据库类似的提示。这个时候参考第一张图,也就是图形界面恢复的选项配置的界面。里面有mdf,ndf,ldf的名字,根据这些名字更改逻辑文件的名,也就是move的第一个参数。注意的是不要加扩展名。 
7.可以看到所有的表都恢复了。

http://blog.csdn.net/tianguokaka/article/details/46968951

 
 
 

RESTORE DATABASE命令还原SQLServer 数据库 bak的更多相关文章

  1. (转载)RESTORE DATABASE命令还原SQLServer 2005 数据库

    今天恢复一个SQLServer2008R2,发现问题,然后通过园友的文章解决了问题,特记录备用 原文地址:http://www.cnblogs.com/adandelion/archive/2006/ ...

  2. RESTORE DATABASE命令还原SQLServer 2005 数据库

    --返回由备份集内包含的数据库和日志文件列表组成的结果集. --主要获得逻辑文件名 USE master RESTORE FILELISTONLY FROM DISK = 'g:\back.Bak' ...

  3. 通过restore database时重命名数据库rename database

    backup database testdb to disk='c:\testdb_ful.bak' with compression backup log testdb to disk='c:\te ...

  4. 为何SQL SERVER使用sa账号登录还原数据库BAK文件失败,但是使用windows登录就可以

    今天发现一个问题,就是公司开发服务器上的sql server使用sa账号登录后,还原一个数据库bak文件老是报错,错误如下: TITLE: Microsoft SQL Server Managemen ...

  5. sql server还原数据库bak文件

    RESTORE DATABASE CCC FROM DISK = 'AAA.bak' with replace,  MOVE 'BBB' TO 'C:\Program Files\Microsoft ...

  6. SQL2005中使用backup、restore来备份和恢复数据库

    在SQL2005数据库中利用SQL语句进行数据备份与还原: 备份backup:backup database 数据库名称 tO disk = 备份路径例:BACKUP DATABASE test TO ...

  7. SqlServer数据库分区分表实例分享(有详细代码和解释)

    数据库单表数据量太大可能会导致数据库的查询速度大大下降(感觉都是千万级以上的数据表了),可以采取分区分表将大表分为小表解决(当然这只是其中一种方法),比如数据按月.按年分表,最后可以使用视图将小表重新 ...

  8. 命令行下从bak文件恢复sqlserver数据库方法

    命令行下从bak文件恢复sqlserver数据库方法 注:本文所示访问从SqlServer 2000 - 2014版都是通用的 参考:http://blog.sina.com.cn/s/blog_5c ...

  9. sqlserver数据库附加分离备份还原命令

    --获取所有数据库的名称 select [name] from master.dbo.sysdatabases where [name]='master' --判断数据库是否存在 if exists( ...

随机推荐

  1. iOS framework静态库中使用xib和图片资源详解

    一.新建bundle 前2篇文章介绍了iOS 最新framework和.a静态库制作及使用全解   iOS 工程套子工程,主工程和framework工程或.a library静态库工程联调 我现在是在 ...

  2. String.format("%0"+length+"d", arr)中的%0和"d"分别代表什么

    public static void main(String[] args) { int a = 8; String s = String.format("%04d", a); S ...

  3. app生成工具

    国内主流的在线APP生成工具 应用公园:http://www.apppark.cn/ 追信魔盒:http://app.zhui.cn/ 安米网:http://www.appbyme.com/ 简网AP ...

  4. requests访问https网站

    如果报证书校验失败的问题,可以去除证书校验1 import requests requests.get('https://www.zhihu.com/',verify=False)

  5. [NS2]TCL语言基本语法

    (来自:<NS2仿真实验-多媒体和无线网络通信>) 1. 变量(Variable)和变量替换(Variable Substitution) tcl变量是在第一次使用set的指令来指派变量的 ...

  6. ylbtech-LanguageSamples-UserConversions(用户定义的转换)

    ylbtech-Microsoft-CSharpSamples:ylbtech-LanguageSamples-UserConversions(用户定义的转换) 1.A,示例(Sample) 返回顶部 ...

  7. [转]sqlserver2008锁表语句详解

    本文转自:http://xue.uplook.cn/database/sqlserver/801760.html 锁定数据库的一个表 代码如下: SELECT * FROM table WITH (H ...

  8. iOS:关于UIView切角的两种实现方式

    转载自:http://www.jianshu.com/p/451b7fa94e2a 第一种: 我想你一见到代码,就瞬间有吐的冲动,最常用的一种方式... UIButton *button = [[UI ...

  9. MS SQL 标识列的查询

    摘自: http://www.2cto.com/database/201212/175000.html   SQL标识列的查询   1.判段一个表是否具有标识列    www.2cto.com   可 ...

  10. DevExpress:下拉框绑定数据源 (ComboBoxEdit,LookUpEdit)

    DevExpress:下拉框绑定数据源 (ComboBoxEdit,LookUpEdit) DevExpress:下拉框绑定数据源 (ComboBoxEdit,LookUpEdit) // 设置下拉框 ...