简述2012版SQL SERVER备份还原到2008R2版SQL SERVER的方法(转载)
Posted 九五小刘
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简述2012版SQL SERVER备份还原到2008R2版SQL SERVER的方法(转载)相关的知识,希望对你有一定的参考价值。
转载:http://wfsj.weifang.gov.cn/sy/sjjl/201905/t20190531_5370608.html
目前审计机关数据分析通用的数据库为SQL SERVER 2008R2版本。被审计单位相关业务系统的后台数据库主要是ORACLE、SQL SERVER 。审计人员需要将不同类型或者不同SQL SERVER版本的数据库转化到SQL SERVER2008R2中使用,如果被审计单位提供的是2012版SQL SERVER备份,审计人员应该怎样还原到SQL SERVER2008R2中去呢?
不同版本的SQL SERVER的还原规则是:低版本可以直接还原到高版本中,而高版本的则不能还原到低版本中。由于2012版本高于2008R2版本,因此2012版SQL SERVER不能直接还原到SQL SERVER中。
如果直接使用SQL SERVER中的自带的导入导出功能,将数据导出到SQL SERVER2008R2版本上,理论上觉得没问题,实际操作中会经常性报错,导致数据转换失败。那么该怎么才能将SQL SERVER2012版数据完整的转化到SQL SERVER2008R2中,提供给审计人员使用呢?
第一步:重新设置高版本数据的兼容级别。在SQL SERVER2012中右键点击要转换的数据库(以“财政数据”库为例),选择“属性”,在属性界面选择“选项”模块,将“兼容级别”更改为“ SQL SERVER 2008 (100)”。
第二步:将2012版中的所有表格生成在2008R2数据库中可以执行的建表语句。右键点击“财政数据”数据库,选择“任务”功能的“生成脚本”模块,选择“设置脚本编写选项”,点击“高级”模块,将“Script for server Version”设置为“SQL SERVER 2008R2”,将“要编写脚本的数据库类型”设置为“仅限架构”。通过上述操作可以生成在2008R2中可以执行的建库、建表语句“script”。
第三步:在SQL SERVER 2008R2 中生成与要转化数据库一致的新库和空表。在SQLSERVER 2008R2中打开“script”,将“FILENAME= N\'C:\\CZYTH_2018_201901.mdf\'”中的地址修改成新数据库的存储地址,然后执行语句。这样就生成了与要转换数据库结构完全一致的库和空表。
第四步,将数据完整进行转换。利用SQL SERVER 的数据导入、导出功能就可以将数据从2012版完整无误的转换到2008R2版。
SQL Server 数据库备份与还原
1、相同SQL Server版本(2008为例)之间数据库备份与还原
(1)数据库备份
相同SQL Server服务器版本之间数据库的备份还原操作相对来说比较简单。
首先找到需要备份的数据库实例,【右键】->【任务】->【备份...】,界面下边选择备份路径,点击确定,备份成功后即可在选择的备份路径下找到后缀名为.bak的备份文件。
(2)数据库还原
对于需要还原的.bak数据库文件,一般会先拷贝到
C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Backup\ 路径下边。
然后打开本地数据库连接,选择“数据库”,【右键】->【还原数据库】,“还原目标”选择(或创建)目标数据库,“还原的源”选择源设备,添加需要还原的.bak数据库文件,勾选“选择用于还原的备份集”记录。在界面左侧“选择页”目录树中共有两个节点:常规、选项。在选项操作界面,“将数据库文件还原为”中用来指定将需要还原的数据库以及日志文件还原到指定路径,一般为C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\data,这个路径如果输入的不合法的话,在还原指定数据库文件时将会报错。
2、低SQL Server服务器版本(2005 / 2000)的备份数据库文件,还原到高版本(2008为例)服务器
由于软件的向上兼容原则,对于低版本的数据库文件,还原到高版本服务器时,操作与相同版本类似,在此不在赘述。
3、高SQL Server服务器版本(2008为例)的备份数据库文件,还原到低版本(2005为例)服务器
这种情况相对来说是比较麻烦的,不能再使用常规的备份与还原方法,备份高版本数据库时需要将其实例导出为SQL脚本,然后在低版本新建一个数据库,然后新建查询,执行之前导出的SQL脚本。
(1)如何将指定数据库导出为SQL脚本?
选择需要导出的数据库实例,【右键】->【任务】->【生成脚本...】,使用生成SQL Server脚本向导,【下一步】->【下一步】选择数据库实例,界面下方勾选“为所选数据库中的所有对象编写脚本”->【下一步】选择脚本选项,该界面有一些细节需要注意,这里主要包括两个选项:表/视图选项和常规选项,在表/视图选项,需要将“编写数据脚本”和“编写索引脚本”更改为true,其他默认即可,如果不放心,可以将该选项中所有项都勾选为true;在常规选项,“为服务器版本编写脚本”中更改需要还原数据库服务器的版本(例如SQL Server 2005)->【下一步】输出选项,脚本模式中选择“将脚本保存到文件”,指定保存路径与SQL脚本文件名即可。
(2)将高版本导出的SQL脚本还原到低版本数据库实例中
在低版本(SQL Server 2005)服务器中新建数据库,然后在查询界面执行之前导出的SQL脚本。
注意:有时候在将SQL Server 2008中的数据库导出为SQL Server 2005 SQL脚本时,会出现一些数据类型不支持错误,例如在SQL Server 2008数据库中如果存在Date类型字段,而这个数据类型在2005中是不支持的,那么导出脚本时将会出现错误,这时常规方法是将Date类型字段修改为2005所支持的datetime字段。
4、将指定的表(带数据)导出为SQL脚本文件
选择需要导出的数据库实例,【右键】->【任务】->【生成脚本...】,使用生成SQL Server脚本向导,【下一步】->【下一步】选择数据库实例->【下一步】选择脚本选项,在“表/视图选项”中将“编写数据的脚本”更改为true,“常规”中“为服务器版本编写的脚本”选择对应的服务器版本->【下一步】选择对象类型,勾选“表”->【下一步】选择表,勾选需要导出的表>【下一步】输出选项,脚本模式中选择“将脚本保存到文件”,指定保存路径与SQL脚本文件名即可。
本文出自 “sharemi” 博客,请务必保留此出处http://sharemi.blog.51cto.com/11703359/1790655
以上是关于简述2012版SQL SERVER备份还原到2008R2版SQL SERVER的方法(转载)的主要内容,如果未能解决你的问题,请参考以下文章
sql server 2012的备份怎么还原到sql server 2008
如何设置将SQL SERVER2012数据库备份还原到SQL SERVER2008上
在 SQL Server 2012 上还原 SQL Server 2000 备份