RESTORE DATABASE命令还原SQLServer 数据库 bak
今天在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
---******************************换了电脑,需要恢复一下数据库的数据,本来以为很简单,结果遇到了一点问题。
- 图形界面选择了源文件后, 在选项里面:上面选择覆盖,下面选择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的更多相关文章
- (转载)RESTORE DATABASE命令还原SQLServer 2005 数据库
今天恢复一个SQLServer2008R2,发现问题,然后通过园友的文章解决了问题,特记录备用 原文地址:http://www.cnblogs.com/adandelion/archive/2006/ ...
- RESTORE DATABASE命令还原SQLServer 2005 数据库
--返回由备份集内包含的数据库和日志文件列表组成的结果集. --主要获得逻辑文件名 USE master RESTORE FILELISTONLY FROM DISK = 'g:\back.Bak' ...
- 通过restore database时重命名数据库rename database
backup database testdb to disk='c:\testdb_ful.bak' with compression backup log testdb to disk='c:\te ...
- 为何SQL SERVER使用sa账号登录还原数据库BAK文件失败,但是使用windows登录就可以
今天发现一个问题,就是公司开发服务器上的sql server使用sa账号登录后,还原一个数据库bak文件老是报错,错误如下: TITLE: Microsoft SQL Server Managemen ...
- sql server还原数据库bak文件
RESTORE DATABASE CCC FROM DISK = 'AAA.bak' with replace, MOVE 'BBB' TO 'C:\Program Files\Microsoft ...
- SQL2005中使用backup、restore来备份和恢复数据库
在SQL2005数据库中利用SQL语句进行数据备份与还原: 备份backup:backup database 数据库名称 tO disk = 备份路径例:BACKUP DATABASE test TO ...
- SqlServer数据库分区分表实例分享(有详细代码和解释)
数据库单表数据量太大可能会导致数据库的查询速度大大下降(感觉都是千万级以上的数据表了),可以采取分区分表将大表分为小表解决(当然这只是其中一种方法),比如数据按月.按年分表,最后可以使用视图将小表重新 ...
- 命令行下从bak文件恢复sqlserver数据库方法
命令行下从bak文件恢复sqlserver数据库方法 注:本文所示访问从SqlServer 2000 - 2014版都是通用的 参考:http://blog.sina.com.cn/s/blog_5c ...
- sqlserver数据库附加分离备份还原命令
--获取所有数据库的名称 select [name] from master.dbo.sysdatabases where [name]='master' --判断数据库是否存在 if exists( ...
随机推荐
- iOS framework静态库中使用xib和图片资源详解
一.新建bundle 前2篇文章介绍了iOS 最新framework和.a静态库制作及使用全解 iOS 工程套子工程,主工程和framework工程或.a library静态库工程联调 我现在是在 ...
- String.format("%0"+length+"d", arr)中的%0和"d"分别代表什么
public static void main(String[] args) { int a = 8; String s = String.format("%04d", a); S ...
- app生成工具
国内主流的在线APP生成工具 应用公园:http://www.apppark.cn/ 追信魔盒:http://app.zhui.cn/ 安米网:http://www.appbyme.com/ 简网AP ...
- requests访问https网站
如果报证书校验失败的问题,可以去除证书校验1 import requests requests.get('https://www.zhihu.com/',verify=False)
- [NS2]TCL语言基本语法
(来自:<NS2仿真实验-多媒体和无线网络通信>) 1. 变量(Variable)和变量替换(Variable Substitution) tcl变量是在第一次使用set的指令来指派变量的 ...
- ylbtech-LanguageSamples-UserConversions(用户定义的转换)
ylbtech-Microsoft-CSharpSamples:ylbtech-LanguageSamples-UserConversions(用户定义的转换) 1.A,示例(Sample) 返回顶部 ...
- [转]sqlserver2008锁表语句详解
本文转自:http://xue.uplook.cn/database/sqlserver/801760.html 锁定数据库的一个表 代码如下: SELECT * FROM table WITH (H ...
- iOS:关于UIView切角的两种实现方式
转载自:http://www.jianshu.com/p/451b7fa94e2a 第一种: 我想你一见到代码,就瞬间有吐的冲动,最常用的一种方式... UIButton *button = [[UI ...
- MS SQL 标识列的查询
摘自: http://www.2cto.com/database/201212/175000.html SQL标识列的查询 1.判段一个表是否具有标识列 www.2cto.com 可 ...
- DevExpress:下拉框绑定数据源 (ComboBoxEdit,LookUpEdit)
DevExpress:下拉框绑定数据源 (ComboBoxEdit,LookUpEdit) DevExpress:下拉框绑定数据源 (ComboBoxEdit,LookUpEdit) // 设置下拉框 ...