SQL Server还原和一些小发现
1.当数据库已经建好在DB里,SQL Server 2005 和 SQL Server 2008使用.Bak文件还原的时候,会出现 error : "The backup set holds a backup of a database other than the existing" 查了网上的方法:
方法一[未验证]
[sql] view plaincopy --返回由备份集内包含的数据库和日志文件列表组成的结果集。
--主要获得逻辑文件名
- --返回由备份集内包含的数据库和日志文件列表组成的结果集。
- --主要获得逻辑文件名
- 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.修改【将数据库文件还原为】区域里的【还原为】的位置,和要恢复的数据库的实际位置保持一致
方法三[验证过,可行] 1.先删掉需要还原的数据库,右键【服务器】下的【数据库】,选择【还原数据库】,键入新的目标数据库名; 2.在【选项】里,选择覆盖数据库; 3.执行就ok了。
2.Microsoft SQL Server还原失败,错误: 3219
MSSQL还原数据库失败,提示如下: 还原对与服务器 失败。(Microsoft.SqlServer.Smo)
其它信息:执行Transact-SQL语句或批处理时发生异常。(Microsoft.SqlServer.ConnectionsInfo)。不能选择文件或文件组“……”用于此操作。 RESTORE DATABASE 正在异常终止。(Microsoft SQL Server, 错误:3219)
出现此错误时我的操作步骤为:右击数据库》》任务》》还原》》文件和文件组》》源设备(选择备份文件)》》指定备份文件位置》》添加选定文件。在“还原文件和文件组”对话框中点击“确定”按钮,即出现上面显示的错误。
正确的步骤为:右击数据库》》任务》》还原》》数据库》》源设备(选择备份文件)》》指定备份文件位置》》添加选定文件。在“还原数据库”对话框中点击“确定”按钮,即可正确还原。
主要原因: 文件和文件组备份必须被还原到匹配的数据库
还原文件和文件组备份 SQL Server 的说明的详细信息可见: http://support.microsoft.com/kb/281122/zh-cn
至于“还原数据库”和“还原文件和文件组”的区别可以见此文章:http://www.cnblogs.com/zping/archive/2008/08/21/1272961.html
==================================================================================================
在此简单说明下,我不是用于还原已存在数据库,而是创建新数据库,与上面操作不同的只是:不是指定某个数据库后右键》任务》……,而是数据库上一级【数据库】右键》还原数据库(注意:不是还原文件和文件组)……。
SQL Server还原和一些小发现的更多相关文章
- Sql server还原失败(数据库正在使用,无法获得对数据库的独占访问权)
Sql server还原失败(数据库正在使用,无法获得对数据库的独占访问权) 问题分析:数据库还原的时候还有其他进程连在上面,导致无法获得独占造成的. 解决方案: 一.切断连接进程 .查询要还原的数据 ...
- sql server 常用的函数小汇
摘录些许sqlserver 常用到的一些函数,便于日常学习使用 一.字符转换函数1.ASCII()返回字符表达式最左端字符的ASCII 码值.在ASCII()函数中,纯数字的字符串可不用‘’括起来,但 ...
- sql server 还原数据库时提示数据库正在使用,无法进行操作的解决方法
这个问题的原因在于有用户连接了当前要做还原的数据库,这里的用户甚至包括当前要做还原的用户.解决办法就是关闭与要还原数据库的所有连接. 脚本之家小编推荐的一个方法:到服务里面重启下sqlserver服务 ...
- sql server还原数据库文件(.bak)常见问题解决办法笔记
还原的时候出现错误:备份集中的数据库备份与现有的数据库不同 SQL Server 2005数据库还原出错错误具体信息为:备份集中的数据库备份与现有的A数据库不同 具体操作如下:第一次:新建了数据库A, ...
- sql server还原注意事项
使用Sql Server 2000的数据库备份文件还原Sql Server 2000的数据库和还原Sql Server 2005的数据库区别:1.在还原至Sql 2000时是必须新建数据库并对其还原, ...
- SQL Server还原数据库
http://www.cnblogs.com/ggll611928/p/6377545.html 恢复数据库: 1.分离数据库以断开当前的访问连接. 2.附加数据库mdf文件. 3.执行RESTORE ...
- SQL Server 还原错误“restore database正在异常终止 错误 3154”
今天在还原数据库时,先建立相同名字的数据库,然后在该数据库上右键还原数据库.遇到了这样的一个错误: “备份集中的数据库备份与现有的 'RM_DB' 数据库不同. RESTORE DATABASE 正在 ...
- [SQL SERVER] - 还原数据库备份(SQL脚本),抛出 "System.OutOfMemoryException" 异常之解决
背景 在 Microsoft SQL Server 2016 的查询窗体中,直接还原备份数据库的 SQL 脚本(99MB),抛出 Cannot execute script 异常: 原因 相关资料说: ...
- sql server还原数据库bak文件
RESTORE DATABASE CCC FROM DISK = 'AAA.bak' with replace, MOVE 'BBB' TO 'C:\Program Files\Microsoft ...
随机推荐
- lnmp架构下php安全配置分享
目录[-] 1. 使用open_basedir限制虚拟主机跨目录访问 2. 禁用不安全PHP函数 3. 关注软件安全资讯 4. php用户只读 5. 关闭php错误日志 6. php上传分离 7. 关 ...
- 最新版 CocoaPods 的安装流程(包括EI Capitan版)
1.移除现有Ruby默认源 $gem sources --remove https://rubygems.org/ 2.使用新的源 $gem sources -a https://ruby.taoba ...
- uva 280 - Vertex
#include <iostream> #include <cstdio> using namespace std; #include <vector> #defi ...
- JQuery控制input的readonly和disabled属性
jquery设置元素的readonly和disabled Jquery的api中提供了对元素应用disabled和readonly属性的方法,在这里记录下.如下: 1.readonly $('in ...
- javascript中的substr和substring
1.substr 方法 返回一个从指定位置开始的指定长度的子字符串. stringvar.substr(start [, length ]) 参数: stringvar 必选项. 要提取子字符串的字 ...
- ThinkPHP整合百度Ueditor
文章来源:http://www.thinkphp.cn/code/267.html ThinkPHP整合百度Ueditor,基于黄永成老师的视频说明的申明:最好大家都能写绝对路径的都写好绝对路径比如: ...
- xcode5.1上真机调试报告No architectures to compile for...的解决办法
由于手头上只有一台IPAD一代,近期升级到IOS5.0了(人家apple只让升级到此为止)而开发环境Xcode版本是5.1,默认情况下XCode编译出来的代码最低能跑在IOS6.0下, 于是GOOGL ...
- bug经验
1.异常信息丢失导致定位问题困难. 2.findbugs工具 3.在某些if语句判断中return,可能会导致文件句柄无法关闭. 4.lastmodified()在win下和linux下的处理是不同的 ...
- jQuery.fn
DIY一个jQuery 写了一个非常简单的 jQuery.fn.init 方法: jQuery.fn.init = function (selector, context, root) { if (! ...
- 关于Android的一些理解
Activity中写回调函数 View的回调函数-------->事件回调 Activity层--------------->生命周期回调函数.事件回调函数 Window层 Layout是 ...