资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

SQLServer数据库备份与还原

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脚本文件名即可。


本文标题:SQLServer数据库备份与还原
网站URL:http://cdkjz.cn/article/jgoscp.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220