将sql server 2000的备份文件导入到sql server 2012中
将sql server 2000的备份文件导入到sql server 2012中
问题
在学习sql server 索引的时候,发现找到的很多资料都用的是一个Credit的数据,但是我不知道Credit数据库是从哪里来的。后来在聚集索引与非聚集索引详解这篇文章中找到了如下信息:
USE CREDIT go -- These samples use the Credit database. You can download and restore the -- credit database from here: -- http://www.sqlskills.com/resources/conferences/CreditBackup80.zip -- NOTE: This is a SQL Server 2000 backup and MANY examples will work on -- SQL Server 2000 in addition to SQL Server 2005.
顺利下载这个文件并解压缩以后发现这是一个sql server 2000的备份文件,后缀名是.bak。不过我用的是sql server 2012,使用如下方法来恢复这个数据库备份文件:打开SSMS->database->右键选择restore files and filegroups,然后按如下图所示操作:
但是执行这个操作会报错,错误如下图所示:主要是说明版本差异问题,我的bak文件是8.0版本(sql server 2000),但是要导入到11.0版本(sql server 2010)中,因此报错。
解决方案
因为源文件版本过低,而目标数据库版本过高,这样的问题一个好的解决方案是首先降低目标数据的版本,然后一步一步往上提升版本。所以这里我们用使用sql server 2008作为过渡数据库。我们将上面的CreditBackup80.bak这个数据备份文件还原到sql server 2008中,假设还原在sqlserver2008中的数据库名称为Credit2008,然后在 sqlserver 2008中backup这个Credit2008数据库,默认会备份到C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Backup这个目录下面,备份文件名成为CreditBackup100.bak,最后将此备份文件CreditBackup100.bak还原到sql server 2012中。
PS:使用SSMS将sqlserver2008的bak文件还原到sqlserver2012中出现错误
错误1:启动sqlserver2012->右键database->restore files and filegroups->在source for restore中选择from device,然后选择CreditBackup100.bak这个文件的路径,但是当我们指定到C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Backup这个目录的时候,发现找不到任何文件,如下图所示:
解决错误1:这是因为C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Backup这个目录有权限设定,我们查看这个目录的属性可以发现这个目录有一个特殊的用户叫做:T-WEIXU-W7\SQLServerMSSQLUser$t-weixu-w7$SQLEXPRESS。也就是说只有这个用户才有访问这个目录下的文件的权限。所以我门可以在windows下将C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Backup目录下的CreditBackup100.bak文件拷贝到其他目录,比如我现在拷贝的目录是:D:\CreditBackup80。
错误2:在解决上述错误以后,我们在source for restore中选择from device,并且选定了CreditBackup100.bak这个文件,最后点击OK,但是会提示错误:
The operating system returned the error '5(Access is denied.)' while attempting 'RestoreContainer::ValidateTargetForCreation' on ....。具体如下图所示:
从上述错误我们发现是因为我们想将sqlserver2008的bak文件还原到sqlserver2012的时候,却默认的被还原到原先的sqlserver2008的目录下,从路径“C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\Credit2012.mdf”我们可以知道这个就是sqlserver2008实例的目录。
解决错误2:造成这样错误的主要原因是因为我们在机器上安装了sqlserver2008和sqlserver2010两个版本,但是SSMS默认情况下只是让数据还原到sqlserver2008的目录下,我们必须指定sqlserver2012的目录,具体操作是:在restore file and filegroups界面中选中options,然后选定sqlserver2012实例的存放目录,如下图所示:
点击箭头所示的按钮(注意:必须通过点击按钮来指定目标位置的地址,如果手动修改路径的字符串,依然会报错。),会弹出如下错误:
指定Credit2012的数据文件和日志文件的存放目录,如下图所示:
完成上述操作以后点击确定,就能够正确完成数据库还原操作,最终将sqlserver2000的bak文件还原到了sqlserver2012中来。
解决错误2-方法2:
在sqlserver configure manager中选中sqlserver2012的properties,然后修改log on as中的属性,使用build-in account中的local system,具体参考:http://social.msdn.microsoft.com/Forums/en-SG/sqldatabaseengine/thread/7b259f06-e1e2-47f5-8303-77775ee80400。
将sql server 2000的备份文件导入到sql server 2012中相关推荐
- SQL Server 2008R2数据库文件导入到SQL Server 2008数据库中
最近,电脑重装系统之后,安装了SQL Server 2008.附加数据库文件的时候,发现无法附加,提示版本不对.想起来,原来的数据库版本是SQL Server 2008R2.低版本的数据库管理工具无法 ...
- sql server 2000 数据库。 怎样用sql语句,在没有主键的情况下删除数据库中多条......
2019独角兽企业重金招聘Python工程师标准>>> 如题. 转载于:https://my.oschina.net/didiaomo2014/blog/15977
- mysql sql文件太大_MySQL导入的sql脚本文件过大解决方案
运维同事近日给到我这边一个mysql的备份脚本文件,大小超过2.4G. 于是直接通过Navicat客户端导入脚本,但是报错:MySQL server has gone away. 于是想通过截取文件, ...
- ubuntu mysql sql文件_ubuntu 下mysql导入出.sql文件
1.导出整个数据库 mysqldump -u 用户名 -p 数据库名 > 导出的文件名 mysqldump -u wcnc -p waf> /home/waf.sql 2.导出一个表 my ...
- 如何通过 PL/SQL Developer 将 Excel 数据导入 Oracle 对应的表中
首先将 Excel 文件另存为文本文件,然后在点击 PL/SQL Developer 菜单栏的[工具]-[文本导入器],打开后如图所示: 上述步骤操作完之后,点击[到oracle的数据]:
- bak文件转换成sql文件_数据库bak文件转sql
Asp.Net 备份和恢复SQL SERVER 数据库 我们通常备份数据库时,需要登录数据库服务器去备份和恢复,这样很不方便,其实SQL SERVER自带的命令可能让我们很简单地实现远程通过Asp.N ...
- Microsoft SQL Server 2000整合规划
Microsoft SQL Server 2000整合规划 更新日期: 2004年06月24日 SQL Server技术文章 作者:Allan Hirt 投稿人:Tom Davidson和Shaun ...
- SQL Server 2000 Service Pack 4 中所修复的 bug 的列表
有关在 SQL Server 2000 Service Pack 4 已修复的 bug 的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章: 314128 FIX: 一 ...
- 当程序开发人员开始抛弃技术时,是否意味着噩梦的开始?抛弃了SQL Server 2000才发现客户的简单问题真的很难解决...
这个话题起源于今天面对一个客户的报表问题,用存储过程写的报表语句,跑在SQL Server 2000上面.客户说有一个地方抱错,而自己开发机器这边,死活找不到一个SQL Server 2000,全部都 ...
- Microsoft SQL Server 2000 中的数据转换服务 (DTS)
摘自:http://www.microsoft.com/china/MSDN/library/data/sqlserver/DataTransformationServices(DTS)inMicro ...
最新文章
- 七、压缩与解压缩命令
- Maven 国内镜像很慢解决的方法
- 0322Private strand flush not complete
- python开发工具和框架安装器_Python基础框架和工具
- Linux下更换jdk和配置环境变量
- .netcore 如何获取系统中所有session_C#/.NET/.NET Core定时任务调度组件有哪些?
- 自然语言处理python代码_《自然语言处理入门 Python/Java双代码实现(图灵出品)》(何晗)【摘要 书评 试读】- 京东图书...
- 关于CSP-J/S2019准考证下载、考点查询等问题的说明
- Unity TextMesh Pro 常用汉字及字母符号
- Android 8(1),腾讯字节爱奇艺网易华为实习面试汇总
- java冒泡排序及面向对象基本概念
- vue+IOS9页面白屏
- root+android+8.0,荣耀8 root两步强刷Android 8.0
- 彩虹易支付最新版开源版源码分享
- 与报文交换比较,分组交换有哪些优点?
- 经验总结 | PBS系统的使用
- 万亿估值来了!3次大难不死,蚂蚁金服终于登顶世界第一
- 《Speech and Language Processing》读书笔记——语法规则及其解析
- leetcode:2448. 使数组相等的最小开销【猜结论落在给定点 + 考虑初始值和变化量 + 三分法模板学习】
- 背书小程序正式上线啦