天天看点

SqlServer数据库附加、备份、与生成sql脚本的应用解析

前段时间做好一套生产系统,在本地部署测试都搞定了以后。兴奋滴跑去深圳客户现场部署,发现:客户没有按照先前沟通好的执行,他们没有选择安装我们推荐的软硬件环境。他们的版本比我们本地测试环境的版本更高。虽然在理论上是不会出什么问题,但是,我还是决定,在他们的系统上,先搭建一个测试环境。

1:把本地的数据库脚本,在客户测试环境中执行,检查一下,全部执行成功!

2:网站部署一切正常。

于是,开始验证功能。这时候发现,之前集成的一个开源OA模块的创建流程模块,不能用了。原先创建好的流程都无法显示了。通过分析,这是数据库的问题。于是,用VS的数据对比功能,将本地数据库和实际环境中的数据库进行对比。发现:果然是少了两个表。最后,通过将本地数据库分离出来,附加到客户环境中。问题解决了。那么问题又来了,附加分离可以搞定,那么备份还原是否也可以搞定呢?通过验证备份还原,一样可以。

这次的经历,我想对这几种迁移的方式做一个总结。在学校的时候,遇到数据库迁移,一般都是用 附加分离,或者用备份还原。但是工作以后,经常有数据库版本差异,经常碰到要将高版本的数据库,迁移到低版本的数据库环境中。所以就习惯使用生成脚本的方式。实际上,生成脚本的方式是有风险的。因为你无法确定数据库脚本生成是否完整,你也无法确定脚本是否全部执行成功。因为这跟数据库用户的权限有关系,如果你想用生成脚本的方式,建议尽量使用sa帐户。

数据库分离附加一般是在数据库不需要使用的情况下使用。因为分离后,数据库就不能使用了,如果要重新使用,就需要附加数据库了。分离附加方式的好处是:速度快。简单方便。

数据库备份还原,这个应该是最经常使用的。我一般是远程备份,然后下载到本地。备份的同时,数据库也可以使用。建议在数据库连接数比较少的时候,进行备份。

生成脚本的方式,一般用在高版本的数据库,要迁移到低版本的数据库中。这时也要记得选择数据库兼容性。

这是关于sqlserver数据库迁移的一些想法,希望对大家有帮助!

另外送大家一点福利,这妹子鞋服买一送一

SqlServer数据库附加、备份、与生成sql脚本的应用解析